CN107612523A - 一种基于软件查表法的fir滤波器实现方法 - Google Patents
一种基于软件查表法的fir滤波器实现方法 Download PDFInfo
- Publication number
- CN107612523A CN107612523A CN201710744748.6A CN201710744748A CN107612523A CN 107612523 A CN107612523 A CN 107612523A CN 201710744748 A CN201710744748 A CN 201710744748A CN 107612523 A CN107612523 A CN 107612523A
- Authority
- CN
- China
- Prior art keywords
- look
- filter
- value
- interpolation
- fir filter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Complex Calculations (AREA)
Abstract
一种基于软件查表法的FIR滤波器实现方法,包括:步骤一、计算查找表的大小并与设定阈值进行比较,若查找表的大小不超过设定阈值即生成查找表,否则修改滤波器参数;步骤二、生成查找表,查找表采用静态生成法,特定FIR滤波器对应一个固定的查找表;步骤三、计算机根据实时输入码元流计算索引值,读取查找表得到对应滤波器输出值。本发明以查表取代卷积运算,通过计算机生成并读取查找表完成滤波功能,用内存资源换取滤波速度,克服了通用CPU在实现FIR滤波器时,由于串行执行导致运算次数大,计算速率低的缺点。本发明利用了现有计算机大内存的优势,配合CPU的高速运算,整体提高了运算速度。
Description
技术领域
本发明属于数字信号处理领域,具体涉及一种基于软件查表法的FIR滤波器实现方法。
背景技术
在数字通信理论中,数字基带信号需要通过基带内插成型滤波后才能够进行调制输出。基带成型滤波器一般采用FIR滤波器,常用的FIR滤波器的实现方法分为硬件和软件两种。其中,硬件实现包括利用DSP或FPGA来实现,软件实现是指借助通用CPU来实现。
在硬件实现方面,DSP芯片实现的FIR滤波器具有稳定性好,精确度高以及不受环境影响的特点,并且DSP支持流水线操作,能够实现并行处理,进而能够提高FIR滤波器的运算速度。FPGA能够并行处理数据并具有可编程逻辑性,其运算速度快、实时性高、程序移植性强、可靠性强、实现成本较低,因此目前是FIR滤波器设计的主要方法。
在软件实现方面,通用CPU具有远高于FPGA的主频,能够进行高速运算,但是因为通用CPU采用串行方式执行指令,FIR滤波器的大量乘累加计算会使得整体运算速度下降。目前还没有能够在通用CPU上快速实现FIR滤波器的较好算法。
发明内容
本发明的目的在于针对上述现有FIR滤波器CPU实现技术中的问题,提供一种基于软件查表法的FIR滤波器实现方法,利用计算机的大容量内部存储器来存储FIR滤波器的查找表,并通过查表运算代替卷积运算,以计算机自身的RAM资源换取整体计算速度的提高。
为了实现上述目的,本发明采用的技术方案包括以下步骤:
步骤一、计算查找表的大小并与设定阈值进行比较,阈值指的是实际应用中所能接受的最大查找表大小,若查找表的大小不超过设定阈值即生成查找表,否则修改滤波器参数;
步骤二、生成查找表,查找表采用静态生成法,特定FIR滤波器对应一个固定的查找表;
2.1)根据设计指标得到滤波器的各抽头系数h(n)和抽头数总数Nt;
2.2)根据滤波器的阶数N,确定在每次卷积过程中有效的码元位数K;
2.3)码元序列s(n)的长度设为K位,s(n)依次按照集合S={0,1,2,…,2^k-1}取值;
2.4)码元序列s(n)根据内插倍数M在两个码元之间插入M-1个0,生成输入序列x(n);
2.5)根据离散信号的卷积公式:计算出滤波器的输出值;
2.6)将每个s(n)对应的y(n)存入查找表,回到步骤2.3),直至s(n)取完S中的所有值;
步骤三、计算机根据实时输入码元流计算索引值,读取查找表得到对应的滤波器输出值。
所述查找表的大小根据以下公式进行计算:Size=M*2p*N*L(Byte);
式中,P为输入码元分辨率,L为表格数据精度,N为滤波器阶数,M为内插倍数,Size为查找表大小,查找表大小的单位为字节;所述的输入码元分辨率P指的是每个码元的比特数,表格数据精度L指的是查找表中每个数据以L个字节进行存储。
步骤2.1)所述的设计指标包括滤波器的阶数N、内插倍数M、采样频率、通带和阻带截止频率、通带和阻带衰减值等;所述的各抽头系数值h(n)通过滤波器设计软件FilterLab、FilterCAD获得,或者通过Matlab的FDATool工具得到。
步骤2.2)确定有效的码元位数K时,分有效码元与滤波器抽头中心点对齐和不对齐两种情况进行计算:
2.2a)当有效码元与滤波器抽头中心点对齐时,输入序列的首尾两点为有效码元,则码元有效位数K'=N;
2.2b)当有效码元与滤波器抽头中心点不对齐时,滤波器的抽头中心点与内插0值对齐,则码元的有效位数K=N-1。
步骤2.3)针对有效的码元位数K分别计算两种情况下的s(n)取值:
2.3a)当有效码元与滤波器抽头中心点对齐时,集合S'={0,1,2,…,2^k'-1},k'=N;s(n)在集合S'中依次取值,计算出的各输出值存入查找表的第一行;
2.3b)当滤波器的抽头中心点与内插0值对齐时,集合S={0,1,2,…,2^k-1},k=N-1;s(n)在集合S中依次取值,计算出的各输出值存入查找表的剩余M-1行。
步骤2.4)实现内插的方法为:码元序列s(n)的每一比特依次和间隔M位的滤波器抽头系数h(n+M)相乘后累加;若内插倍数为1,则x(n)=s(n)。
步骤2.5)针对有效的码元位数K分别计算两种情况下的滤波器输出值:
2.5a)当有效码元与滤波器抽头中心点对齐时:
2.5a-1)将滤波器抽头系数h(n)按照内插倍数M间隔取值,存入数组H_center中,即H_center={h(0),h(M),…,h(Nt-M-1),h(Nt-1)};
2.5a-2)s(n)从零开始取值,按位与H_center数组中的每个元素相乘并累加;
2.5a-3)计算出对应的y(n)后存入查找表的第一行第一列中,然后s(n)加1,并计算对应的y(n),直到s(n)取完集合S'中的所有值,填满查找表的第一行;
2.5b)当滤波器的抽头中心点与内插0值对齐时:
2.5b-1)由滤波器的对称性得到h(0)=h(Nt-1),仅取前Nt-1个h(n),按照M间隔取值,分成M个有K个元素的H_sample数组,只取后M-1个数组;
2.5b-2)设H_sample数组集合为{H_sample(m),1≤m≤M-1},数组内每个元素的取值如下:H_sample(m)={h(m),h(m+M),…,h(Nt-M-1+m)};
2.5b-3)m首先取值为1,则H_sample(1)={h(1),h(1+M),…,h(Nt-M)};
2.5b-4)s(n)从零开始取值,按位与H_sample(m)数组中的每个元素相乘并累加;
2.5b-5)计算出对应的y(n)存入查找表中第m+1行第1列,然后s(n)加1,并计算对应y(n),直到s(n)取完集合S中的所有值,填满查找表的第m+1行;
2.5b-6)m加1,返回到步骤2.5b-4),如此循环,直至m=M-1,计算完M-1个数组对应的y(n),填满查找表的剩余M-1行。
步骤2.6)生成的查找表为M行2^k'列,第一行是有效码元与滤波器抽头中心点对齐时,输入码元所有情况的输出值;其余M-1行是滤波器抽头中心点与内插0值对应时,输入码元所有情况的输出值,但此M-1行只有2^k列的数据,根据滤波器系数的对称性,前2^k列数值与后2^k列数值相等,故将前2^k列数值翻转并复制到2^k+1至2^k’列,补充完查找表。
所述的步骤三读取查找表得到对应滤波器输出值的方法为:将输入码元序列按照2^k'取余加1作为索引值index,读取查找表中第index列的所有行的数值作为滤波器的输出值。
与现有技术相比,本发明基于查表法,以查表取代卷积运算,通过计算机生成并读取查找表完成了滤波功能。用内存资源换取滤波速度,克服了通用CPU在实现FIR滤波器时,由于串行执行导致运算次数大,计算速率低的缺点。利用了现有计算机大内存的优势,通过计算机生成并存储FIR滤波器的大查找表,配合CPU的高速运算,整体提高了运算速度。FIR滤波器的抽头数主要由滤波器的阶数和码元序列的内插倍数决定,阶数越大,内插倍数越高,滤波器的抽头数越多。高阶FIR滤波器与低阶FIR滤波器相比,具有更窄的过渡带,阻带衰减快,滤波效果好。高内插FIR滤波器和普通FIR滤波器相比,具有更多的波形采样点,有利于接收端的波形重构,降低误码率;同时采样速率的提高,压缩了频谱,能够进行频分复用,提高了信道利用率。高阶和高内插FIR滤波器的优点使其应用广泛,但由于运算量大,普通的软件法可实现的滤波器阶数和码元内插倍数有限。一个20阶的2倍内插FIR滤波器,若采用卷积计算,每次滤波需要进行20次的乘法运算和19次的加法运算,在本发明中只需要进行一个计算索引值的运算,然后根据索引值查表即可完成滤波功能。本发明基于查表法,以查表运算替代卷积运算,同时利用计算机的大容量内存存储FIR滤波器的大查找表,以内存换取速度,能够实现普通FIR滤波器的功能。本发明充分考虑了当前计算机内存容量不断增大、CPU速度逐步提高的发展趋势,具有强大的可延展性和广阔的发展前景。
进一步的,在本发明中,实现内插的方法为,码元序列s(n)的每一比特依次和间隔M位的滤波器抽头系数h(n+M)相乘并累加,若内插倍数为1,则x(n)=s(n)。如此即可不再另外生成输入序列x(n),达到减少数据存储量以及减少乘法和累加次数的效果,从而提高运算速度。
具体实施方式
下面结合具体实施例对本发明做进一步的详细说明。
本发明是FIR滤波器的查表法实现,重点是用查找表取代卷积运算,提高运算速度。查找表的大小与滤波器阶数以及码元内插倍数两个因素都有关,但因为滤波器阶数的增加会使得查找表大小成指数性增大,而内插倍数和查找表大小是线性关系,所以相比之下,本发明更适合高内插FIR滤波器的实现。下面对本发明采用的技术方案进行详细描述:
a.计算查找表大小
根据输入码元分辨率P、表格数据精度L、滤波器阶数N和内插倍数M,计算该滤波器的查找表大小Size(单位:字节)。输入码元的分辨率P指的是每个码元的比特数,表格数据精度L指的是查找表中每个数据以L个字节存储,阈值thr根据实际应用设定,指的是所能接受的最大查找表大小。查找表大小根据以下公式进行计算:
Size=M*2p*N*L(Byte)
若Size≤thr,进入下一步生成查找表;否则,修改滤波器参数。
b.生成查找表
2.1)根据设计要求,如滤波器的阶数N、内插倍数M、采样频率、通带和阻带截止频率、通带和阻带衰减值等设计指标,得到指定滤波器的各抽头系数h(n)和抽头总数Nt。可利用FilterLab、FilterCAD等滤波器设计软件,或者Matlab的FDATool工具得到各抽头系数h(n)。
2.2)根据滤波器阶数N,确定在每次卷积过程中有效的码元位数K。计算方法为:分析计算卷积的乘累加过程,由于输入序列采取M倍内插,考虑有效码元与滤波器抽头中心点对齐和不对齐的两种情况:
2.2a)当有效码元与滤波器抽头中心点对齐时,输入序列的首尾两点正好是有效码元,则码元有效位数K'=N;
2.2b)当有效码元与滤波器抽头中心点不对齐时,滤波器的抽头中心点与内插0值对齐,则码元的有效位数K=N-1。
2.3)码元序列s(n)的长度设为K位,s(n)依次按照集合S取值。根据步骤2.2)中两种情况下K的取值,分别计算对应的s(n)取值:
2.3a)当有效码元与滤波器抽头中心点对齐时,集合S'={0,1,2,…,2^k'-1},k'=N;s(n)在集合S'中依次取值,计算出的各输出值存入查找表的第一行;
2.3b)当滤波器的抽头中心点与内插0值对齐时,集合S={0,1,2,…,2^k-1},k=N-1;s(n)在集合S中依次取值,计算出的各输出值存入查找表的剩余M-1行。
2.4)码元序列s(n)根据内插倍数M在两个码元之间插入M-1个0,生成输入序列x(n)。实现内插的方法为:s(n)的每一比特依次和间隔M位的滤波器抽头系数h(n+M)相乘后累加;若内插倍数为1,则x(n)=s(n)。如此可不再另外生成输入序列x(n),达到减少数据的存储量以及减少乘法和累加次数的效果,从而提高运算速度。
2.5)根据离散信号的卷积公式:计算出滤波器的输出值。按照步骤2.2)的两种情况分别计算:
2.5a)当有效码元与滤波器抽头中心点对齐时:
2.5a-1)将滤波器抽头系数h(n)按照内插倍数M间隔取值,存入数组H_center中,即H_center={h(0),h(M),…,h(Nt-M-1),h(Nt-1)};
2.5a-2)s(n)从零开始取值,按位与H_center数组中的每个元素相乘并累加;
2.5a-3)计算出对应的y(n)后存入查找表的第一行第一列中;然后s(n)加1,并计算对应的y(n),直到s(n)取完集合S'中的所有值,填满查找表的第一行。
2.5b)当滤波器的抽头中心点与内插0值对齐时:
2.5b-1)由滤波器的对称性知,h(0)=h(Nt-1)。仅取前Nt-1个h(n),按照M间隔取值,分成M个有K个元素的H_sample数组,只取后M-1个数组;
2.5b-2)设H_sample数组集合为{H_sample(m),1≤m≤M-1},数组内每个元素的取值如下:H_sample(m)={h(m),h(m+M),…,h(Nt-M-1+m)};
2.5b-3)m首先取值为1,则H_sample(1)={h(1),h(1+M),…,h(Nt-M)};
2.5b-4)s(n)从零开始取值,按位与H_sample(m)数组中的每个元素相乘累加;
2.5b-5)计算出对应的y(n)存入查找表中第m+1行第1列,然后s(n)加1,并计算对应的y(n),直到s(n)取完集合S中的所有值,填满查找表的第m+1行;
2.5b-6)m加1,回到步骤2.5b-4)如此循环,直至m=M-1,计算完M-1个数组对应的y(n),填满查找表的剩余M-1行。
2.6)生成的查找表为M行2^k'列,第一行是有效码元与滤波器抽头中心点对齐时,输入码元所有情况的输出值;其余M-1行是滤波器抽头中心点与内插0值对应时,输入码元所有情况的输出值,但此M-1行只有2^k列的数据,由滤波器系数的对称性知,前2^k列数值与后2^k列数值相等,故将前2^k列数值翻转并复制到2^k+1至2^k'列,补充完查找表。
c.读取查找表
计算机根据实时输入码元流计算索引值,读取查找表得到对应滤波器输出值,完成滤波功能。根据查找表读取滤波器输出值的方法是:将输入码元序列按照2^k'取余加1作为索引值index,读取查找表中第index列的所有行的数值作为滤波器的输出值。
下面以一个实例,对码元序列采取M倍内插情况下的整个发明过程做进一步的详细说明:
设计要求:码元采用QPSK调制,码元速率为19Kbps,内插倍数为64倍;采用滚降系数为0.4的根升余弦滤波器,滤波器阶数为17阶,通带衰减在1dB以内,阻带衰减为40dB,查找表数据采用short类型存储,查找表大小在1GB内。
1.根据查找表大小计算公式,计算出查找表大小Size=16.78MB,满足设计要求。
2.根据设计要求,计算可知滤波器的采样频率为64*19K Hz。查找表中每个数据以2个字节存储,即数据精度L=2。虽然码元采用QPSK调制,但由于QPSK的两个码元是正交的,所以可将两个码元单独分析,认为每个码元采用BPSK调制,则码元分辨率P=1。
3.为加快运算速度,简化程序,选择在matlab平台下通过矩阵运算完成本次滤波器设计;调用matlab的rcosfir函数,得到指定根升余弦滤波器抽头系数矩阵h,抽头总数为1025。
4.由于h是一个1*1025的矩阵,为了便于进行卷积运算,首先按照内插倍数64的间隔取出滤波器抽头系数,组成1*17的矩阵H_center。然后,取矩阵h前1024个数,再依次按照内插倍数64间隔取值,生成64*16的矩阵H_sample_1。接着,根据卷积过程,将整个H_sample_1矩阵进行上下翻转生成矩阵64*16的矩阵H_sample_2,即H_sample_1的第64行是H_sample_2的第1行,H_sample_1的第63行是H_sample_2的第2行,以此类推,最后,仅取H_sample_2的前63行生成63*16的矩阵H_sample;
5.将64*2^17的查找表矩阵置零,按照有效码元与滤波器抽头中心点对齐、内插0值与滤波器抽头中心点对齐两种情况分别计算滤波器输出值。
注:有效码元采用BPSK调制,即-1→0,1→1。
5a)当有效码元与滤波器抽头中心点对齐时:
5a-1)有效码元位数k'=N=17,集合S'={0,1,2,…,2^17-1},令s(n)=0;
5a-2)按位取出s(n)的17位数值,该位若为0,对应的H_center值乘上-1加到查找表矩阵对应位,该位若为1,对应的H_center值乘上1加到查找表矩阵对应位。即,若s(1)为0,减去H_center(1)的值,为1则加上H_center(1)的值;若s(2)为0,减去H_center(2)的值,为1则加上H_center(2)的值,以此类推;
5a-3)计算s(n)每一位和H_center矩阵各数值相乘的结果,累加后作为查找表矩阵第一行第一列的值;
5a-4)s(n)加1,回到步骤5a-2),按位依次计算和H_center矩阵各数值的乘积并累加,填入查找表第一行的下一列;以此循环,直至s(n)取完集合S'的值,填完查找表矩阵的第一行。
5b)当内插0值与滤波器抽头中心点对齐时:
5b-1)有效码元位数k=N-1=16,集合S={0,1,2,…,2^16-1},令s(n)=0,取出H_sample的第一行,即H_sample(1,x);
5b-2)按位取出s(n)的16位的数值,该位若为0,对应的H_sample(1,x)值乘上-1加到查找表矩阵对应位,该位若为1,对应的H_sample(1,x)值乘上1加到查找表矩阵对应位置。即,若s(1)为0,减去H_sample(1,1)的值,为1则加上H_sample(1,1)的值;s(2)为0,减去H_sample(1,2)的值,为1则加上H_sample(1,2)的值,以此类推;
5b-3)计算s(n)每一位和H_sample(1,x)各数值相乘的结果,累加后作为查找表矩阵第二行第一列的值;
5b-4)s(n)加1,回到步骤5b-2),按位依次计算和H_sample(1,x)各数值的乘积并累加,填入查找表矩阵第二行的下一列;以此循环,直至s(n)取完集合S的值,填满查找表矩阵的第二行前2^16列,进入下一步;
5b-5)取出H_sample的下一行,即H_sample(2,x),回到步骤5b-1),直至取完H_sample的所有63行,进入下一步;
5b-6)至此,查找表矩阵的第2至64行的前2^16列都已填满。根据滤波器的对称性,将前2^16行数据翻转复制至后2^16行,填满整个查找表矩阵。
6.将查找表矩阵写入指定文件中,计算机根据实时码流计算查表索引值,读取查找表得到滤波器输出值,将输入码元流按照2^17取余加1作为索引值index,读取查找表中第index列的64个值作为滤波器的输出值。
以一个20阶的2倍内插FIR滤波器为例,若采用卷积计算,每次滤波时需要进行20次的乘法运算和19次的加法运算。在本发明中,只需要进行一次计算索引值的运算,然后根据索引值查表即可完成滤波功能。本发明充分考虑了当前计算机内存容量不断增大、CPU速度逐步提高的发展趋势,具有强大的可延展性和广阔的发展前景。
Claims (9)
1.一种基于软件查表法的FIR滤波器实现方法,其特征在于,包括以下步骤:
步骤一、计算查找表的大小并与设定阈值进行比较,阈值指的是实际应用中所能接受的最大查找表大小,若查找表的大小不超过设定阈值即生成查找表,否则修改滤波器参数;
步骤二、生成查找表,查找表采用静态生成法,特定FIR滤波器对应一个固定的查找表;
2.1)根据设计指标得到滤波器的各抽头系数h(n)和抽头数总数Nt;
2.2)根据滤波器的阶数N,确定在每次卷积过程中有效的码元位数K;
2.3)码元序列s(n)的长度设为K位,s(n)依次按照集合S={0,1,2,…,2^k-1}取值;
2.4)码元序列s(n)根据内插倍数M在两个码元之间插入M-1个0,生成输入序列x(n);
2.5)根据离散信号的卷积公式:计算出滤波器的输出值;
2.6)将s(n)每个对应的y(n)存入查找表,回到步骤2.3),直至s(n)取完S中的所有值;
步骤三、计算机根据实时输入码元流计算索引值,读取查找表得到对应滤波器输出值。
2.根据权利要求1所述基于软件查表法的FIR滤波器实现方法,其特征在于,所述查找表的大小根据以下公式进行计算:Size=M*2p*N*L(Byte);
式中,P为输入码元分辨率,L为表格数据精度,N为滤波器阶数,M为内插倍数,Size为查找表大小,查找表大小的单位为字节;所述的输入码元分辨率P指的是每个码元的比特数,表格数据精度L指的是查找表中每个数据以L个字节进行存储。
3.根据权利要求1所述基于软件查表法的FIR滤波器实现方法,其特征在于,步骤2.1)所述的设计指标包括滤波器的阶数N、内插倍数M、采样频率、通带和阻带截止频率、通带和阻带衰减值;所述的各抽头系数h(n)通过滤波器设计软件FilterLab、FilterCAD获得,或者通过Matlab的FDATool工具得到。
4.根据权利要求1所述基于软件查表法的FIR滤波器实现方法,其特征在于,步骤2.2)确定有效的码元位数K时,分有效码元与滤波器抽头中心点对齐和不对齐两种情况计算:
2.2a)当有效码元与滤波器抽头中心点对齐时,输入序列的首尾两点为有效码元,则码元有效位数K'=N;
2.2b)当有效码元与滤波器抽头中心点不对齐时,滤波器的抽头中心点与内插0值对齐,则码元的有效位数K=N-1。
5.根据权利要求4所述基于软件查表法的FIR滤波器实现方法,其特征在于,步骤2.3)针对有效的码元位数K分别计算两种情况下的s(n)取值:
2.3a)当有效码元与滤波器抽头中心点对齐时,集合S'={0,1,2,…,2^k'-1},k'=N;s(n)在集合S'中依次取值,计算出的各输出值存入查找表的第一行;
2.3b)当滤波器的抽头中心点与内插0值对齐时,集合S={0,1,2,…,2^k-1},k=N-1;s(n)在集合S中依次取值,计算出的各输出值存入查找表的剩余M-1行。
6.根据权利要求1所述基于软件查表法的FIR滤波器实现方法,其特征在于,步骤2.4)实现内插的具体方法为:码元序列s(n)的每一比特依次和间隔M位的滤波器抽头系数h(n+M)相乘并累加;若内插倍数为1,则x(n)=s(n)。
7.根据权利要求1所述基于软件查表法的FIR滤波器实现方法,其特征在于,步骤2.5)针对有效的码元位数K分别计算两种情况下的滤波器输出值:
2.5a)当有效码元与滤波器抽头中心点对齐时:
2.5a-1)将滤波器抽头系数h(n)按照内插倍数M间隔取值,存入数组H_center中,即H_center={h(0),h(M),…,h((Nt-M-1),h((Nt-1)};
2.5a-2)s(n)从零开始取值,按位与H_center数组中的每个元素相乘并累加;
2.5a-3)计算出对应的y(n)后存入查找表的第一行第一列中;然后s(n)加1,并计算对应的y(n),直到s(n)取完集合S'中的所有值,填满查找表的第一行;
2.5b)当滤波器的抽头中心点与内插0值对齐时:
2.5b-1)由滤波器的对称性得到h(0)=h(Nt-1),仅取前Nt-1个h(n),按照M间隔取值,分成M个有K个元素的H_sample数组,只取后M-1个数组;
2.5b-2)设H_sample数组集合为{H_sample(m),1≤m≤M-1},数组内每个元素的取值如下:H_sample(m)={h(m),h(m+M),…,h(Nt-M-1+m)};
2.5b-3)m首先取值为1,则H_sample(1)={h(1),h(1+M),…,h(Nt-M)};
2.5b-4)s(n)从零开始取值,按位与H_sample(m)数组中的每个元素相乘并累加;
2.5b-5)计算出对应的y(n)存入查找表中第m+1行第1列,然后s(n)加1,并计算对应y(n),直到s(n)取完集合S中的所有值,填满查找表的第m+1行;
2.5b-6)m加1,返回到步骤2.5b-4),如此循环,直至m=M-1,计算完M-1个数组对应的y(n),填满查找表的剩余M-1行。
8.根据权利要求7所述基于软件查表法的FIR滤波器实现方法,其特征在于,生成的查找表为M行2^k'列,第一行是有效码元与滤波器抽头中心点对齐时,输入码元所有情况的输出值;其余M-1行是滤波器抽头中心点与内插0值对应时,输入码元所有情况的输出值;根据滤波器系数的对称性,将前2^k列数值翻转并复制到2^k+1至2^k'列,补充完查找表。
9.根据权利要求1所述基于软件查表法的FIR滤波器实现方法,其特征在于,所述的步骤三读取查找表得到对应滤波器输出值的方法为:将输入码元序列按照2^k'取余加1作为索引值index,读取查找表中第index列的所有行的数值作为滤波器的输出值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710744748.6A CN107612523B (zh) | 2017-08-25 | 2017-08-25 | 一种基于软件查表法的fir滤波器实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710744748.6A CN107612523B (zh) | 2017-08-25 | 2017-08-25 | 一种基于软件查表法的fir滤波器实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107612523A true CN107612523A (zh) | 2018-01-19 |
CN107612523B CN107612523B (zh) | 2020-05-19 |
Family
ID=61055826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710744748.6A Active CN107612523B (zh) | 2017-08-25 | 2017-08-25 | 一种基于软件查表法的fir滤波器实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107612523B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108683899A (zh) * | 2018-05-16 | 2018-10-19 | 东南大学 | 一种面向嵌入式图像处理系统的彩色空间转换优化方法 |
CN108964635A (zh) * | 2018-06-15 | 2018-12-07 | 西安空间无线电技术研究所 | 一种抗辐照高阶高速可参数重构fir滤波器设计方法及系统 |
CN109525214A (zh) * | 2018-10-11 | 2019-03-26 | 上海辛格林纳新时达电机有限公司 | Fir滤波器的滤波方法、fir滤波器及伺服驱动器 |
CN111490753A (zh) * | 2020-04-27 | 2020-08-04 | 沈阳科网通信息技术有限公司 | 旋转设备特征信号采集用低通滤波器的设计方法 |
CN112886944A (zh) * | 2019-11-29 | 2021-06-01 | 西安诺瓦星云科技股份有限公司 | 滤波器系数生成方法及装置 |
CN116827308A (zh) * | 2023-08-24 | 2023-09-29 | 上海力通通信有限公司 | 资源优化型fir滤波器及其实现方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1422089A (zh) * | 2001-09-07 | 2003-06-04 | 三星Thales株式会社 | 使用查找表的块内插滤波器结构 |
CN103001605A (zh) * | 2012-11-02 | 2013-03-27 | 同济大学 | 一种基于da-rns算法的fir滤波器的实现方法 |
US20140269980A1 (en) * | 2013-03-13 | 2014-09-18 | Nec Laboratories America, Inc. | Look-Up Table Based Digital Filter Array Using Digital Transmitter |
CN104202016A (zh) * | 2014-08-29 | 2014-12-10 | 哈尔滨工业大学 | 一种基于查表法的任意倍可变的信号升采样实现方法及系统 |
-
2017
- 2017-08-25 CN CN201710744748.6A patent/CN107612523B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1422089A (zh) * | 2001-09-07 | 2003-06-04 | 三星Thales株式会社 | 使用查找表的块内插滤波器结构 |
CN103001605A (zh) * | 2012-11-02 | 2013-03-27 | 同济大学 | 一种基于da-rns算法的fir滤波器的实现方法 |
US20140269980A1 (en) * | 2013-03-13 | 2014-09-18 | Nec Laboratories America, Inc. | Look-Up Table Based Digital Filter Array Using Digital Transmitter |
CN104202016A (zh) * | 2014-08-29 | 2014-12-10 | 哈尔滨工业大学 | 一种基于查表法的任意倍可变的信号升采样实现方法及系统 |
Non-Patent Citations (2)
Title |
---|
李泽明等: "一种FIR数字滤波器的MATLAB辅助设计及FPGA实现", 《科学技术与工程》 * |
梁尧 等: "一种基于查找表的FIR成型滤波实现装置", 《太赫兹科学与电子信息学报》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108683899A (zh) * | 2018-05-16 | 2018-10-19 | 东南大学 | 一种面向嵌入式图像处理系统的彩色空间转换优化方法 |
CN108964635A (zh) * | 2018-06-15 | 2018-12-07 | 西安空间无线电技术研究所 | 一种抗辐照高阶高速可参数重构fir滤波器设计方法及系统 |
CN109525214A (zh) * | 2018-10-11 | 2019-03-26 | 上海辛格林纳新时达电机有限公司 | Fir滤波器的滤波方法、fir滤波器及伺服驱动器 |
CN109525214B (zh) * | 2018-10-11 | 2022-10-14 | 上海辛格林纳新时达电机有限公司 | Fir滤波器的滤波方法、fir滤波器及伺服驱动器 |
CN112886944A (zh) * | 2019-11-29 | 2021-06-01 | 西安诺瓦星云科技股份有限公司 | 滤波器系数生成方法及装置 |
CN111490753A (zh) * | 2020-04-27 | 2020-08-04 | 沈阳科网通信息技术有限公司 | 旋转设备特征信号采集用低通滤波器的设计方法 |
CN116827308A (zh) * | 2023-08-24 | 2023-09-29 | 上海力通通信有限公司 | 资源优化型fir滤波器及其实现方法 |
CN116827308B (zh) * | 2023-08-24 | 2023-11-24 | 上海力通通信有限公司 | 资源优化型fir滤波器及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107612523B (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107612523A (zh) | 一种基于软件查表法的fir滤波器实现方法 | |
CN105955706B (zh) | 一种除法器及除法运算方法 | |
CN106951211B (zh) | 一种可重构定浮点通用乘法器 | |
CN106897046B (zh) | 一种定点乘累加器 | |
CN108805266A (zh) | 一种可重构cnn高并发卷积加速器 | |
CN108021537A (zh) | 一种基于硬件平台的softmax实现方式 | |
KR100756137B1 (ko) | 제산 및 제곱근 연산 유닛 | |
WO2020156508A1 (zh) | 基于具有运算阵列的芯片的运算方法、装置及芯片 | |
CN109977347B (zh) | 一种支持多模式配置的可重构fft处理器 | |
CN104679719B (zh) | 一种基于fpga的浮点运算方法 | |
CN112596701B (zh) | 基于单边雅克比奇异值分解的fpga加速实现方法 | |
CN104679720A (zh) | 一种实现fft的运算方法 | |
WO2018027706A1 (zh) | Fft处理器及运算方法 | |
CN109165006B (zh) | Softmax函数的设计优化及硬件实现方法及系统 | |
CN111443893A (zh) | 一种基于cordic算法的n次根计算装置及方法 | |
CN109388373A (zh) | 用于低功耗内核的乘除法器 | |
CN110069239B (zh) | 二进制逻辑电路、获得其硬件表示的方法及其制造方法 | |
CN110069237B (zh) | 一种基于查找表的基-8除法器信号处理方法 | |
CN104679721B (zh) | 一种fft处理器的运算方法 | |
CN109298848A (zh) | 双模式浮点除法平方根的电路 | |
CN107423026A (zh) | 一种正余弦函数计算的实现方法及装置 | |
CN113434811B (zh) | 一种2048点fft处理器ip核 | |
US9213639B2 (en) | Division of numerical values based on summations and memory mapping in computing systems | |
CN205899527U (zh) | 一种除法器 | |
CN105846873B (zh) | 基于超前迭代的三角脉动阵列结构qr分解装置及分解方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |