music_root_zfj.m

来自「使用matlab编写的8个现代信号处理程序」· M 代码 · 共 40 行

M
40
字号
%产生信号序列
n=linspace(-pi,pi,1024);
xn=2*sin(n*40)+cos(n*100)+randn(size(n));
N=length(n);
M=round(N/10);
K=4;
%求R矩阵
for i=M:N-1
    x=xn(i:-1:i-M+1);
    a=x';
    y(:,i)=a;
end
r=0;
for i=M:N-1
    r=r+y(:,i)*(y(:,i))';
end
R=r/(N);
[v,d]=eig(R);
G=v(:,1:M-K);
GG=G*G';
%求系数
gg(1:2*M-1)=0;
 for i=1:M
     for j=1:M
         gg(i-j+M)=gg(i-j+M)+GG(i,j);
     end
 end
gg1=fliplr(gg);
r=roots(gg1);
for i=1:2*M-2
    r1(i)=abs(1-abs(r(i)));
end
%搜索排序
[xs,idx]=sort(r1);
r3(1:2*K)=r(idx(1:2*K));
for i=1:2*K
   af(i)=phase(r3(i))/2/pi*(N+1);
   ap(i)=abs(r3(i));   
end
af

⌨️ 快捷键说明

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