减少数字滤波器CSD系数中非零位的方法技术

技术编号:25761559 阅读:40 留言:0更新日期:2020-09-25 21:09
本发明专利技术介绍一种减少数字滤波器CSD系数中非零位的方法,具体步骤包括:步骤s1,定点化滤波器系数并进行常规CSD编码;步骤s2,计算主系数的目标量化值区间;步骤s3,选取目标量化值重新计算CSD编码;步骤s4,重复s3直到搜索完整个目标量化值区间;步骤s5,检验选定目标量化值对应的CSD编码。使用本发明专利技术提供的方法,使滤波器CSD系数非零位(即总运算量)减少10%左右,同时降低单系数最大运算量,可以明显减少硬件资源消耗,同时也降低了数字滤波器对硬件处理能力的要求。

【技术实现步骤摘要】
减少数字滤波器CSD系数中非零位的方法
本专利技术涉及数字系统设计领域,具体涉及一种减少数字滤波器CSD系数中非零位的方法。
技术介绍
在数字系统设计中,常常会用到数字滤波器,它的功能是对输入离散信号的数字数据进行运算处理,以达到改变信号频谱的目的。数字滤波器是由数字乘法器、加法器和延时单元组成的一种算法或装置。在二进制乘法中,系数的每一位非零位会产生一个部分积,再将所有的部分积用加法器进行累加,从而得到最终的结果。然而乘法器会占用更多的硬件资源,功耗也比较大,乘法器的使用数量很大程度上影响着整个数字系统的参数性能。本专利技术发现滤波器的幅频响应在设计之初就设定好,滤波器系数固定不变,所以对滤波器系数采用编码器进行编码,从而减少系数中非零位的数量来减小部分积的产生,进而减少加法器的数量,达到减小功耗和面积、提升乘法器的速度的目的。CSD(CanonicalSignedDigit)编码器作为一种冗余带符号数算法,是应用于系数乘法中的重要编码方式,将乘法系数中的非零位的数量减小到最小,并且满足任何两个非零数不相邻,从而减少由非零位运算带来的部分积数量,进而减少乘法运算中所需的加法器数量,简化了整个乘法运算。CSD编码常常被用于乘法运算中,CSD编码大大减少了乘法器的面积。如在FIR滤波器中,运用CSD编码体现了巨大的作用,大大减少乘法器的个数。用CSD编码可以有效减少乘积项的数量,从而降低了乘法器单元实现的硬件复杂度。数字滤波器系数的个数就是滤波器的阶数,它决定了滤波器幅频响应特性。往往是根据实际应用的需求,先设计滤波器的系数,然后使用CSD编码器对所有的滤波器系数进行CSD编码,这是一个精确的确定性的编码转换,它不改变原系数的数值,因此编码后的CSD系数与原系数有着相同的幅频响应特性。衡量CSD系数运算量包含两个方面:1.单个系数的运算量(即CSD编码后的非零位个数)。2.整个滤波器的总运算量(即所有系数的运算量总和)。滤波器的所有系数中,有个别系数经过CSD编码后的单个系数运算量较大,它们所需要的CSD编码比特位数和硬件处理能力比其它大部分系数都要多,但是这些系数使用频率低,占整个系数的很小一部分,这样就会抬高整个滤波器CSD编码的所需要的比特位数和对硬件处理能力的要求。
技术实现思路
鉴于以上问题,本专利技术将介绍一种减少数字滤波器CSD系数中非零位的方法,该方法对滤波器系数做适当的优化,在不影响幅频响应特性的前提下,减小单个系数运算量的最大值,同时也进一步降低整个滤波器的总运算量,这样可以使用更少的比特位数来进行CSD编码,也降低了对硬件处理能力的要求。优化后的CSD系数,运算量将减少10%左右。本专利技术的一种减少数字滤波器CSD系数中非零位的方法,包括以下方法;步骤s1:定点化滤波器系数并进行CSD编码;步骤s2:计算主系数的目标量化值区间;步骤s3:选取目标量化值重新计算CSD编码;步骤s4:重复s3直到搜索完整个目标量化值区间;步骤s5:检验选定目标量化值对应的CSD编码。在步骤s1中,首先,设计数字滤波器时,预先将浮点系数转换成定点系数;然后,将定点系数进行CSD编码;其次,定点系数分解为2的幂和,即二进制定点系数,二进制定点系数只有0,1两种情况,是无符号数字,每个系数通过移位和无符号相加得到;再次,基于CSD编码使用有符号数字减少非零位,CSD编码有0,1和-1三种情况,是有符号数,每个系数通过移位和有符号相加得到,CSD编码后相邻的比特位只有一个是非零位,编码规则:从低位到高位,遇到连续的两个1,第一个1变0,第二个1变-1,同时向高位进位,以此类推;首先,对应N阶滤波器,具有N个浮点滤波器系数,用Sbit对滤波器的浮点系数进行定点化,S≥4且正整数,Sbit包括1个符号位与9个小数位,N阶FIR低通滤波器定点化后的系数取值范围-(k+1)~k,k为自然数;然后,用(S-1)bit对定点系数进行CSD编码,编码后相邻2位只有一个非零位,对于(S-1)bit而言,即在满幅度p/q刻度位置,所以在定点化时,将滤波器系数的最大值归一化到满幅度p/q的位置。定点化公式如下:其中x是浮点系数,y是定点化系数,abs是取绝对值操作,max是取最大值操作,round是四舍五入操作。CSD编码的公式:z(i)=csd(y(i))*gaini=1,2...N其中,csd函数执行CSD编码操作,gain是额外补偿增益,使得滤波器系数在直流点处的增益为0db;CSD编码完成后,计算单个系数运算量和总运算量,单个系数运算量是每个系数CSD编码的非零位的个数,总运算量是所有系数的运算量总和。在步骤s2中,首先,通过步骤s1中的CSD编码将滤波器系数的最大值,即主系数,归一化到满幅度p/q的位置,并选出系数经过CSD编码后的单个系数α运算量超过设定预制阈值的;然后,改变主系数归一化到满幅度下的目标量化值位置,设置目标量化区间,计算区间中每个目标位置对应的CSD编码,选出总运算量最小、单系数最大运算量最小的量化值位置,作为最终的归一化值;其中,目标量化区间的设定方法,将目标量化值输入式2nbits-1的目标量化值区间,其中nbits为CSD编码的比特位宽;其次,设置终点stop:由于CSD编码最大值不能超过满幅度p/q的位置,所以区间的终点就设置在满幅度p/q的位置,即stop=round(2nbits*p/q)。再次,设置起点start:利用CSD编码的bit位宽,使得搜索区间不能小于2nbits-1,整个搜索区间的范围等于round(2nbits*p/q)-2nbits-1;其中,当nbits小于设定下限阈值时,通过2nbits-1来控制搜索长度;当nbits大于设定上限阈值时,由stop-max_attemp来控制搜索长度;所以起点值start取2nbits-1和stop-max_attemp的最大值;后来,确定搜索长度:range=stop-start,并对区间中每个目标量化值位置重新计算一次CSD编码,计算次数为range。在步骤s3中:首先,从步骤2中的目标量化区间中选出目标量化值maintap∈[start,stop],首选从起点开始,即maintap=start;然后,进行定点化操作,将滤波器系数的最大值归一化到maintap的位置,其中,定点化公式:其中x是浮点系数,y是定点化系数,abs是取绝对值操作,max是取最大值操作,round是四舍五入操作;其次,基于定点化公式得到CSD编码的公式:z(i)=csd(y(i))*gaini=1,2...N;其中csd函数执行CSD编码操作,gain是额外补偿增益,使得滤波器系数在直流点处的增益为0db;再次,在CSD编码完成后,记录单个系数运算量和总运算量,其中,单个系数运算量是本文档来自技高网
...

