• 【通信】基于MVDR LCEC GSC PCI MWF EC PCA_MVB多种算法实现自适应波束生成


    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

    🍎个人主页:Matlab科研工作室

    🍊个人信条:格物致知。

    更多Matlab仿真内容点击👇

    智能优化算法  神经网络预测 雷达通信  无线传感器

    信号处理 图像处理 路径规划 元胞自动机 无人机

    ⛄ 内容介绍

    近年来,随着移动通信的迅速发展,用户急剧增加,移动通信的频谱资源日益紧张,多址干扰、共信道干扰以及多径衰落的影响限制了信道容量和通信质量的进一步提高。智能天线和空间滤波为这些问题的解决带来了新的思路。智能天线技术利用信号的空间特征——到达角来克服这些因素的影响,在保证一定的通信质量的前提下,能够提高覆盖范围,增加系统容量。 本文基于MVDR LCEC GSC PCI MWF EC PCA_MVB多种算法实现自适应波束生成​。

    ⛄ 部分代码

    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

    % Save the new volume value

    handles.metricdata.SNR = SNR;

    guidata(hObject,handles)

    % --- Executes during object creation, after setting all properties.

    function SNR_CreateFcn(hObject, eventdata, handles)

    % hObject    handle to SNR (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 JNR1_Callback(hObject, eventdata, handles)

    % hObject    handle to JNR1 (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 JNR1 as text

    %        str2double(get(hObject,'String')) returns contents of JNR1 as a double

    JNR1 = str2double(get(hObject, 'String'));

    % if isnan(JNR1)

    %     set(hObject, 'String', 0);

    %     errordlg('Input must be a number','Error');

    % end

    % Save the new volume value

    handles.metricdata.JNR1 = JNR1;

    guidata(hObject,handles)

    % --- Executes during object creation, after setting all properties.

    function JNR1_CreateFcn(hObject, eventdata, handles)

    % hObject    handle to JNR1 (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 JNR3_Callback(hObject, eventdata, handles)

    % hObject    handle to JNR3 (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 JNR3 as text

    %        str2double(get(hObject,'String')) returns contents of JNR3 as a double

    JNR3 = str2double(get(hObject, 'String'));

    % if isnan(JNR3)

    %     set(hObject, 'String', 0);

    %     errordlg('Input must be a number','Error');

    % end

    % Save the new volume value

    handles.metricdata.JNR3 = JNR3;

    guidata(hObject,handles)

    % --- Executes during object creation, after setting all properties.

    function JNR3_CreateFcn(hObject, eventdata, handles)

    % hObject    handle to JNR3 (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 JNR2_Callback(hObject, eventdata, handles)

    % hObject    handle to JNR2 (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 JNR2 as text

    %        str2double(get(hObject,'String')) returns contents of JNR2 as a double

    JNR2 = str2double(get(hObject, 'String'));

    % if isnan(JNR2)

    %     set(hObject, 'String', 0);

    %     errordlg('Input must be a number','Error');

    % end

    % Save the new volume value

    handles.metricdata.JNR2 = JNR2;

    guidata(hObject,handles)

    % --- Executes during object creation, after setting all properties.

    function JNR2_CreateFcn(hObject, eventdata, handles)

    % hObject    handle to JNR2 (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

    % --- Executes on button press in reset.

    % function reset_Callback(hObject, eventdata, handles)

    % % hObject    handle to reset (see GCBO)

    % % eventdata  reserved - to be defined in a future version of MATLAB

    % % handles    structure with handles and user data (see GUIDATA)

    % initialize_gui(gcbf, handles, true);     %改动处

    % --- Executes on button press in Calculate.

    % function Calculate_Callback(hObject, eventdata, handles)

    % % hObject    handle to Calculate (see GCBO)

    % % eventdata  reserved - to be defined in a future version of MATLAB

    % % handles    structure with handles and user data (see GUIDATA)

    function ang0_Callback(hObject, eventdata, handles)

    % hObject    handle to ang0 (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 ang0 as text

    %        str2double(get(hObject,'String')) returns contents of ang0 as a double

    ang0 = str2double(get(hObject, 'String'));

    % if isnan(ang0)

    %     set(hObject, 'String', 0);

    %     errordlg('Input must be a number','Error');

    % end

    % Save the new volume value

    handles.metricdata.ang0 = ang0;

    guidata(hObject,handles)

    % --- Executes during object creation, after setting all properties.

    function ang0_CreateFcn(hObject, eventdata, handles)

    % hObject    handle to ang0 (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.

    % --- Executes during object creation, after setting all properties.

    function ang2_CreateFcn(hObject, eventdata, handles)

    % hObject    handle to ang2 (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 snap_number_Callback(hObject, eventdata, handles)

    % hObject    handle to snap_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 snap_number as text

    %        str2double(get(hObject,'String')) returns contents of snap_number as a double

    snap_number = str2double(get(hObject, 'String'));

    % if isnan(snap_number)

    %     set(hObject, 'String', 0);

    %     errordlg('Input must be a number','Error');

    % end

    % Save the new volume value

    handles.metricdata.snap_number = snap_number;

    guidata(hObject,handles)

    % --- Executes during object creation, after setting all properties.

    function snap_number_CreateFcn(hObject, eventdata, handles)

    % hObject    handle to snap_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 sample_frequency_Callback(hObject, eventdata, handles)

    % hObject    handle to sample_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 sample_frequency as text

    %        str2double(get(hObject,'String')) returns contents of sample_frequency as a double

    sample_frequency = str2double(get(hObject, 'String'));

    % if isnan(sample_frequency)

    %     set(hObject, 'String', 0);

    %     errordlg('Input must be a number','Error');

    % end

    % Save the new volume value

    handles.metricdata.sample_frequency = sample_frequency;

    guidata(hObject,handles)

    % --- Executes during object creation, after setting all properties.

    function sample_frequency_CreateFcn(hObject, eventdata, handles)

    % hObject    handle to sample_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 AM_JAM1_Callback(hObject, eventdata, handles)

    % hObject    handle to AM_JAM1 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of AM_JAM1

    % --- Executes on button press in PM_JAM1.

    function PM_JAM1_Callback(hObject, eventdata, handles)

    % hObject    handle to PM_JAM1 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of PM_JAM1

    % --- Executes on button press in radiobutton3.

    function AM_JAM2_Callback(hObject, eventdata, handles)

    % hObject    handle to radiobutton3 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of radiobutton3

    % --- Executes on button press in radiobutton4.

    function PM_JAM2_Callback(hObject, eventdata, handles)

    % hObject    handle to radiobutton4 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of radiobutton4

    % --- Executes on button press in radiobutton5.

    function AM_JAM3_Callback(hObject, eventdata, handles)

    % hObject    handle to radiobutton5 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of radiobutton5

    % --- Executes on button press in radiobutton6.

    function PM_JAM3_Callback(hObject, eventdata, handles)

    % hObject    handle to radiobutton6 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of radiobutton6

    function MVDR_Callback(hObject, eventdata, handles)

    % hObject    handle to radiobutton6 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of radiobutton6

    function GSC_Callback(hObject, eventdata, handles)

    % hObject    handle to radiobutton6 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of radiobutton6

    function MWF_Callback(hObject, eventdata, handles)

    % hObject    handle to radiobutton6 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of radiobutton6

    function LCEC_Callback(hObject, eventdata, handles)

    % hObject    handle to radiobutton6 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of radiobutton6

    function PCI_Callback(hObject, eventdata, handles)

    % hObject    handle to radiobutton6 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of radiobutton6

    function PCA_MVB_Callback(hObject, eventdata, handles)

    % hObject    handle to radiobutton6 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of radiobutton6

    function SC_MVB_Callback(hObject, eventdata, handles)

    % hObject    handle to radiobutton6 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of radiobutton6

    function EC_Callback(hObject, eventdata, handles)

    % hObject    handle to radiobutton6 (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'Value') returns toggle state of radiobutton6

    function reset_Callback(hObject, eventdata, handles)

    % hObject    handle to reset (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    initialize_gui(gcbf, handles, true);     %改动处

    function initialize_gui(fig_handle, handles, isreset)

    % If the metricdata field is present and the reset flag is false, it means

    % we are we are just re-initializing a GUI by calling it from the cmd line

    % while it is up. So, bail out as we dont want to reset the data.

    if isfield(handles, 'metricdata') && ~isreset

        return;

    end

    handles.metricdata.array_number = 16;

    handles.metricdata.work_frequency  = 3e9;

    handles.metricdata.array_distance  = 0.05;

    handles.metricdata.work_wavelength  = 0.1;

    handles.metricdata.SNR  = 0;

    handles.metricdata.JNR1  = 30;

    handles.metricdata.JNR2  = 30;

    handles.metricdata.JNR3  = 30;

    handles.metricdata.ang0  = 15;

    handles.metricdata.ang1  = 25;

    handles.metricdata.ang2  = 0;

    handles.metricdata.ang3  = -15;

    handles.metricdata.snap_number  = 100;

    handles.metricdata.sample_frequency  = 18e9;

    set(handles.array_number, 'String', handles.metricdata.array_number);

    set(handles.work_frequency,  'String', handles.metricdata.work_frequency);

    set(handles.array_distance, 'String', handles.metricdata.array_distance);

    set(handles.work_wavelength,  'String', handles.metricdata.work_wavelength);

    set(handles.SNR, 'String', handles.metricdata.SNR);

    set(handles.JNR1,  'String', handles.metricdata.JNR1);

    set(handles.JNR2, 'String', handles.metricdata.JNR2);

    set(handles.JNR3,  'String', handles.metricdata.JNR3);

    set(handles.ang0, 'String', handles.metricdata.ang0);

    set(handles.ang1,  'String', handles.metricdata.ang1);

    set(handles.ang2, 'String', handles.metricdata.ang2);

    set(handles.ang3,  'String', handles.metricdata.ang3);

    set(handles.snap_number, 'String', handles.metricdata.snap_number);

    set(handles.sample_frequency,  'String', handles.metricdata.sample_frequency);

    set(handles.AM_JAM1,'Value',1,'Enable','on');

    set(handles.PM_JAM1,'Value',0,'Enable','on');

    set(handles.AM_JAM2,'Value',1,'Enable','on');

    set(handles.PM_JAM2,'Value',0,'Enable','on');

    set(handles.AM_JAM3,'Value',1,'Enable','on');

    set(handles.PM_JAM3,'Value',0,'Enable','on')

    for k=1:length(ang)

        for i=1:M

            a(i)=exp(j*2*pi/lamda*d*(i-1)*sin(ang(k)*pi/180));

        end

        beam1(k)=W1'*a;            

    end

    beam1=abs(beam1);

    beam1=beam1/max(beam1);

    beam1=20*log10(beam1);

    axes(handles.directional_diagram_axes)

    plot(ang,beam1)

    set(handles.directional_diagram_axes,'XMinorTick','on')

    grid on

    ⛄ 运行结果

    ⛄ 参考文献

    [1]杨鑫. 自适应波束形成器生成方法及系统:, CN110687528A[P]. 2020.

    [2]袁海杰. 无源相控阵天线自适应波束算法优化及实现[D]. 西安电子科技大学.

    ❤️ 关注我领取海量matlab电子书和数学建模资料

    ❤️部分理论引用网络文献,若有侵权联系博主删除

  • 相关阅读:
    Java 开发环境安装与配置详细指南 - IntelliJ IDEA
    传统算法与神经网络算法,神经网络算法应用领域
    2022年Redis最新面试题 - Redis运维和部署
    <源码探秘CPython>-读懂Python解释器必须要会的C语言知识
    【0】数学的魅力
    反絮凝剂-氨碘肽滴眼液
    深入理解指针(三)
    含文档+PPT+源码等]精品基于Nodejs实现的教育网站[包运行成功]Nodejs毕业设计计算机项目源码
    使用LangChain SQLChain连接LLM和SQL数据库
    十道Linux常见的面试问题
  • 原文地址:https://blog.csdn.net/matlab_dingdang/article/details/127045207