滤波器介绍及系数设计

在数字信号处理领域中,数字滤波器占有非常重要的地位。根据其计算方式可以分为fir(有限脉冲响应)滤波器,和iir(无限脉冲响应)滤波器两种。
fir滤波器根据如下公式进行计算:
y[m] = b[0]x[m] + b[1]x[m-1] + …. + b[p]x[m-p]
iir滤波器:
y[m] = b[0]x[m] + b[1]x[m-1] + …. + b[p]x[m-p]
-a[1]y[m-1] – a2y[m-2]- … - a[q]y[m-q]
fir滤波器:时刻m的输出y[m]由时刻m的输入x[m]以及之前的输入x[m-1] ... x[m-p]和滤波器的系数b[0] ... b[p]求乘积和.
iir滤波器再减去之前的输出y[m-1] ... y[m-q]和系数a[1] ... a[m-q]的乘积和.
fir滤波器是iir滤波器的一种特殊情况.
滤波器的作用:改变信号频谱,实现频域滤波。
低通滤波器参数特征:
比如,设计一个归一化为0.2通带的低通滤波器,其频谱响应为:
生成一个随机信号将其作为输入经过上述滤波器,结果如下,蓝线是随机信号的频谱,橙线为经过滤波器后的频谱。
再比如一个双音信号,经过该滤波器,输入信号频谱:
经过滤波器滤波后的频谱:
数字滤波器的设计,最常用的是matlab的 filterdesigner工具根据需求直接配置参数,即可生成滤波器系数,同时给出滤波器的频谱响应,使用特别方便:
使用python的话可以用scipy库的signal.remez函数:
import scipy.signal as signalsignal.remez(numtaps, bands, desired,weight=none, hz=1, type='bandpass', maxiter=25, grid_density=16)其中:
numtaps : 所设计的fir滤波器的长度
bands :一个递增序列,它包括频率响应中的所有频带的边界,其值在0到hz/2之间,如果参数hz为缺省值1的话,那么可以把它当作是以取样频率正规化的频率
desired : 长度为bands的一半的增益序列,它给出频率响应在bands中的每个频带的增益值
weight : 长度和desired一样的权重序列,它给出desired中的每个增益所占的权重,即给出desired中的每个增益的重要性,值越大表示其越重要
type : 'bandpass'或者'differentiator'
比如设计一个归一化为0.1的低通滤波器,截止频率0.11,系数长度701的滤波器:
len_h=701bands = np.array([0., 0.1, .11, .5])h = signal.remez(len_h, bands, [1,0], [100,1])滤波器的频谱响应为:

小米澄清与某芯片公司关系:仅进行正常财务投资
新一代 Google Glass登场 解放你的双手
铝燃料电池与其他电池相比有何优势
TEM分析—如何理解孪晶衍射花样呢?
黄仁勋谈Tegra处理器 但并未多谈四核心…
滤波器介绍及系数设计
新的公式,改变了传统的设立测距雷达站体制
日月光10月营收562亿元新台币,PC封测业务回温
LED车厢照明系统的组成及故障分析
长虹声纹识别人工智能电视有望引领彩电销售热潮
浅谈SK电讯人工智能半导体业务的发展愿景
北斗22nm芯片用途
射频频率计数器53210A介绍
十字路口上的“激光雷达”!(附会议议程)
硬件定义软件?软件定义硬件?
世炬网络荣获“2023 年度广东省知识产权示范企业”
人工智能路径寻求突破 富士康积极布局AI手机
ESD二极管厂家、选型、封装和应用,超详细
随着民用安防市场向智能家居融合,安防企业将进一步拓展视频服务
你知道怎么样给磁致伸缩液位计选型吗