FIR 滤波器的输出在信号的开头有一个峰值

信息处理 matlab 有限脉冲响应
2022-01-25 19:02:02

我有一个信号 并使用 FIR 带通滤波器对信号进行滤波以接收(使用内置函数在 MATLAB 中实现)。滤波后的信号的延迟为滤波阶数的一半。x[n]y[n]firpmy[n]

问题是滤波后的信号在开始时有一个原始信号中不存在的主峰。y[n]

  • 那个高峰的原因是什么?
  • 是否可以衰减峰值?

峰值(或响应)显示在 0-0.5 秒之间的滤波信号的第二个图中(请注意,我只显示几分钟信号的前几秒) 峰值(或响应)显示在 0-0.5 秒之间的滤波信号的第二个图中(请注意,我只显示几分钟信号的前几秒)

信号以 250 个样本/秒的速率进行采样。所需的滤波器通过 10-20 Hz 之间的频率。过滤器的实现代码:

fs=250; % sampling rate; 
n= 120; % filter order;
freqs = [0 5 10 20 25 fs/2]/(fs/2); % normalized frequencies in Hz;
amps = [0 0 1 1 0 0 ]; % amplitudes;
b = firpm (n,freqs,amps); % define filter coefficients; 
filtered_signal = filter (b,1,original_signal); % apply FIR filter;
1个回答

小于的输入信号的隐含零点,它是滤波器输出的初始瞬态n0

让我在这里模拟一下效果,因为您没有发布实际数据,我将使用以下Matlab/Octave代码尽可能接近地对其进行建模:

Fs = 250;                    % Sampling frequency in Hz.
Ts=1/Fs;                     % Sampling period in seconds.
t = [0:Ts:4];                % Simulation interval for the signals.
L = length(t);               % Simulation signal lengths in samples.

x = 8E4 + 1E4*exp(-t)  + 1E3*filter(fir1(43,0.03),1,randn(1,L));
% Note: x[n] is roughly modeling your input signal sampled at 250 Hz.
% I have not included those spikes, as they're irrelevant for this analysis

b = fir1(65,[10/125 20/125],'bandpass');   % a BPF with passband [10,20] Hz.
y = filter(b,1,x);           % Obtain the filtered output signal.

% Now, observe the outputs...
figure,subplot(2,1,1); 
plot(t,x);title('Input signal x[n] of duration 4 seconds')
subplot(2,1,2)
plot(t,y);title('Output signal y[n] obtained from BPFing of the input');

如下所示:
在此处输入图像描述

因此,可以清楚地观察到输出开始处的峰值。

查看带通滤波器的脉冲响应很直观: 在此处输入图像描述

查看 BPF 脉冲响应(尤其是第二个子图)揭示了瞬态与脉冲响应一致的事实;它们的持续时间相同,形状非常相似。

事实上,看看瞬态的持续时间(大约 0.25 秒),它与脉冲响应的样本数相匹配: 滤波器的 BPF 脉冲响应相吻合N×Ts=0.25sN=0.25×250=62.5 samples65th66

所以我们有线索,开始时的峰值确实是输出处的脉冲响应(它的转换版本)。

其原因可以通过查看卷积和来理解: 应针对

y[n]=k=0L1x[k]h[nk]
n0

现在总和可以看出,的信号值暗示为零。让我们在下面的翻转和拖动图形评估中展示这种效果:k<0在此处输入图像描述

现在首先观察它的初始部分,信号x[n]具有几乎恒定的值。那么也可以看出,直到n=65信号和脉冲响应之间的重叠是部分的,因此脉冲响应的正负样本不会有足够的消除来产生(大约)零输出。但当n65脉冲响应和信号之间存在完全重叠(几乎是恒定的),因此在求和中,脉冲响应的正样本和负样本将相互抵消,产生一个小的(零直流)输出,代表预期输出后n>65.