Matlab IIR滤波器

时间:2013-03-28 08:46:36

标签: matlab filter signal-processing

我们的任务是实现滤波器(数字高通IIR滤波器)以降低500 Hz以下的频率并允许更高的频率。 使用sptool和椭圆函数我们构造了以下

% Sampling Rate (Hz)
Fs = 46875; 

% High-pass filter
N = 4; % Filter Order
Wn = 500/(46875/2);  % Cutoff Frequency in terms of Passband / Nyquist frequency ratio
Rp = 0.5; % Passband ripple specification
Rs = 20; % Stopband attenuation

[Num,Den] = ellip(N,Rp,Rs,Wn,'high');

secondOrderSection = tf2sos(Num,Den)./2

然后我们使用L1规范计算了比例因子:   我们需要在16位atmel微控制器(AC3U3 Xplained)上实现这一点,因此必须以Q_0.15形式计算比例因子

% FIRST SECTION
firstScaleFactor = 1/(sum(abs(impz(1,secondOrderSection(1,4:6)))))
sf1_2_Q = round(firstScaleFactor*(2^15))

% SECOND SECTION
secondScaleFactor = 1/(sum(abs(impz(1,secondOrderSection(2,4:6)))))
sf2_2_Q = round(secondScaleFactor*(2^15))

问题:我们的比例因子似乎有点低,第一比例因子是77,第二比例是14。 我们的计算中有错误吗?

1 个答案:

答案 0 :(得分:1)

德州仪器(TI)的

This application note概述了定点滤波器实现中溢出避免的技术。