2010-10-22 56 views
0

这里是场景,从一组输入和一组输入计算频率响应

我有一组输入值说2000,和相应的输出值,采样率是2000个样本/秒,为50Hz正弦波被使用,所以我怎么计算频率响应从这个varaiables,

我所做的在MATLAB是,

我呼吁所有的输入值,并采取了它的fft,

o=data(input), 
n=length(o);fs=2000 %sampliing frequency; 
y=fft(o,n), 
phase=angle(y), 
Pha=180*phase/pi(); 
m=length(y); 
f=(0:m-1)*fs/m; 
semilogx(f,Pha), grid on 

和响应以90度的相位角取,这是正确的方式,

我可以创建从我有DATAS一个模型,然后执行频率响应或是否有任何其他的方法来计算响应,我是matlab新手,需要帮助

+0

可能的重复[频率响应使用FFT在MATLAB](http://stackoverflow.com/questions/3993147/frequency-response-using-fft-in-matlab) – 2010-10-23 17:11:58

回答

1

如果你的输入只是一个50赫兹的正弦曲线,那么你就无法测量频率响应 - 你可以测量的是在该特定频率下的增益和相位偏移。尽管FFT可以用来测量系统中的噪声和任何非线性影响,但是FFT等并不能告诉您更多关于频率响应的信息。

如果您想测量频率响应,那么您的输入信号需要宽带并覆盖感兴趣的频率范围,例如,噪音,冲动或扫描正弦曲线。

+0

谢谢保罗,所以如果我的输入是扫描正弦曲线,输入电流单位为毫安,输出为压力,频率分析仪输出为16秒,所有相应的输出压力,我可以计算输出和输出之间的频率响应输入 – Jerry 2010-10-23 16:21:00

+0

@Jerry:你在这里有两个完全独立的问题:(1)如何测量频率响应和(2)如何获得正确的单位。 (1)是困难的部分,(2)只是一个缩放因子,您可能需要应用这些因子才能获得谱图中的正确值。现在忘记(2),只是集中精力获得频率响应。一旦你有了这个,你可以计算出缩放因子需要是什么来获得正确的单位。 – 2010-10-23 17:06:03