在滤波器设计中,我们通常可以很方便地将一个高通滤波器转换为低通滤波器,或将一个低通滤波器转化为低通滤波器。
如果用H(s)代表原滤波器的转移函数,G(s)代表转换后的滤波器的转移函数,通常这种转换是通过用1s代替s来实现的,即
H(s)=G(1s)
例如,考虑简单的一阶低通滤波器
H(s)=1s+12
现用1s代替s,可得
G(s)=H(1s)=2ss+2
我们在同一坐标系下画出|H(jω)|(绿色)和|G(jω)|(蓝色),可见该变换实现了从低通滤波器到高通滤波器的转变。

下面分别求出H(s)和G(s)的微分方程:
根据
H(s)=1s+12=Y(s)X(s)
交叉相乘并进行拉普拉斯反变换,得
2dy(t)dt+y(t)=2x(t)
同样地,根据
G(s)=2ss+2=Y(s)X(s)
可得
dy(t)dt+2y(t)=2dx(t)dt
观察发现,G(s)的微分方程与H(s)相比,y(t)和x(t)的"零阶导数"和"一阶导数"的系数恰好颠倒了过来。
事实上,这个规律在更高阶高通/低通滤波器的转换中仍然成立。
下面考虑一般情况,假设H(s)是与下面一般形式的线性常系数微分方程相联系的转移函数。
N∑k=0akdky(t)dtk=N∑k=0bkdkx(t)dtk
对等式两边进行拉普拉斯变换,得到H(s)的表达式
H(s)=Y(s)X(s)=N∑k=0bkskN∑k=0aksk
用1s代替s,得到
G(s)=H(1s)=N∑k=0bks−kN∑k=0aks−k=N∑k=0bksN−kN∑k=0aksN−k=Y(s)X(s)
交叉相乘后进行拉普拉斯反变换,可以得到G(s)所对应的微分方程
N∑k=0akdN−ky(t)dtk=N∑k=0bkdN−kx(t)dtk
与H(s)的微分方程对比,可见两边k阶导数的系数与N−k阶导数的系数相互调换,即,将0,1,2,⋯,N阶导数的系数序列由
a0,a1,a2⋯,aN;b0,b1,b2⋯,bN
反转为
aN,aN−1,aN−2⋯,a0;bN,bN−1,bN−2⋯,b0;
即可实现高通滤波器和低通滤波器之间的转换。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律