CN107612523A - 一种基于软件查表法的fir滤波器实现方法 - Google Patents

一种基于软件查表法的fir滤波器实现方法 Download PDF

Info

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
Application number
CN201710744748.6A
Other languages
English (en)
Other versions
CN107612523B (zh
Inventor
曹俊
沈雪峰
李嘉杰
韦文怡
符均
陈伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201710744748.6A priority Critical patent/CN107612523B/zh
Publication of CN107612523A publication Critical patent/CN107612523A/zh
Application granted granted Critical
Publication of CN107612523B publication Critical patent/CN107612523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

一种基于软件查表法的FIR滤波器实现方法,包括:步骤一、计算查找表的大小并与设定阈值进行比较,若查找表的大小不超过设定阈值即生成查找表,否则修改滤波器参数;步骤二、生成查找表,查找表采用静态生成法,特定FIR滤波器对应一个固定的查找表;步骤三、计算机根据实时输入码元流计算索引值,读取查找表得到对应滤波器输出值。本发明以查表取代卷积运算,通过计算机生成并读取查找表完成滤波功能,用内存资源换取滤波速度,克服了通用CPU在实现FIR滤波器时,由于串行执行导致运算次数大,计算速率低的缺点。本发明利用了现有计算机大内存的优势,配合CPU的高速运算,整体提高了运算速度。

Description

一种基于软件查表法的FIR滤波器实现方法
技术领域
本发明属于数字信号处理领域,具体涉及一种基于软件查表法的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列的所有行的数值作为滤波器的输出值。
CN201710744748.6A 2017-08-25 2017-08-25 一种基于软件查表法的fir滤波器实现方法 Active CN107612523B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 哈尔滨工业大学 一种基于查表法的任意倍可变的信号升采样实现方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
李泽明等: "一种FIR数字滤波器的MATLAB辅助设计及FPGA实现", 《科学技术与工程》 *
梁尧 等: "一种基于查找表的FIR成型滤波实现装置", 《太赫兹科学与电子信息学报》 *

Cited By (8)

* Cited by examiner, † Cited by third party
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