【技术保护点】
1.一种减少数字滤波器CSD系数中非零位的方法,其特征在于:包括以下方法;步骤s1:定点化滤波器系数并进行CSD编码;/n步骤s2:计算主系数的目标量化值区间;/n步骤s3:选取目标量化值重新计算CSD编码;/n步骤s4:重复s3直到搜索完整个目标量化值区间;/n步骤s5:检验选定目标量化值对应的CSD编码。/n

【技术特征摘要】
1.一种减少数字滤波器CSD系数中非零位的方法,其特征在于:包括以下方法;步骤s1:定点化滤波器系数并进行CSD编码;
步骤s2:计算主系数的目标量化值区间;
步骤s3:选取目标量化值重新计算CSD编码;
步骤s4:重复s3直到搜索完整个目标量化值区间;
步骤s5:检验选定目标量化值对应的CSD编码。


2.根据权利要求1所述的减少数字滤波器CSD系数中非零位的方法,其特征在于:
在步骤s1中,
首先,设计数字滤波器时,预先将浮点系数转换成定点系数;然后,将定点系数进行CSD编码;其次,定点系数分解为2的幂和,即二进制定点系数,二进制定点系数只有0,1两种情况,是无符号数字,每个系数通过移位和无符号相加得到;再次,基于CSD编码使用有符号数字减少非零位,CSD编码有0,1和-1三种情况,是有符号数,每个系数通过移位和有符号相加得到,CSD编码后相邻的比特位只有一个是非零位,编码规则:从低位到高位,遇到连续的两个1,第一个1变0,第二个1变-1,同时向高位进位,以此类推;
首先,对应N阶滤波器,具有N个浮点滤波器系数,用Sbit对滤波器的浮点系数进行定点化,S≥4且正整数,Sbit包括1个符号位与9个小数位,N阶FIR低通滤波器定点化后的系数取值范围-(k+1)~k,k为自然数;然后,用(S-1)bit对定点系数进行CSD编码,编码后相邻2位只有一个非零位,对于(S-1)bit而言,即在满幅度p/q刻度位置,所以在定点化时,将滤波器系数的最大值归一化到满幅度p/q的位置。
定点化公式如下:



其中x是浮点系数,y是定点化系数,abs是取绝对值操作,max是取最大值操作,round是四舍五入操作。
CSD编码的公式:
z(i)=csd(y(i))*gaini=1,2...N



其中,csd函数执行CSD编码操作,gain是额外补偿增益,使得滤波器系数在直流点处的增益为0db;CSD编码完成后,计算单个系数运算量和总运算量,单个系数运算量是每个系数CSD编码的非零位的个数,总运算量是所有系数的运算量总和。


3.根据权利要求2所述的减少数字滤波器CSD系数中非零位的方法,其特征在于:在步骤s2中,首先,通过步骤s1中的CSD编码将滤波器系数的最大值,即主系数,归一化到满幅度p/q的位置,并选出系数经过CSD编码后的单个系数α运算量超过设定预制阈值的;
然后,改变主系数归一化到满幅度下的目标量化值位置,设置目标量化区间,计算区间中每个目标位置对应的CSD编码,选出总运算量最小、单系数最大运算量最小的量化值位置,作为最终的归一化值;
其中,目标量化区间...

【专利技术属性】
技术研发人员:汪祝东梁钟伟
申请(专利权)人:深圳市觅拓物联信息技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1