当前位置:   article > 正文

matlab 滤波器设计 coe_一种半带滤波器的低功耗实现方法

multiple constant multiplication matlab

在如今数字技术中,半带滤波器因其通带阻带对称,系数具有偶对称性且滤波器阶数为奇数,有效系数少等特点广泛应用于通信、视频处理、语音识别等数字信号处理应用中,尤其常用于实现信号的2倍抽取。对于一个阶数为N(N为偶数),长度为N+1的半带滤波器,传统的多相分解技术下实现2倍抽取功能的转置实现结构如图1所示。

6a3a7140-a914-eb11-8da9-e4434bdf6706.png

首先,利用多相分解[1],滤波运算分为奇偶两个分支进行,输入数据经过2倍抽取后得到偶分支上的滤波输入;输入数据经过一个延迟单位进行2倍抽取后得到奇分支上的输入数据。偶分支上共有偶数个系数且系数对称。对于偶分支上数据乘以各系数的操作可以称为多常数乘法(Multiple Constant Multiplications,MCM),众所周知乘法器的硬件实现会消耗大量的资源,故可采用以移位相加代替偶分支滤波运算过程中的所有乘法操作以节省硬件资源。

一般的移位相加实现方法是对系数进行正则有符号数(Canonic Signed Digit,CSD)编码[2],以减少硬件资源开销,根据文献[1],基于CSD编码的方式比二进制编码方式平均减少33%的硬件开销。同时偶分支的滤波结构还可以采用混合形式,降低累加部分中加法器的开销[3]

不同于传统使用CSD编码的办法,本文采用的是利用以2r为基础数的算法(RADIX-2r)实现MCM操作。传统CSD编码的方法是对每个系数进行编码,每个系数的乘法是独立的,无法共享硬件资源。而RADIX-2r算法中,利用系数之间共享基本表达式以达到共享硬件资源的目的,必然比传统办法节省硬件资源。

1 所设计半带滤波器的参数

本文中所设计的两个半带滤波器分别为归一化频率下过渡带带宽为6/11、阻带衰减大于90 dB和过渡带带宽为1/11、阻带衰减大于90 dB。设计可通过MATLAB软件完成[4],具体实现代码如下所示:

h1=halfband(‘Type’,’Lowpass’,6/11,90);

Hb1=design(h1,’equiripple’);

h2=halfband(‘Type’,’Lowpass’,1/11,90);

Hb2=design(h2,’equiripple’);

由MATLAB软件仿真可得,宽过渡带半带滤波器阶数为18,窄过渡带半带滤波器阶数为118,要达到90 dB阻带衰减的技术指标,宽过渡带半带滤波器系数量化位数为17位,

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/603223
推荐阅读
相关标签
  

闽ICP备14008679号