得到系统的脉冲响应后,如何用fft变换求得其频响函数
我已经用impulse函数得到单自由度系统的脉冲响应,按道理通过傅立叶变换可以求得其频响函数,可是出来的结果,与我自己用公式推导的结果不一样,是什么原因呢?哪一位熟悉这个的可以附上来一段代码,来讨论一下错误出在哪里呢?
比如m=10, c=2.0, k=100, 很简单的系统,其频响函数为 H=1/(k-m*w^2+j*c*w)
然后我用impulse函数求得的脉冲响应进行fft变换,发现根本不一样,是怎么回事,如果高手能够给方法,不胜感激!
[ 本帖最后由 sigma665 于 2008-4-18 22:11 编辑 ] 没有人来解答这个简单的问题么?? 想看一下你的impulse函数和fft函数在matlab中的具体形式,不知道你要验证这个东西干吗 clear all
close all
m_real=10;
c_real=1;
k_real=1000;
Areal=[01;
-k_real/m_real -c_real/m_real];
Breal=[0;
1/m_real];
Creal=;
Dreal=;
Preal=ss(Areal,Breal,Creal,Dreal);
t=0:0.01:20;
h=impulse(Preal,t);
figure
plot(t,h)
N=length(h);
H_fft=fft(h,N);
f=(0:N-1)/20;
figure
plot(f,abs(H_fft))
w=(0:0.05:100)*2*pi;
H_w=freqresp(Preal,w);
for ii=1:length(w)
H_omega(ii)=H_w(:,:,ii);
end
H_omega=H_omega.';
figure
plot(w/(2*pi),abs(H_omega)) 高手帮我看看吧,就是对应不起来啊,由FFT计算的H_fft和由freqresp计算的频率响应H_omega就是不一样啊!
还望gh688等网友帮个忙给看看怎么回事,多谢了!!
页:
[1]