数字滤波器入门:音频应用中的核心技术解析

本文深入探讨数字滤波器的基本原理、设计与实现,涵盖低通滤波器、频率响应分析、Z变换、极点零点分析及Matlab和C++实现,特别聚焦音频处理应用,包括线性相位滤波器和全通滤波器设计。

数字滤波器入门与音频应用

前言

大纲

本书系列概述 致谢 勘误

最简单的低通滤波器

引言

什么是滤波器? 为何学习滤波器?

最简单的低通滤波器定义

寻找频率响应

正弦波分析 数学正弦波分析 幅度响应 相位响应

更简便的方法

复正弦波 复幅度 相量表示法 复正弦波作为圆周运动 重新推导频率响应

总结

基础滤波器理论问题

Matlab滤波器分析

Matlab滤波器实现 Matlab正弦波分析 复正弦波分析 实用频率响应分析 基础Matlab问题

数字梳状滤波器分析

差分方程 信号流图 Matlab软件实现

Matlab中的采样级实现

C++软件实现 Faust软件实现 脉冲响应 传递函数 频率响应 幅度响应 相位响应 极点零点分析 替代实现方式

一阶

并行部分 并行实二阶部分 并行二阶信号流图 串联实二阶部分

总结

线性时不变滤波器

信号定义 滤波器定义 数字滤波器示例 线性滤波器

缩放: 叠加: 复信号的实线性滤波

时不变滤波器 展示线性与时不变性 动态范围压缩

为何动态范围压缩是非线性的

音乐时变滤波器示例 非线性滤波器分析 结论 线性与时不变性问题

时域表示

差分方程 信号流图 因果递归滤波器 滤波器阶数 直接形式I实现 脉冲响应表示 滤波器稳定性 脉冲响应示例 线性时不变性的含义 卷积表示

卷积表示总结

FIR数字滤波器

FIR脉冲响应 FIR滤波器的卷积表示 FIR中的“有限” 因果FIR滤波器 FIR传递函数 FIR阶数 FIR软件实现

瞬态与稳态响应

FIR示例 IIR示例 瞬态与稳态信号 衰减响应, 初始条件响应 完整响应

总结与结论

时域表示问题

传递函数分析

Z变换 Z变换的存在性 移位与卷积定理

移位定理 卷积定理

卷积的Z变换 差分方程的Z变换 因式形式 串联与并联传递函数

串联情况 并联情况

串联组合可交换

部分分式展开

示例 复示例 PFE至实二阶部分 Z反变换 PFE的FIR部分

示例:通用双二阶PFE

替代PFE方法 重极点

解析处理重极点 示例 重极点的脉冲响应 重极点的问题?

替代稳定性准则 部分分式展开总结 部分分式展开软件

示例2 Matlab中的多项式乘法 Matlab中的多项式除法

问题

频率响应分析

频率响应 幅度响应 相位响应 频率响应的极坐标形式

分离传递函数分子与分母

频率响应作为DTFT之比

Matlab中的频率响应 使用freqz的LPF频率响应示例

相位与群延迟

相位延迟 相位展开 群延迟

群延迟作为调制延迟的推导

Matlab中的群延迟示例 声码器分析 群延迟的数值计算

频率响应分析问题

极点零点分析

滤波器阶数 = 传递函数阶数 图形幅度响应 图形相位响应 再论稳定性

计算反射系数 步降过程 Matlab中的滤波器稳定性测试

单极点带宽 单极点时间常数 不稳定极点——单位圆视角

几何级数 单极点传递函数

倒谱的极点与零点 转换为最小相位 希尔伯特变换关系 极点零点分析问题

实现结构

四种直接形式

直接形式I

二进制补码回绕

直接形式II

更多关于DF-II的内部溢出问题

转置直接形式 TDF-II的数值鲁棒性

串联与并联滤波器部分

串联二阶部分

Matlab示例

并联一阶和/或二阶部分

一阶复谐振器 实二阶部分 重极点的实现

共振峰滤波示例 巴特沃斯低通滤波器示例 串联/并联滤波器部分总结

极点零点分析问题

相位保持滤波器

线性相位滤波器 零相位滤波器

-相位滤波器 阻带中的相位 零相位滤波器设计示例 基础零相位滤波器示例

奇脉冲响应 对称线性相位滤波器

简单线性相位滤波器示例 线性相位滤波器设计软件

反对称线性相位滤波器 前向-后向滤波 通带边缘的相位失真

最小相位滤波器

最小相位滤波器定义 最小相位多项式 最大相位滤波器

示例

最小相位意味着最快衰减 最小相位/全通分解 线性相位音频滤波器 创建最小相位

