数字滤波器舍入误差分析与仿真
1. IIR数字滤波器舍入误差分析
在IIR数字滤波器中,舍入误差的分析是一个重要的问题。我们可以使用MATLAB的 QFix 函数,以 round 量化模式和 satur 溢出模式来模拟舍入误差。由于假设采用MAC(乘加)架构,我们无需对中间结果进行量化,也不必担心溢出问题,只需对最终和进行饱和量化。这些操作以顺序方式模拟,会影响执行速度。
1.1 二阶滤波器示例
考虑一个二阶滤波器模型,设$r = 0.9$,$\theta = \pi/3$,计算滤波器参数并量化为$B$位。输入信号在$[-1, +1]$区间均匀分布,在滤波前也量化为$B$位。以下是MATLAB脚本示例:
close all; clc;
% Example Parameters
B = 12;
% # of fractional bits
N = 100000;
% # of samples
xn = (2*rand(1,N)-1); % Input sequence - Uniform
r = 0.9; theta = pi/3;% Pole locations
% Computed Parameters
p1 = r*exp(j*theta);
% Poles
p2 = conj(p1);
%
a = poly([p1,p2]);
% Filter parameters
hn = filter(1,a,[1,zeros(1,1000)]); % Imp res
Xm = 1/sum(abs(hn));
%
超级会员免费看
订阅专栏 解锁全文
1201

被折叠的 条评论
为什么被折叠?



