• 大小: 2KB
    文件类型: .m
    金币: 2
    下载: 2 次
    发布日期: 2021-06-03
  • 语言: Matlab
  • 标签:

资源简介

第三版现代信号处理,prony谱线估计算法修正版,对于书上的一些小错误已经修正,取得的效果很好。

资源截图

代码片段和文件信息

clear all;
close all;
clc;
x1=0.05:0.05:10;
dt=0.05;%抽样时间
fs=1/dt;%抽样频率

wn=randn(1200);
% x=(10*x1).*cos(2*pi*5*x1+pi/2)+(25*x1).*cos(2*pi*2.5*x1+pi/2)+wn;
x=(5*x1).*cos(2*pi*4*x1+pi/2)+(10*x1).*cos(2*pi*4.5*x1+pi/2)+wn;

N=length(x)-20;%N为了满足后面r(ij)的计算,所以减少N的取值
figure(1);
plot(x);
grid on;
pe=6;%生设置阶数为6,记住pe和p不同,p是要算的,pe是先给出的
%书上公式有问题,加法x维度超出,减法维度刚好不超出,所以只能将加法的维度拉回,减法的维度不管
for i=2:pe+1
    for j=1:pe+1
        for k=pe:N-1
            r1(ij)= [x(k+j-2)+x(k-j+2)]*[conj(x(k+i-2))+conj(x(k-i+2))];
        end
    end
end

Re=r1(2:pe+1:);%构建Re矩阵

%求解有效秩p
[U S V]=svd(Re);%奇异值分解
for k=1:pe
    b=S(kk)/S(11);
    if(b<0.05)
        break
    end
end 
p=k;

sp=zeros(p+1p+1);%初始化sp矩阵p+1维
for j=1:p
    for i=1:(pe+1-p)
        sp=(S(jj).^2)*V(i:i+pj)*V(i:i+pj)‘+sp;%V(1:71)是第1行到第7行的第一列的数据,窗是6行1列   
    end
end

inv_sp=inv(sp);     %求矩阵sp的逆  
%根据(4.4.58),利用整体最小二乘法求出待求参数
for i=1:p+1       
    a_compute(1i)=inv_sp(i1)/inv_sp(11);    %

评论

共有 条评论

相关资源