主要内容

补偿FIR滤波器带来的延迟

对信号进行滤波会产生延迟。这意味着输出信号相对于输入在时间上移位。这个例子向您展示了如何抵消这种影响。

有限脉冲响应滤波器通常将所有频率分量延迟相同的量。这使得通过及时转移信号来纠正延迟变得很容易。

取500hz采样心电图读数1秒。添加随机噪声。重置随机数发生器的再现性。

Fs = 500;N = 500;rng默认的xn = ecg(N)+0.25*randn([1 N]);tn = (0:N-1)/Fs;

用一个过滤器去除一些噪音,阻止频率超过75赫兹。使用designfilt设计一个70阶滤波器。

Nfilt = 70;Fst = 75;D = designfilt(“lowpassfir”“FilterOrder”nfilt,...“CutoffFrequency”置,“SampleRate”Fs);

对信号进行滤波并绘制图像。结果比原来的平滑,但落后于它。

Xf = filter(d,xn);情节(tn, xn)情节(tn xf,“- r”“线宽”, 1.5)标题“心电图”包含“时间(s)”传奇(原始信号的“过滤信号”

图中包含一个轴对象。标题为Electrocardiogram的axis对象包含2个类型为line的对象。这些对象分别代表原始信号、滤波信号。

使用grpdelay检查由滤波器引起的延迟是否等于滤波器顺序的一半。

grpdelay (d, N, Fs)

图组延迟包含一个轴对象。标题为Group delay的axes对象包含一个line类型的对象。

延迟= mean(grpdelay(d))
延迟= 35

移动过滤信号以对齐数据。移除它的第一个延迟样本。删除最后一个延迟原向量和时间向量的样本。

Tt = tn(1:end-delay);Sn = xn(1:end-delay);Sf = xf;Sf(1:延迟)= [];

绘制信号并验证它们是否对齐。

情节(tt, sn)情节(tt,科幻,“- r”“线宽”, 1.5)标题“心电图”包含(“时间(s)”),传说(原始信号的“滤波移位信号”

图中包含一个轴对象。标题为Electrocardiogram的axis对象包含2个类型为line的对象。这些对象表示原始信号,滤波移位信号。

另请参阅

|||

相关的话题