注:功能代码仅供参考 不可拿来直接使用
%% file: Peak SideLobe Ratio And Half Angle Width% function PSR(M,f0)%% transmit parametersclear all;close all;clc;tic;M = 16;% transmit array scalef0 = 10e9;% radio frequencyc = 3e8;% light speedd = 0.5*c/f0; % interelement spacingwt1 = chebwin(M); % wvtool(hamming(4*M0));wt2 = hann(M); % wvtool(hamming(4*M0));wt3 = hamming(M); % wvtool(hamming(4*M0));wt4 = blackman(M); % wvtool(blackman(M));t = 10e-6;r = 10e3;% range grid 201theta = (-90:1:90)/180*pi;% angle grid 361%% plot Time periodicity of array factor[X_a] = meshgrid(theta/pi*180,1);% figure;[SingleFreqSignal, index_t] = Moudle_SingleFreq_Signal( M, f0);[deltaf1, deltaf2] = Moudle_Deltaf_SingleFreq_Signal;delta_f = [deltaf1, deltaf2];% frequency incrementfor i = 1:length(delta_f) for j = 1:length(theta) %% part of codes have been deleted X_BP = diag( (aSteer.*rSteer.*tSteer) )*SingleFreqSignal(:,index_t); Bp1(i,j) = abs( wt1' * X_BP ); Bp2(i,j) = abs( wt2' * X_BP ); Bp3(i,j) = abs( wt3' * X_BP ); Bp4(i,j) = abs( wt4' * X_BP ); endendBp1 = abs(Bp1/max(Bp1(:))); Bp1 = 20*log10(Bp1); %%%---independent[~,index_deltaf1] = min( abs(Bp1(1,:)) );[~,index_deltaf2] = min( abs(Bp1(2,:)) );%%%---independent[~,index_t1_1] = min( abs(Bp1(1,:)-20*log10(0.5)) ); Half_AngleWidth1_deltaf1_1 = 2*abs( X_a(index_t1_1) - X_a(index_deltaf1) );[~,index_t1_2] = min( abs(Bp1(2,:)-20*log10(0.5)) ); Half_AngleWidth1_deltaf1_2 = 2*abs( X_a(index_t1_2) - X_a(index_deltaf2) );Bp2 = abs(Bp2/max(Bp2(:))); Bp2 = 20*log10(Bp2); [~,index_deltaf1] = min( abs(Bp2(1,:)) );[~,index_deltaf2] = min( abs(Bp2(2,:)) );%%%---independent[~,index_t2_1] = min( abs(Bp2(1,:)-20*log10(0.5)) ); Half_AngleWidth2_deltaf1_1 = 2*abs( X_a(index_t2_1) - X_a(index_deltaf1) );[~,index_t2_2] = min( abs(Bp2(2,:)-20*log10(0.5)) ); Half_AngleWidth2_deltaf1_2 = 2*abs( X_a(index_t2_2) - X_a(index_deltaf2) ); Bp3 = abs(Bp3/max(Bp3(:))); Bp3 = 20*log10(Bp3); [~,index_deltaf1] = min( abs(Bp3(1,:)) );[~,index_deltaf2] = min( abs(Bp3(2,:)) );%%%---independent[~,index_t3_1] = min( abs(Bp3(1,:)-20*log10(0.5)) ); Half_AngleWidth3_deltaf1_1 = 2*abs( X_a(index_t3_1) - X_a(index_deltaf1) );[~,index_t3_2] = min( abs(Bp3(2,:)-20*log10(0.5)) ); Half_AngleWidth3_deltaf1_2 = 2*abs( X_a(index_t3_2) - X_a(index_deltaf2) ); Bp4 = abs(Bp4/max(Bp4(:))); Bp4 = 20*log10(Bp4); clear index_deltaf1 index_deltaf2[maxValue_deltaf1,index_deltaf1] = min( abs(Bp4(1,:)) );[maxValue_deltaf2,index_deltaf2] = min( abs(Bp4(2,:)) );%%%---independent[minVar1_1,index_t4_1] = min( abs(Bp4(1,:)-20*log10(0.5)) ); Half_AngleWidth4_deltaf1_1 = 2*abs( X_a(index_t4_1) - X_a(index_deltaf1) );[minVar1_2,index_t4_2] = min( abs(Bp4(2,:)-20*log10(0.5)) ); Half_AngleWidth4_deltaf1_2 = 2*abs( X_a(index_t4_2) - X_a(index_deltaf2) );% plot(X_a,Bp(1,:),'-^r',X_a,Bp(2,:),'-ok','MarkerFaceColor','k');% h=plot(a,b,'k-o','Markersize',7,'Markerface','white','linewidth',1.0);plot(X_a,Bp1(1,:),'-+r',X_a,Bp2(1,:),'-m.',X_a,Bp3(1,:),'-x',X_a,Bp4(1,:),'-pk','Markersize',10,'Linewidth',2);grid on;xlabel('Angle [deg]','fontweight','bold');ylabel('Normalized Amplitude [dB]','fontweight','bold');title('16个阵元','fontweight','bold');set(gca, 'xlim', [-90, 90]);set(gca, 'ylim', [-60, 0]);legend('chebwin','hann','hamming','blackman',2);toc;figure;plot(X_a,Bp1(2,:),'-+r',X_a,Bp2(2,:),'-m.',X_a,Bp3(2,:),'-x',X_a,Bp4(2,:),'-pk','Markersize',10,'Linewidth',2);grid on;xlabel('Angle [deg]','fontweight','bold');ylabel('Normalized Amplitude [dB]','fontweight','bold');title('16个阵元','fontweight','bold');set(gca, 'xlim', [-90, 90]);set(gca, 'ylim', [-60, 0]);legend('chebwin','hann','hamming','blackman',2); %% file: Peak SideLobe Ra