声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1215|回复: 4

[综合讨论] 求助,利用ARX模型识别频率和阻尼的matlab程序

[复制链接]
发表于 2006-12-11 11:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本人是初学者,请各位多多关照.
已知输入,输出数据,利用ARX模型识别频率和阻尼.请各位高人赐教!
回复
分享到:

使用道具 举报

发表于 2006-12-11 11:23 | 显示全部楼层

回复

请先贴一下代码及数据,以及你的具体问题.
如果纯粹要程序,可能并不是学习的好方法.

[ 本帖最后由 xjzuo 于 2006-12-11 11:25 编辑 ]
 楼主| 发表于 2006-12-18 15:55 | 显示全部楼层
clear
clc

clf;
dx=0.01;
x=0:dx:40.96-dx;
load data.dat;
a=HCN(1501:5596,2);
b=HCN(1501:5596,5);
dal=dtrend(a);
ddal=dtrend(dal,1);
ddall=idfilt(ddal,50,[0.1/50 25/50]);
dbl=dtrend(b);
ddbl=dtrend(dbl,1);
ddbll=idfilt(ddbl,50,[0.1/50 25/50]);
data=iddata(ddbll,ddall,0.01);
na=32;nb=33;nk=delayest(data);
th=arx(data,'na',na,'nb',nb,'nk',nk);
data1=predict(th,data);
e1=pe(th,data);
[A,B]=polydata(th);
for i=1:length(B)
    if B(1)==0
       B=B(2:length(B));
    end
end
[z,p,k]=tf2zp(B,A);
for i=1:length(p)
    f(i)=(log(p(i)).*log(p(i)')).^0.5./(2*pi*dx);
    h(i)=-1*(log(p(i))+log(p(i)'))./(4*pi*f(i)*dx);
end
f=smooth(f);
h=smooth(h);
subplot(3,1,1),plot(x,a,'-',x,b,':');
subplot(3,1,2),plot(f);
subplot(3,1,3),plot(h);
 楼主| 发表于 2006-12-18 15:56 | 显示全部楼层
感觉滤波还是有点问题,请高人指教
 楼主| 发表于 2006-12-18 16:27 | 显示全部楼层

求助,利用ARX模型识别频率和阻尼的matlab程序

数据

data.dat

505.44 KB, 下载次数: 33

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 06:27 , Processed in 0.069147 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表