文档

intfilt

插值FIR滤波器设计

语法

B = intfilt(l,p,)
b = intfilt(l,n,'Lagrange')

描述

B = intfilt(l,p,)设计了一种线性相位FIR滤波器,该滤波器使用最近邻进行理想的带限插值2p非零样本,当用于与交错的序列时l - 1连续的0l样本。它假设原始带宽限制为alpha乘以奈奎斯特频率。返回的筛选器与插值函数b长度为2*lp - 1

Alpha与滤波器的过渡带宽成反比,它也影响阻带中不关心区域的带宽。指定alpha允许您指定输入信号占用多少奈奎斯特区间。这是有益的,特别是对于要插值的信号,因为它允许您在不影响插值的情况下增加转换带宽,并对给定的信号产生更好的阻带衰减l而且p.如果你设置为1,你的信号被假设占据了整个奈奎斯特区间。将alpha设置为小于1允许在阻带中不关心区域。例如,如果您的输入占用了一半的奈奎斯特区间,您可以将alpha设置为0.5。

b = intfilt(l,n,'Lagrange')设计了一个FIR滤波器n序列上的四阶拉格朗日多项式插值l - 1连续的0l样本。b长度(n + 1)ln偶数和长度(n + 1)l - 1n奇数。如果两个n而且l都是均匀的,滤波器设计的相位不是线性的。

这两种类型的滤波器基本上都是低通的,增益为l在通带中。

例子

全部折叠

设计一个数字插值滤波器,利用带宽限制方法对信号进行上采样。指定0.5的“带宽限制”因子并使用 2 × 2 样本在插值。

Upfac = 7;Alpha = 0.5;H1 = intfilt(upfac,2,alpha);

当原始信号的带宽限制为时,滤波器的工作效果最好α乘以奈奎斯特频率。通过生成200个高斯随机数并使用40阶FIR低通滤波器对序列进行滤波,创建一个带限噪声信号。重置随机数发生器可重现的结果。

Lowp = fir1(40,alpha);rng (“默认”) x = filter(lowp,1,randn(200,1));

的每对样本之间插入零来增加信号的采样率x

Xr = upsample(x,upfac);

使用过滤器函数产生插值信号。

Y = filter(h1,1,xr);

补偿滤波器带来的延迟。绘制原始信号和插值信号。

Delay = mean(grpdelay(h1));Y(1:延迟)= [];阀杆(1:upfac: upfac *长度(x), x)图(y) xlim([400 700])

intfilt还执行拉格朗日多项式插值。

  • 一阶多项式插值就是线性插值,它是用三角滤波器完成的。

  • 零阶插值是用一个移动平均滤波器完成的,类似于采样保持显示器的输出。

插值原始信号并叠加结果。

H2 = intfilt(upfac,1,“拉格朗日”);Y2 = filter(h2,1,xr);Y2 (1:floor(mean(grpdelay(h2)))) = [];情节(y2)

算法

带宽限制法使用firls设计了一个插值FIR滤波器。多项式方法使用拉格朗日多项式插值公式在等间隔的样本上构造适当的滤波器。

扩展功能

R2006a之前介绍