⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plot_sequence_of_array_response_and_interferers.m

📁 implement basic routines in Matlab and Octave (currently using Matlab R13) for simulating adaptive b
💻 M
字号:
function plot_sequence_of_array_response_and_interferers(array_responses, target_aoa_deg, interferer_aoa_deg, nfft, stepsize, type)

xp=linspace(-1, 1, nfft);
numIterations = size(array_responses, 2)

if((type == 1) || (type == 3))
    figure('Color', 'w'), hold on
    cmap = colormap(jet(numIterations));
    xp=linspace(-1, 1, nfft);
    for i = 1:stepsize:numIterations
        plot(xp,10*log10(fftshift(abs((fft(array_responses(:,i), nfft)).^2))), 'Color', cmap(i, :));
    end
    %for i = 1:floor(numIterations/50):numIterations
    %    plot(xp,10*log10(fftshift(abs((fft(array_responses(:,i), nfft)).^2))), 'Color', cmap(floor(i/floor(numIterations/50))+1, :));
    %end
    targetline = line([sin(deg2rad(target_aoa_deg)), sin(deg2rad(target_aoa_deg))],[-100 100],'LineWidth',3,'Color','g');
    for i = 1:size(interferer_aoa_deg,2)
        jammerline(i) = line([sin(deg2rad(interferer_aoa_deg(i))), sin(deg2rad(interferer_aoa_deg(i)))],[-100 100],'LineWidth',2,'Color','r');
    end
    xlabel('Sin(theta)')
    ylabel('Spatial spectrum power, dB')
    title('Combined weight pattern plot')
    hold off
end

if((type == 2) || (type == 3))
    stepsize = floor(numIterations/100)
    stepsize = 1;
    for i = 1:stepsize:numIterations
%        i/stepsize
        mysurface(:,((i+stepsize-1)/stepsize)) = 10*log10(fftshift(abs((fft(array_responses(:,i), nfft)).^2)));
    end
    XX = 1:stepsize:numIterations;
    YY = xp;
    figure
    surf(XX, YY, mysurface)

    shading interp
    colormap(jet) ; %try 'hsv', 'cool', 'bone' too
    xlabel('Numerical Iteration (number of auxilary vectors)','FontSize', 14), ylabel('Sin(theta)','FontSize', 14), zlabel('Array Response (dB)','FontSize', 14)
    title('Optimal pattern','FontSize', 14)

%    axis([1 numIterations -1 1 -50 20])        
    colorbar
    view(2)
    rotate3d

    targetline = line([0 numIterations],[sin(deg2rad(target_aoa_deg)), sin(deg2rad(target_aoa_deg))], [15 15],'LineWidth',10,'Color','b');
    for i = 1:size(interferer_aoa_deg,2)
        jammerline(i) = line([0 numIterations],[sin(deg2rad(interferer_aoa_deg(i))), sin(deg2rad(interferer_aoa_deg(i)))], [10 10],'LineWidth',2,'Color','k');
    end
    for y = 0:-5:(-80)
        for i = 1:size(interferer_aoa_deg,2)
            jammerline(i) = line([0 numIterations],[sin(deg2rad(interferer_aoa_deg(i))), sin(deg2rad(interferer_aoa_deg(i)))], [y y],'LineWidth',1,'Color','k');
        end        
    end
    axis tight
end

% Origional code in main macro
% if (plot_sequence_of_array_responses == 1)
%     % Plot response
%     figure('Color', 'w'), hold on
%     cmap = colormap;
%     nfft = 1024;
%     xp=linspace(-1, 1, nfft);
%     for i = 1:floor(numIterations/60):numIterations
%         plot(xp,10*log10(fftshift(abs((fft(w_av(:,i),nfft)).^2))), 'Color', cmap(floor(i/floor(numIterations/60))+1, :));
%     end
%     targetline = line([sin(deg2rad(0)), sin(deg2rad(0))],[-100 100],'LineWidth',3,'Color','g');
%     for i = 1:size(interferer_aoa_deg,2)
%         jammerline(i) = line([sin(deg2rad(interferer_aoa_deg(i))), sin(deg2rad(interferer_aoa_deg(i)))],[-100 100],'LineWidth',2,'Color','r');
%     end
%     xlabel('Sin(theta)')
%     ylabel('Spatial spectrum power, dB')
% end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -