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

📄 program11_5.m

📁 The angles in degrees of the two spatially propagating signals Compute the array response vectors o
💻 M
字号:
%
% Problem 11.5
%
clear
M0 = 60; % number of elements for a filled array
spacing = 0.5; % element spacing in wavelengths
N = 1000; % number of samples
% The angles in degrees of the two spatially propagating signals
phi1 = 0;
phi2 = 3;
% The power levels of the signals and the noise
P1_db = 20;
P2_db = 20;
Pn = 0;
% Generate the 45 randomly selected elements (75% thinning)
elements_used = 0.75;
M = elements_used*M0;
r = rand(M0,1);
[dummy,index] = sort(r);
elements = sort(index(1:(elements_used*M0)))';
% Compute the array response vectors of the two signals
% (subtract one from elements to have first element be reference (0))
v1 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi1*pi/180))/sqrt(M);
v2 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi2*pi/180))/sqrt(M);
% Generate the signals 1 and 2 and the noise
s1 = (10^(P1_db/20)) * v1 * ((randn(1,N) + j*randn(1,N))/sqrt(2));
s2 = (10^(P2_db/20)) * v2 * ((randn(1,N) + j*randn(1,N))/sqrt(2));
w = (10^(Pn/20)) * (randn(M,N) + j*randn(M,N))/sqrt(2); % Noise
% Add signals and noise to get the total array signal
x = s1 + s2 + w;
% Generate the spatial matched filters to compute the steered
% response for angles from -90 to 90 degrees
phi = -90:0.2:90;
C_smf = exp(-j*2*pi*spacing*[elements-1]'*sin(phi*pi/180))/sqrt(M);
% Compute the steered response
R_steer_est = mean(abs(C_smf' * x).^2,2);
% Plot out the steered response in decibels
figure
plot(phi,10*log10(R_steer_est),'b','linewidth',2.5);
xlabel('Angle (deg)','fontweight','bold','fontsize',20);
ylabel('Steered Response (dB)','fontweight','bold','fontsize',20);
set(gca,'fontweight','bold','fontsize',18);
axis([-90 90 -5 25]);
grid
set(gca,'xtick',-90:15:90);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Repeat the same process for 50% array thinning
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
M0 = 60; % number of elements for a filled array
spacing = 0.5; % element spacing in wavelengths
N = 1000; % number of samples
% The angles in degrees of the two spatially propagating signals
phi1 = 0;
phi2 = 3;
% The power levels of the signals and the noise
P1_db = 20;
P2_db = 20;
Pn = 0;
% Generate the 30 randomly selected elements (50% thinning)
elements_used = 0.50;
M = elements_used*M0;
r = rand(M0,1);
[dummy,index] = sort(r);
elements = sort(index(1:(elements_used*M0)))';
% Compute the array response vectors of the two signals
% (subtract one from elements to have first element be reference (0))
v1 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi1*pi/180))/sqrt(M);
v2 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi2*pi/180))/sqrt(M);
% Generate the signals 1 and 2 and the noise
s1 = (10^(P1_db/20)) * v1 * ((randn(1,N) + j*randn(1,N))/sqrt(2));
s2 = (10^(P2_db/20)) * v2 * ((randn(1,N) + j*randn(1,N))/sqrt(2));
w = (10^(Pn/20)) * (randn(M,N) + j*randn(M,N))/sqrt(2); % Noise
% Add signals and noise to get the total array signal
x = s1 + s2 + w;
% Generate the spatial matched filters to compute the steered
% response for angles from -90 to 90 degrees
phi = -90:0.2:90;
C_smf = exp(-j*2*pi*spacing*[elements-1]'*sin(phi*pi/180))/sqrt(M);
% Compute the steered response
R_steer_est = mean(abs(C_smf' * x).^2,2);
% Plot out the steered response in decibels
figure
plot(phi,10*log10(R_steer_est),'b','linewidth',2.5);
xlabel('Angle (deg)','fontweight','bold','fontsize',20);
ylabel('Steered Response (dB)','fontweight','bold','fontsize',20);
set(gca,'fontweight','bold','fontsize',18);
axis([-90 90 -5 25]);
grid
set(gca,'xtick',-90:15:90);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Generate 3 randomly thinned arrays both at 50% and 75% and compute
% the beampatterns for the spatial matched filter at 0 degrees
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
M0 = 60; % number of elements for a filled array
spacing = 0.5; % element spacing in wavelengths
phi_steer = 0; % steering direction for beamformer
phi = -90:0.2:90; % angles to compute the beampattern
% Generate the 30 randomly selected elements (75% thinning)
elements_used = 0.75;
M = elements_used*M0;
% Beamformer 1 with 75% thinning and its beampattern
r = rand(M0,1);
[dummy,index] = sort(r);
elements = sort(index(1:(elements_used*M0)))';
c1_75 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi_steer*pi/180))/sqrt(M);
V1_75 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi*pi/180))/sqrt(M);
C1_75_bp = V1_75'*c1_75;
% Beamformer 2 with 75% thinning and its beampattern
r = rand(M0,1);
[dummy,index] = sort(r);
elements = sort(index(1:(elements_used*M0)))';
c2_75 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi_steer*pi/180))/sqrt(M);
V2_75 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi*pi/180))/sqrt(M);
C2_75_bp = V2_75'*c2_75;
% Beamformer 3 with 75% thinning and its beampattern
r = rand(M0,1);
[dummy,index] = sort(r);
elements = sort(index(1:(elements_used*M0)))';
c3_75 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi_steer*pi/180))/sqrt(M);
V3_75 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi*pi/180))/sqrt(M);
C3_75_bp = V3_75'*c3_75;
% Plot out the beampatterns in decibels
figure
plot(phi,10*log10(abs(C1_75_bp).^2),'b','linewidth',2.5);
xlabel('Angle (deg)','fontweight','bold','fontsize',20);
ylabel('Power Response (dB)','fontweight','bold','fontsize',20);
set(gca,'fontweight','bold','fontsize',18);
axis([-90 90 -50 0]);
grid
set(gca,'xtick',-90:15:90);
figure
plot(phi,10*log10(abs(C2_75_bp).^2),'b','linewidth',2.5);
xlabel('Angle (deg)','fontweight','bold','fontsize',20);
ylabel('Power Response (dB)','fontweight','bold','fontsize',20);
set(gca,'fontweight','bold','fontsize',18);
axis([-90 90 -50 0]);
grid
set(gca,'xtick',-90:15:90);
figure
plot(phi,10*log10(abs(C3_75_bp).^2),'b','linewidth',2.5);
xlabel('Angle (deg)','fontweight','bold','fontsize',20);
ylabel('Power Response (dB)','fontweight','bold','fontsize',20);
set(gca,'fontweight','bold','fontsize',18);
axis([-90 90 -50 0]);
grid
set(gca,'xtick',-90:15:90);
% Generate the 30 randomly selected elements (50% thinning)
elements_used = 0.50;
M = elements_used*M0;
% Beamformer 1 with 50% thinning and its beampattern
r = rand(M0,1);
[dummy,index] = sort(r);
elements = sort(index(1:(elements_used*M0)))';
c1_50 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi_steer*pi/180))/sqrt(M);
V1_50 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi*pi/180))/sqrt(M);
C1_50_bp = V1_50'*c1_50;
% Beamformer 2 with 50% thinning and its beampattern
r = rand(M0,1);
[dummy,index] = sort(r);
elements = sort(index(1:(elements_used*M0)))';
c2_50 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi_steer*pi/180))/sqrt(M);
V2_50 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi*pi/180))/sqrt(M);
C2_50_bp = V2_50'*c2_50;
% Beamformer 3 with 50% thinning and its beampattern
r = rand(M0,1);
[dummy,index] = sort(r);
elements = sort(index(1:(elements_used*M0)))';
c3_50 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi_steer*pi/180))/sqrt(M);
V3_50 = exp(-j*2*pi*spacing*[elements-1]'*sin(phi*pi/180))/sqrt(M);
C3_50_bp = V3_50'*c3_50;
% Plot out the beampatterns in decibels
figure
plot(phi,10*log10(abs(C1_50_bp).^2),'b','linewidth',2.5);
xlabel('Angle (deg)','fontweight','bold','fontsize',20);
ylabel('Power Response (dB)','fontweight','bold','fontsize',20);
set(gca,'fontweight','bold','fontsize',18);
axis([-90 90 -50 0]);
grid
set(gca,'xtick',-90:15:90);
figure
plot(phi,10*log10(abs(C2_50_bp).^2),'b','linewidth',2.5);
xlabel('Angle (deg)','fontweight','bold','fontsize',20);
ylabel('Power Response (dB)','fontweight','bold','fontsize',20);
set(gca,'fontweight','bold','fontsize',18);
axis([-90 90 -50 0]);
grid
set(gca,'xtick',-90:15:90);
figure
plot(phi,10*log10(abs(C3_50_bp).^2),'b','linewidth',2.5);
xlabel('Angle (deg)','fontweight','bold','fontsize',20);
ylabel('Power Response (dB)','fontweight','bold','fontsize',20);
set(gca,'fontweight','bold','fontsize',18);
axis([-90 90 -50 0]);
grid
set(gca,'xtick',-90:15:90);

⌨️ 快捷键说明

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