二、数字波束简介
1.数字波束形成在在所谓数字域实现对天线幅相加权的控制,而传统的波束形成是在模拟域,依靠移相器、衰减器、波束形成网络等模拟器件实现对相位的控制和调整
2.数字波束形成方法实质上式一种在视频实现的多波束形成方法,而传统的多波束形成方法是在高频或者中频实现的,都是用硬件实现的模拟方法。
3.数字波束形成方法可以灵活的对波束形状、数量等实现灵活的控制,能够方便的实现多低副瓣的接收波束。但是传统基于模拟器件的多波束形成技术,一旦波束形成网络方案确定之后,波束的形状、相邻波束的间隔等参数便固定了,难以实现自适应控制,特别是如果要形成的波束数量很多时,硬件设备量将成倍增加,给安装调试等带来很大问题, 并且很难实现多低副瓣的接收波束。
4.利用数字波束形成技术,接收机将阵列天线接收到的各路信号都变成数字信号进行灵活的数字技术处理以形成波束,并且能够尽可能的保持各个天线的阵元接收到的全部有用信息到数字处理端。DBF在处理信号之前保留了N元的信息,但是模拟波束形成期将信号从N维降低到一维,从而损失了大量的信息。
1.由DBF原理可以知道,通过数字波束合成后输出信号的强度能够大大增强(信号投射在波束内),可以大幅度提高信号的信噪比。
2.DBF还能对杂波信号进行有效的抑制。因为杂波具有较大的角度扩展,通过对数字信号进行相位加权求和可以改变波束指向,同时对数字信号进行幅度加权可以达到压低旁瓣电平的目的,使从主波束以外的地方进入的信号得到一定抑制。但是降低副瓣电平的同时,主瓣会展宽,造成天线增益下降。在实际应用中应折中考虑。
3.DBF能够通过一定的算法实现对干扰方向的天线方向图置零,从而抑制干扰源对有用信号干扰,具有多个自由度,可以形成多个零点,实现自适应置零。
4.根据不同工种方式和要求,可以自适应的实现单波束、多波束或者波束组以及各种变化。
5.能够实现空间目标超分辨
6.能够实现灵活的雷达功率和时间管理。
三、部分源代码
function varargout = algrithem_database(varargin)
% ALGRITHEM_DATABASE M-file for algrithem_database.fig
% ALGRITHEM_DATABASE, by itself, creates a new ALGRITHEM_DATABASE or raises the existing
% singleton*.
%
% H = ALGRITHEM_DATABASE returns the handle to a new ALGRITHEM_DATABASE or the handle to
% the existing singleton*.
%
% ALGRITHEM_DATABASE('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in ALGRITHEM_DATABASE.M with the given input arguments.
%
% ALGRITHEM_DATABASE('Property','Value',...) creates a new ALGRITHEM_DATABASE or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before algrithem_database_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to algrithem_database_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Copyright 2002-2003 The MathWorks, Inc.
% Edit the above text to modify the response to help algrithem_database
% Last Modified by GUIDE v2.5 15-May-2006 00:06:21
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @algrithem_database_OpeningFcn, ...
'gui_OutputFcn', @algrithem_database_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before algrithem_database is made visible.
function algrithem_database_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to algrithem_database (see VARARGIN)
% Choose default command line output for algrithem_database
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
initialize_gui(hObject, handles, false); %初始化界面
% UIWAIT makes algrithem_database wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = algrithem_database_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
function array_number_Callback(hObject, eventdata, handles)
% hObject handle to array_number (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of array_number as text
% str2double(get(hObject,'String')) returns contents of array_number as a double
array_number = str2double(get(hObject, 'String'));
% if isnan(array_number)
% set(hObject, 'String', 0);
% errordlg('Input must be a number','Error');
% end
% Save the new array_number value
handles.metricdata.array_number = array_number;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function array_number_CreateFcn(hObject, eventdata, handles)
% hObject handle to array_number (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
% if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
% set(hObject,'BackgroundColor','white');
% end
usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function work_frequency_Callback(hObject, eventdata, handles)
% hObject handle to work_frequency (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of work_frequency as text
% str2double(get(hObject,'String')) returns contents of work_frequency as a double
work_frequency = str2double(get(hObject, 'String'));
% if isnan(work_frequency)
% set(hObject, 'String', 0);
% errordlg('Input must be a number','Error');
% end
% Save the new volume value
handles.metricdata.work_frequency = work_frequency;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function work_frequency_CreateFcn(hObject, eventdata, handles)
% hObject handle to work_frequency (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
% if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
% set(hObject,'BackgroundColor','white');
% end
usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function array_distance_Callback(hObject, eventdata, handles)
% hObject handle to array_distance (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of array_distance as text
% str2double(get(hObject,'String')) returns contents of array_distance as a double
array_distance = str2double(get(hObject, 'String'));
% if isnan(array_distance)
% set(hObject, 'String', 0);
% errordlg('Input must be a number','Error');
% end
% Save the new volume value
handles.metricdata.array_distance = array_distance;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function array_distance_CreateFcn(hObject, eventdata, handles)
% hObject handle to array_distance (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
% if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
% set(hObject,'BackgroundColor','white');
% end
usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function work_wavelength_Callback(hObject, eventdata, handles)
% hObject handle to work_wavelength (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of work_wavelength as text
% str2double(get(hObject,'String')) returns contents of work_wavelength as a double
work_wavelength = str2double(get(hObject, 'String'));
% if isnan(work_wavelength)
% set(hObject, 'String', 0);
% errordlg('Input must be a number','Error');
% end
% Save the new volume value
handles.metricdata.work_wavelength = work_wavelength;
guidata(hObject,handles)
% --- Executes during object creation, after setting all properties.
function work_wavelength_CreateFcn(hObject, eventdata, handles)
% hObject handle to work_wavelength (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
% if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
% set(hObject,'BackgroundColor','white');
% end
usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function SNR_Callback(hObject, eventdata, handles)
% hObject handle to SNR (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of SNR as text
% str2double(get(hObject,'String')) returns contents of SNR as a double
SNR = str2double(get(hObject, 'String'));
% if isnan(SNR)
% set(hObject, 'String', 0);
% errordlg('Input must be a number','Error');
% end
四、运行结果
五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.