【问题标题】:Remove Known Harmonic from from Frequency Response Function从频率响应函数中去除已知谐波
【发布时间】:2015-07-12 15:06:24
【问题描述】:

我有一个频率为 10Hz 的时域输入正弦波。我正在尝试在 MATLAB 中编写代码来开发用于 2dof 模态分析问题的频率响应函数。

在输出中,在 10Hz 处有一个占主导地位的峰值,这显然是由于输入谐波造成的

问题:

在 matlab 中从响应(输出)中消除这种已知谐波干扰的最佳方法是什么?

另外,在不知道干扰谐波的情况下该怎么办?

Fs=1/dt;
NFFT = 2 ^ nextpow2 (L);                       %L is the length of signal
Y = fft (Output_time(1,:), NFFT) / L;          %Response in time domain to frequency domain
X=fft(Input_time,NFFT)/L;                      %Input in time to frequency domain
f = Fs / 2 * linspace (0,1, NFFT / 2 + 1);     %Frequencies
Output_frequency=2 * abs (Y (1: NFFT / 2 + 1));
Input_frequency=2 * abs (X (1: NFFT / 2 + 1));
FRF=(Y(1: NFFT / 2 + 1)./X(1: NFFT / 2 + 1));  %Frequency Response Functions

【问题讨论】:

  • 知道的可以过滤!了解一些关于滤波器的知识,因为也许只有带通滤波器就可以完成这项工作
  • 网站Signal Processing可能对此类问题有所帮助

标签: matlab filter frequency


【解决方案1】:

感谢您的建议;我找到了所需的答案。

我使用带阻滤波器来解决这个问题:

order=2;
lowFreq=9.5;
hiFreq=10.5;
[b,a] = butter(order, [lowFreq hiFreq]/(Fs/2), 'stop');
filtered_response = filter(b,a,u(1,:));

【讨论】:

    猜你喜欢
    • 2018-10-19
    • 2011-03-11
    • 1970-01-01
    • 2017-02-09
    • 2016-02-08
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多