Music:利用信号子空间和噪声子空间的正交性,构造空间谱函数,通过谱峰搜索,估计信号频率。这里的谱峰也称为“伪谱”,或MUSIC谱。
以下列信号为例
产负高斯白噪声序列和带噪声的信号样本
N=1000;
noise=(rand(1,N)+j*rand(1,N))/sqrt(2);
u(n)=exp(1i*0.5*pi*(0:N-1)+1i*2*pi*rand)+exp(-1i*0.3*pi*(0:N-1)+1i*2*pi*rand)+noise;
- 计算自相关矩阵
M=8;%自相关矩阵的阶数
for k=1:N-M
xs(:,k)=un(k+M-1:-1:k).';
end
R=xs*xs'/(N-M);
- 计算伪谱(考虑到要画点,就要记录每次P的离散值,因此w的范围用n来表示,下面用NF个采样点表示)
NF=2048;
for n=1:NF
aw=exp(-1i*2*pi*((n-1)/(NF-1)-0.5)*(0:M-1)');
P(n)=1/(aw'*G*G'*aw);
f(n)=((n-1)/(NF-1)-0.5);
end
maxx=max(P);
figure,plot(-f,10*log10((P+eps)/maxx));
xlabel('频率f');ylabel('归一化功率谱/dB')
注意这里绘图时f要取负号,因为当最后个点n=NF时,(n-1)/(NF-1)-0.5 相当于f=-0.5,但是我们画的坐标轴f=-0.5在x轴最左边,因此要取个符号。