【问题标题】:Matlab IIR filterMatlab IIR 滤波器
【发布时间】:2013-03-28 08:46:36
【问题描述】:

我们的任务是实现一个滤波器(数字高通 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。 我们的计算是否有任何错误?

【问题讨论】:

    标签: matlab filter signal-processing


    【解决方案1】:

    德州仪器公司的This application note 包含在定点滤波器实现中避免溢出的技术概述。

    【讨论】:

      猜你喜欢
      • 2016-07-30
      • 2013-12-05
      • 2012-04-06
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 2014-05-11
      相关资源
      最近更新 更多