求助,利用ARX模型识别频率和阻尼的matlab程序
本人是初学者,请各位多多关照.已知输入,输出数据,利用ARX模型识别频率和阻尼.请各位高人赐教!
回复
请先贴一下代码及数据,以及你的具体问题.如果纯粹要程序,可能并不是学习的好方法.
[ 本帖最后由 xjzuo 于 2006-12-11 11:25 编辑 ] 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,);
dbl=dtrend(b);
ddbl=dtrend(dbl,1);
ddbll=idfilt(ddbl,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);
=polydata(th);
for i=1:length(B)
if B(1)==0
B=B(2:length(B));
end
end
=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); 感觉滤波还是有点问题,请高人指教
求助,利用ARX模型识别频率和阻尼的matlab程序
数据
页:
[1]