数字滤波器设计

Wolfram 语言提供一套全面的方法设计数字滤波器.
数字滤波器设计方法
LeastSquaresFilterKernel
使用最小二乘方法创建一个 FIR 滤波器
FrequencySamplingFilterKernel
使用频率采样创建一个 FIR 滤波器
EquirippleFilterKernel
使用等波纹法创建一个 FIR 滤波器
ToDiscreteTimeModel
根据模拟原型创建一个 IIR 数字滤波器
数字滤波器设计方法.

最小二乘方法

该方法通过离散傅立叶逆变换,从频域的一个给定原型滤波器规范中获取有限脉冲响应(FIR).
定义一个零相理想低通滤波器,截止频率为1.2弧度/样本.
H( j ω){
1,|ω| ωc
0,otherwise
通过对滤波器规范的离散傅立叶的逆变换,获取脉冲响应:
的整数值为 ,计算该表达式将返回长度为 的滤波器.
创建一个长度为15的低通 FIR 滤波器,截止频率为1.2弧度/样本:
该方法可以最小化理想规范与所得的 FIR 滤波器间的均方误差:
最小二乘方法也称之为基于窗的方法. 通过对 FIR 应用由 LeastSquaresFilterKernel 产生的平滑窗函数,可以减小均方误差.
创建一个长度为15的汉宁(Hann)窗:
对低通 FIR 滤波器 h 应用窗函数:
不同的窗函数返回不同的衰减. 根据想要的衰减度选择窗类型.
比较四个选择的窗函数的衰减层度:

频率采样方法

频率采样允许在区间 0 ω π,有限的等间隔的频率位置上通过指定滤波器的幅度频谱,创建一个 FIR 滤波器.
上采样一个理想低通滤波器, 从0到5:
创建一个奇长度,偶对称的低通滤波器:
显示理想的低通滤波器,幅度样本和实际所得的滤波器:

等波纹法

ParksMcClellanRabine (1979) 算法是设计线性相位 FIR 滤波器最流行的方法之一. 它最小化理想频响和每个带具有等波纹的实际滤波器间的最大偏差.
创建一个长度为55的多带滤波器:
绘制等波纹多带滤波器的幅度响应:

根据模拟原型创建一个数字滤波器

创建数字滤波器常用的一个方法是使用双线性变换将模拟原型变换为等同的数字滤波器. 由此所得的是用 TransferFunctionModel 表示的一个无限脉冲响应(IIR)滤波器,
ToDiscreteTimeModel
模拟滤波器的离散时间近似
根据模拟原型创建一个 IIR 滤波器.
创建一个切比雪夫类型的模拟低通滤波器,截止频率为 弧度/秒:
使用双线性变换保额模拟滤波器变换为一个数字滤波器:
显示由此得出的 IIR 滤波器的频率响应:
数字滤波器的极点和零点
TransferFunctionPoles
提取模拟滤波器的极点
TransferFunctionZeros
提取模拟滤波器的零点
模拟滤波器的极点和零点.
计算和显示低通滤波器的零点:
输出响应信号的数字滤波器

FIR 滤波器

ListConvolve
卷积 FIR 滤波器和数据
ImageConvolve
卷积 FIR 滤波器和图像
DiscreteConvolve
两个信号的符号卷积
对信号应用 FIR 滤波器.
创建一个低通等波纹滤波器:
导入和滤波音频信号:
图像的红色通道扫描线的低通滤波器:
一副图像的低通滤波器:

IIR 滤波器

RecurrenceFilter
将 IIR 滤波器应用于信号
RecurrenceTable
迭代求解递推方程
OutputResponse
滤波器的输出响应
对信号应用 IIR 滤波器.
定义数字巴特沃斯滤波器的传递函数:
计算 IIR 滤波器的脉冲响应:
通过使用传递函数模型的系数计算脉冲响应:
使用 OutputResponse 计算脉冲响应:
通过使用 RecurrenceTable 求解滤波器对应的递推方程模型,计算脉冲响应:
图像红色通道的扫描线的低通滤波器:
图像的低通滤波器: