简化版Prony算法参数辨识仿真研究

1.问题描述:

基于prony算法的参数辨识算法的仿真——简化版_prony

被测信号中包含四个振荡模态,在数据窗宽度同样为10s的前提下,利用不同的采样频率做普罗尼计算。



2.部分程序:
 

登录后复制

function X = func_Prony(Signal,dt);s     = Signal;  
L     = length(s(1:length(Signal)));  Order = ceil(L/2);  
R     = [];  K1    = 0;    K2    = 0; %扩展矩阵  while K1 <= Order      K2  = 1;      
Re = [];      while K2 <= Order          u  = Order - K2 +1;          v  = L - K2;          
m  = Order - K1 +1;          l  = L - K1;          r  = sum(s(u:v).*conj(s(m:l)));          
Re = [Re,r];          K2  = K2 + 1;      end      R = [R,Re'];      K1 = K1 + 1;  
end %计算阶数  Order = func_Order(R); %计算相关参数 K2 = Order-1;  Re = R(2:end,2:K2+1);  
b  = R(:,1);  b  = b(2:end);  a  = pinv(Re)*(-b); R1 = R(1,:);  R1 = R1(1:K2+1);  
a1 = [1 a']; Ep = sum(R1.*a1);  P  = [1 a'];  z  = roots(P); %估计序列X  ks    = 1:K2;  
X(ks) = s(ks); for Order = K2+1 : L      Lij      = 1:K2;      X(Order) = sum(-a'.*s(Order-Lij));      
Order    = Order+1;  end Zh = [];  for mm = 0:L-1      Zh = [Zh,z.^mm];  end Z    = Zh';  Z    = conj(Z);  
Zhh  = Z';  b    = (Zhh*Z)^(-1)*Zhh*X';  %最后得到的四个参数值 A     = abs(b) f     = angle(z)/2/pi/0.001 a     
= log(abs(z))/dt theta = angle(b)/2/pi/dt1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25
.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.



3.仿真结论:

注意,这里论文中你所给的那个公式,貌似有点小错误,这里我们使用了两组公式进行计算,一组是你所提供的公式,一组是我们给的测试数据。

仿真结果如下所示:

基于prony算法的参数辨识算法的仿真——简化版_matlab_02




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空