删除从频率响应函数已知谐波(Remove Known Harmonic from from Freq

2019-10-23 18:28发布

我有一个输入正弦波是在时域中为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

Answer 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,:));


文章来源: Remove Known Harmonic from from Frequency Response Function