双线性变换是一种数学关系,可以用来将特定滤波器在复拉普拉斯域中的传递函数转换为z域,反之亦然。生成的滤波器将具有与原始滤波器相同的特性,但可以使用不同的技术来实现。拉普拉斯域更适合设计模拟滤波器组件,而Z变换更适合设计数字滤波器组件。
双线性变换是将模拟传递函数数值积分到数字域的结果。我们可以将双线性变换定义为
双线性变换可以用来生成一个分段常数幅度响应,它近似于等效模拟滤波器的幅度响应。然而,双线性变换不能忠实地再现模拟滤波器的相位响应。
例如,下图显示了使用 40 rad/sec 的采样频率,双线性变换等效于模拟系统的相位响应。比较图中的相位响应,意识到限制是 Ws/2=20 rad/s - 很明显地出现了发散。
- num = [1 11.21 116.242 372.601 561.589 363.528 ];
- den= [1 26.489 340.47 2461.61 10433.1 23363.9 19049. 4981.82 ];
- C=tf(num,den); % GNU Octave 命令
- D=c2d(C,2*pi/40,'bi'); % A/D 通过 Octave
注意,为了使零点和极点计数匹配,添加了两个零点。
双线性变换是一种一对一映射,也就是说,在一个域中的唯一点将被变换为另一个域中的唯一点。但是,变换不是线性变换,并且不是拉普拉斯域和 Z域 之间的完全等效性。如果设计一个数字滤波器并将其转换为模拟滤波器,生成的极点和零点不会位于s平面,而是位于具有相似属性的 w平面,但具有非线性对应关系。
在双线性变换中,s域中的正虚轴被变换为z域中的上半单位圆。同样,s域中的负虚轴被变换为z域中的下半单位圆。但是,这种映射是高度非线性的,导致了称为“频率扭曲”的现象。
频率扭曲遵循已知模式,并且扭曲频率和已知频率之间存在已知关系。我们可以使用称为预失真的技术来解决非线性问题,并生成更忠实的映射。
p 下标表示相同频率的预失真版本。注意,在极限 ,连续解是 .
双线性变换不保留模拟滤波器的相位特性,并且没有办法校正相位响应以匹配。
当使用模拟近似和双线性变换设计数字滤波器时,我们遵循以下步骤。
- 预扭曲截止频率。
- 设计必要的模拟滤波器。
- 将双线性变换应用于传递函数。
- 将所得传递函数归一化为单调且具有单位通带增益(0dB)。
或者,如果我们有**逆双线性变换**,我们可以遵循以下步骤。
- 使用逆双线性变换对数字域中的滤波器规格进行转换,以产生模拟域中的等效规格。
- 构建模拟滤波器传递函数以满足这些规格。
- 使用双线性变换将所得模拟滤波器转换为数字滤波器。
逆双线性变换可以这样指定。
其中是采样率
这也写成
这与双线性变换非常相似。