结论

背景基础

信号表示与符号

单位 正弦波 频谱

复数与三角恒等式

复数 指数函数 三角恒等式

三角恒等式,续

半角正切恒等式

正弦波作为LTI系统的本征函数

使用三角学的证明 使用复变量的证明 相量分析

基础音频数字滤波器

基础滤波器部分

单零点 单极点 双极点

谐振器带宽与极点半径的关系

双零点 复谐振器

双极点 部分分式展开

双二阶部分

双二阶软件实现

全通滤波器部分

双二阶全通部分 全通滤波器设计

直流阻塞器

直流阻塞器频率响应 直流阻塞器软件实现

低架与高架滤波器

练习

峰值均衡器

时变双极点滤波器

谐振处归一化双极点滤波器增益 恒定谐振增益 峰值增益与谐振增益 恒定峰值增益谐振器 四极点可调低通/带通滤波器

基础滤波器问题

全通滤波器

全通示例 仿酉滤波器 MIMO全通滤波器

仿酉MIMO滤波器

MIMO仿共轭 MIMO仿酉条件 仿酉系统性质 仿酉滤波器组性质

仿酉滤波器示例

全通问题

拉普拉斯变换分析

拉普拉斯变换的存在性 解析延拓 与z变换的关系 拉普拉斯变换定理

线性性 微分

线性系统的拉普拉斯分析

移动质量 质量-弹簧振荡器分析

模拟滤波器

模拟滤波器示例 电容器

电容器的机械等效是弹簧

电感器

电感器的机械等效是质量

RC滤波器分析

驱动点阻抗 传递函数 脉冲响应 连续时间脉冲 极点与零点

RLC滤波器分析

驱动点阻抗 传递函数 极点与零点 脉冲响应

关联极点半径与带宽

品质因数(Q)

复谐振器的Q 实二阶谐振器的Q

临界阻尼及相关术语

阻尼比 衰减时间为Q周期 Q作为存储能量与耗散能量之比

模拟全通滤波器

无损模拟滤波器

矩阵滤波器表示

引言 通用因果线性滤波器矩阵 通用LTI滤波器矩阵 循环卷积矩阵 逆滤波器 状态空间实现

状态空间滤波器实现示例

时域滤波器估计

测量噪声的影响 Matlab系统辨识示例

状态空间滤波器

马尔可夫参数 初始条件响应 完整响应 状态空间滤波器的传递函数

状态空间滤波器传递函数示例

状态空间滤波器的转置 状态空间滤波器的极点 差分方程到状态空间

手动转换为状态空间形式 信号流图到状态空间滤波器 可控性与可观测性 控制器规范型的快捷方式 Matlab直接形式到状态空间转换 Matlab中的状态空间仿真 其他相关Matlab函数 Matlab状态空间滤波器转换示例

相似变换 模态表示

对角化状态空间模型 实践中寻找A的特征值 状态空间对角化示例 模态表示的性质

重极点

乔丹规范型

数字波导振荡器示例

寻找A的特征结构 输出信号与初始条件的选择

参考文献

状态空间问题

线性时变滤波器

引言 推导 总结

递归数字滤波器设计

低通滤波器设计 巴特沃斯低通设计

巴特沃斯低通极点与零点 示例:二阶巴特沃斯低通

双线性A/D变换

双线性变换 频率翘曲 模拟原型滤波器 示例

方程误差滤波器设计

方程误差公式 误差加权与频率翘曲 方程误差设计的稳定性 基于FFT的方程误差方法 普朗尼方法 帕德-普朗尼方法

Matlab实用工具

时间图:myplot.m 频率图:freqplot.m 保存图到磁盘:saveplot.m 频率响应图:plotfr.m 部分分式展开:residuez.m

方法 重极点示例

部分分式展开:residued.m

方法

并联SOS到传递函数:psos2tf 群延迟计算:grpdelay.m Matlab列表:fold.m Matlab列表:clipdb.m Matlab列表:mps.m及测试程序

Matlab列表:mps.m Matlab列表:tmps.m Matlab日记:tmps.d

信号图:swanalplot.m 频率响应图:swanalmainplot

Faust和PD中的数字滤波

简单Faust程序 生成Faust框图 测试Faust滤波器部分 查看生成的C++代码 生成Pure Data(PD)插件

生成PD插件 生成PD插件包装抽象 插件包装的PD测试补丁

通过Faust生成LADSPA插件 通过Faust生成VST插件

旁通窗口

为PD生成MIDI合成器 MIDI合成器测试补丁

在线资源链接

参考文献 本文索引 关于本文档…

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计