在前面的博文中,已經介紹了陣列信號處理的一些基本概念,並介紹了線陣的導向向量結構以及波束相關的基本概念。在這篇博文,主要基於線陣介紹一些權值對波束的影響,這些加權的主要目的就是降低旁瓣,並使主波束的寬度增長最小。
均勻加權
均勻加權下的權值為
此時可以得到\(u\)空間下的波束方向圖為
cosine加權
考慮到N
是奇數的情況下,cosine
加權的權重系數可以表示成
將\(cos\)表示成指數函數形式並進一步化簡得到波束方向圖為

權值 | 3dB 帶寬 |
第一零點 | 第一旁瓣高度 |
---|---|---|---|
均勻加權 | \(0.89\frac{2}{N}\) | \(2\frac{2}{N}\) | -13dB |
cosine加權 | \(1.18\frac{2}{N}\) | \(3\frac{2}{N}\) | -23.5dB |
升cosine加權
將矩陣加權和cosine加權結合起來,可以另外一種加權系數定義方法
其中\(c(p)=\frac{p}{N}+\frac{1-p}{2}sin(\frac{\pi}{2N})\)是一個常數。設置\(p=0.31\),得到波束方向圖如下

可以看到相對於前兩種加權方式而言,升cosine
加權有着更低的旁瓣,並且主波束寬度要小於cosine
加權
Hamming加權
Hamming加權利用了矩形方向圖和cosine
平方方向圖的特點,在第一旁瓣的峰值上放置了一個零點,此時加權函數為
其中\(g_0\)和\(g_1\)的選擇使得在\(u=\frac{3}{N}\)的位置上有一個零點。對\(w(n)\)進一步化簡可以得到
進而可以得到波束方向圖
其加權波束方向圖可以表示成

Kaiser加權
Kaiser
加權的加權系數可以表示成
其中\(I_0(x)\)是零階修正Bessel
函數,參數\(\beta\)決定了波束方向圖在旁瓣峰值高度和主波束寬度之間的性能折中情況。其波束方向圖仿真如下

上面主要介紹了幾種不同的加權方式對波束方向圖的影響,還有許多其它的加權系數設計方案,包括長球函數
,blackmanHaris
加權等等。
相應的代碼如下:
clear all
close all
M = 11;
d=0.5;
D = [-(M-1)/2:1:(M-1)/2]*d;
u = [0.001:0.001:1];
for i = 1 : length(u)
B(i) = (1 / M) * (sin(pi * M * d * u(i)) / sin(pi * d * u(i)));
B_cos(i) = 1/2 * sin(pi / (2*M)) * ( sin((M * pi / 2)*(u(i) - 1 / M))/(sin(pi *(u(i) - 1/M)/ 2)) + ...
sin((M * pi / 2)*(u(i) + 1 / M))/(sin(pi *(u(i) + 1/M)/ 2)));
end
figure(1)
plot(u,20*log10(abs(B)),'--', u, 20 * log10(abs(B_cos)), '-+');
ylabel('波束方向圖(dB)');
xlabel('u');
legend('均勻加權','cosine加權')
axis([0 1 -80 0]);
clear all
close all
M=11;
d=0.5; % sensor spacing wrt wavelength
D = [-(M-1)/2:1:(M-1)/2]*d;
p = 0.31;
W_rcos = p*ones(1,M)+(1-p)*cos(pi*D*2/M);
u = [0.01:0.001:1];
for i = 1 : length(u)
B(i) = (1 / M) * (sin(pi * M * d * u(i)) / sin(pi * d * u(i)));
B_cos(i) = 1/2 * sin(pi / (2*M)) * ( sin((M * pi / 2)*(u(i) - 1 / M))/(sin(pi *(u(i) - 1/M)/ 2)) + ...
sin((M * pi / 2)*(u(i) + 1 / M))/(sin(pi *(u(i) + 1/M)/ 2)));
end
% Beampatterns
%c=p/M+(1-p)*2*sin(pi/(2*M));
A = exp(-j*2*pi*D.'*u);
G_rcos = W_rcos*A;
G_rcos = G_rcos/(max(abs(G_rcos)));
figure
plot(u,20*log10(abs(G_rcos)),'-.', u,20*log10(abs(B)),'--', u, 20 * log10(abs(B_cos)), '-+');
ylabel('波束方向圖(dB)');
xlabel('u');
legend('升cosine加權','均勻加權','cosine加權')
axis([0 1 -80 0]);
close all
clear all
M = 11;
d = 0.5;
D = [-(M-1)/2:1:(M-1)/2]*d;
u = [0.001:0.001:1];
for i = 1 : length(u)
B(i) = 0.54 * sin(M * pi * u(i)/2)/sin(pi * u(i)/2) + 0.23 * ( sin((M * pi / 2)*(u(i)-2/M))/sin((pi/2)*(u(i)-2/M)) +...
sin((M * pi / 2)*(u(i)+2/M))/sin((pi/2)*(u(i)+2/M)));
end
figure(1)
plot(u, 20 * log10(abs(B)), '--')
xlabel('u')
ylabel('波束方向圖(dB)')
legend('Hamming加權')
clear all
close all
N = 11;
beta = 3;
bes = besseli(0,beta);
for n = -(N-1)/2:(N-1)/2
x = 1-(2*n/N)^2;
wn1(n+1+(N-1)/2) = besseli(0,beta*sqrt(x));
end
wn1 = wn1'/bes;
u=(-1:0.001:1);
amf1=[-(N-1)/2:(N-1)/2]';
Vo1=exp(i*amf1*pi*u);
wn1=wn1/sum(wn1);
Beam1=20*log10(abs(wn1'*Vo1));
plot(u,Beam1,'--','Linewidth',2)
xlabel('u')
ylabel('波束方向圖(dB)')
%axis([-1 1 -50 0])