我有一个输入的正弦波,它在时域中,频率为10 of。我正在尝试在MATLAB中编写代码来开发一个二维模态分析问题的频率响应函数。

在输出中,在10 to处有一个占主导地位的峰值,这显然是由于输入谐波所致。
问题:
在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发布于 2015-07-12 15:06:25
谢谢你的建议,我找到了需要的答案。
我使用带阻滤波器来解决这个问题:
order=2;
lowFreq=9.5;
hiFreq=10.5;
[b,a] = butter(order, [lowFreq hiFreq]/(Fs/2), 'stop');
filtered_response = filter(b,a,u(1,:));https://stackoverflow.com/questions/31335831
复制相似问题