补偿FIR过滤器引入的延迟
过滤信号引入延迟。这意味着相对于输入的时间随时间移动。此示例向您展示了如何抵消此效果。
有限脉冲响应过滤器通常将所有频率组件延迟相同的量。这使得通过及时移动信号来纠正延迟变得容易。
以500 Hz采样1 s的心电图读数。添加随机噪声。重置随机数生成器以进行可重复性。
FS = 500;n = 500;RNG默认xn = ecg(n)+0.25*randn([1 n]);tn =(0:n-1)/fs;
用过滤器删除一些噪声,该噪声停止了75 Hz以上的频率。利用Designfilt
设计订单70的过滤器。
nfilt = 70;FST = 75;d = distionfilt(“ Lowpassfir”,,,,“ FilterOrder”,nfilt,...“ cutofffrequency',fst,'采样率',fs);
过滤信号并绘制它。结果比原始的更光滑,但落后于此。
xf = filter(d,xn);情节(TN,XN)保持上,情节(TN,XF,'-r',,,,'行宽',1.5),保持离开标题“心电图”XLABEL“时间)”, 传奇(“原始信号”,,,,“过滤信号”)
利用grpdelay
要检查过滤器引起的延迟等于过滤器顺序的一半。
grpdelay(d,n,fs)
延迟=平均值(grpdelay(d))
延迟= 35
移动过滤信号以排列数据。删除其第一个延迟
样品。删除最后一个延迟
原始和时向量的样本。
tt = tn(1:end-delay);sn = xn(1:end-delay);sf = xf;sf(1:delay)= [];
绘制信号并验证它们是否对齐。
情节(tt,sn)保持上,情节(tt,sf,'-r',,,,'行宽',1.5),保持离开标题“心电图”Xlabel(“时间)”), 传奇(“原始信号”,,,,“过滤后移动信号”)