CN109815546B - 一种高速并行数字匹配滤波器的实现方法 - Google Patents
一种高速并行数字匹配滤波器的实现方法 Download PDFInfo
- Publication number
- CN109815546B CN109815546B CN201811596241.1A CN201811596241A CN109815546B CN 109815546 B CN109815546 B CN 109815546B CN 201811596241 A CN201811596241 A CN 201811596241A CN 109815546 B CN109815546 B CN 109815546B
- Authority
- CN
- China
- Prior art keywords
- filter
- data
- result
- conversion factor
- dft
- 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.)
- Active
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明提供了一种高速并行数字匹配滤波器的实现方法,通过8PSK调制后的数据进行4倍内插,产生滤波器输入数据,通过重叠缓冲方式产生滤波器输入数据,并对数据做64点DFT,通过MATLAB仿真计算出匹配滤波器系数,计算64点DFT,并对运算结果进行归一化处理,使滤波器的计算结果中间32点系数值置零,将输入数据与滤波器系数进行频域滤波计算,并对运算结果取共轭,并将输出结果取共轭并乘以1/64得到输出序列。本发明运算复杂度低、系统资源消耗少、算法开发周期短,易于滤波功能的升级、扩展、维护与移植,相对传统滤波器实现方法具有明显的简化与优化特征。
Description
技术领域
本发明涉及一种滤波器。
背景技术
数字匹配滤波器的作用一般有两个,第一使基带信号频谱成型以限带;第二是滤除接收信号带外噪声,减小符号间码间串扰,提高输出信噪比。实际系统中常用的匹配滤波器为平方根升余弦滚降滤波器,它满足奈奎斯特第一准则,是采样点无失真条件的信号,可以保证无码间串扰的带限传输,其信号频谱为:
式中,β为升余弦滤波器的滚降系数,T为符号周期。
根据最佳接收理论,接收端滤波器GR(f)是发送滤波器GT(f)的复共轭,在信道传输函数C(f)=1的情况下,
H(f)=GT(f)×GR(f)=|GT(f)|2
因此,发送成型滤波器及接收匹配滤波器均为根升余炫滤波器,其时域冲击响应h(t)为:
成形滤波器的冲击响应h(t)在理论上是无限长的,而在实际应用中,滤波器的阶数是有限的,需要对成形匹配滤波器进行加窗处理,得到有限长FIR滤波器。
匹配滤波器是线性卷积的过程,它的实现可以通过基于DFT的频域滤波来完成,如果计算两个序列的卷积,可以先算出它们的DFT,相乘后,把所得结果做IDFT运算,但是将DFT运算结果相乘等同于将序列做了循环卷积,还需要通过做相应的抗混叠处理得到正确的线性卷积结果。具体实现过程为:
(1)通过MATLAB仿真计算出匹配滤波器系数h(n),并计算它们的64点DFT,H(N)=DFT(h(n));
(2)对调制完成的32路数据进行重叠保留得到64路数据,并计算它们的64点DFT,X(N)=DFT(x(n));
(3)进行相乘运算,Y(N)=X(N)H(N);
(4)对步骤(3)的结果做64点IDFT处理:y(n)=IDFT(Y(N)),输出后32点数据。
传统滤波器实现算法计算复杂度较高、占用系统资源较大,不利于功能的扩展与升级。
发明内容
为了克服现有技术的不足,本发明提供一种高速并行数字匹配滤波器的实现方法,能够减少系统资源的消耗,简化算法的实现复杂度。
本发明解决其技术问题所采用的技术方案包括以下步骤:
(1)通过8PSK调制后的8路数据进行4倍内插,产生32路滤波器输入数据;
(2)通过重叠缓冲方式产生64路滤波器输入数据,并对64路数据做64点DFT;
(3)通过MATLAB仿真计算出匹配滤波器系数h(n),计算它们的64点DFT,H(N)=DFT(h(n));并对运算结果进行归一化处理;
(4)使滤波器H(N)的计算结果中间32点系数值置零;
(5)将输入数据与滤波器系数进行频域滤波计算,Y(N)=X(N)H(N),并对运算结果Y(N)取共轭;
(6)将步骤(5)结果作为输入,重复步骤(2)进行64点DFT,并将输出结果取共轭并乘以1/64得到输出序列。
所述的步骤(2)中,对64路并行数据做64点DFT时,共有6级蝶形变换,每一级蝶形变换转换因子运算用一个子程序来实现,在每一级运算中反复调用相应子程序模块,每次运算送入不同端口的数据;第一级调用32次转换因子运算子程序rotation1;第二级调用16次转换因子运算子程序rotation2;第三级调用8次转换因子运算子程序rotation3;第四级调用4次转换因子运算子程序rotation4;第五级调用2次转换因子运算子程序rotation5;第六级调用1次转换因子运算子程序rotation6;在每一级蝶形变换中采用输入数据直接以复数相乘加方式完成。
本发明的有益效果是:采用本发明实现的64路高速并行频域滤波器在实现方法上具有运算复杂度低、系统资源消耗少、算法开发周期短等优点。通过对步骤(2)的优化,采用反复调用子程序的方式,有利于将来扩展实现128路、256路并行滤波运算,无需将滤波程序推到重来;采用一路复数乘加运算替代I、Q两路并行乘加运算,可显著节省乘法器与加法器的使用量,减小FPGA资源消耗。采用步骤(4)的方法,将滤波器中间32个系数置零,直接简化了滤波算法的复杂度与运算量,降低系统资源消耗。通过采用步骤(6)的实现方法,使滤波器无需进行IDFT多级复杂运算,直接将步骤(5)结果做共轭变换后输入到步骤(2)的模块中,再将计算结果直接取共轭后乘以1/64即可得到滤波结果,进一步简化了滤波运算的复杂度,节省了数字滤波器的研发周期。本发明易于滤波功能的升级、扩展、维护与移植,相对传统滤波器实现方法具有明显的简化与优化特征。
附图说明
图1是64路高速并行频域数字滤波器工作流程图;
图2是基2蝶形运算图;
图3是64点DFT数据流图;
图4是发射波形数据与matlab仿真波行数据对比图。
具体实施方式
下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。
本发明的匹配滤波器采用了高速频域并行滤波方法,一般来讲匹配滤波器是一个无限长序列与一个有限长序列线性卷积的结果,线性卷积可以通过离散傅里叶变换(DFT)来快速实现。采用频域相乘滤波方法可以避免时域滤波中难以实现的高速内插,相对时域高速并行滤波,频域相乘滤波方式实现较为简单、有利于滤波参数的调整与功能的升级和扩展。在本发明中通过对频域相乘滤波算法的优化,通过对DFT旋转因子子程序反复调用,采用一路复数运算的滤波数据运算方法,以及滤波器相关系数直接置零、复共轭取反相乘取代IDFT运算等方式进一步减少系统资源的消耗,简化了算法的实现复杂度。本发明的匹配滤波器实现方式采用高速频域并行滤波结构,具体实现过程为:
(1)通过8PSK调制后的8路数据进行4倍内插产生32路滤波器输入数据;
(2)通过重叠缓冲方式产生64路滤波器输入数据,并对64路数据做64点DFT:X(N)=DFT(x(n));
(3)对MATLAB仿真计算出匹配滤波器系数h(n),计算它们的64点DFT,H(N)=DFT(h(n));并对运算结果进行归一化处理;
(4)可使滤波器H(N)的计算结果中间32点系数值置零;
(5)将输入数据与滤波器系数进行频域滤波计算,Y(N)=X(N)H(N),并对运算结果Y(N)取共轭;
(6)将步骤(5)结果作为输入,同步骤(2)一样进行64点DFT,并将输出结果取共轭并乘以1/64得到输出序列。
其中在步骤(2)中,对64路并行数据做64点DFT时,共有6级蝶形变换,常规做法是每一级蝶形运算直接用算法编程实现,在本发明中每一级蝶形变换转换因子运算用一个子程序来实现,在每一级运算中反复调用相应子程序模块,每次运算送入不同端口的数据。在DFT实现时:第一级调用32次转换因子运算子程序rotation1;第二级调用16次转换因子运算子程序rotation2;第三级调用8次转换因子运算子程序rotation3;第四级调用4次转换因子运算子程序rotation4;第五级调用2次转换因子运算子程序rotation5;第六级调用1次转换因子运算子程序rotation6。在每一级蝶形变换中通常实现方法是将输入并行数据分成I、Q两路分别进行乘累加计算,在本发明中采用输入数据直接以复数相乘加方式完成,无需将输入复数数据按实部和虚部分为两路分别计算。
在步骤(4)中,利用匹配滤波的低通特性优化FPGA中DSP乘法器。系统由于采样速率为4倍符号速率,滤波器的64点频率响应中高16点和低16点代表符号速率内的频率响应,中间32点表示滤波器高频分量,从滤波器h(n)的幅频响应曲线中可以看出,中间高频分量几乎为零。因此在FPGA中进行64点DFT输出序列X(K)与滤波器系数H(K)相乘时,可使滤波器H(K)的中间32点系数值置零,这样在计算DFT输出数据与滤波器64路系数相乘运算时,可以直接省去中间32路数据计算量,减低运算复杂度。
在步骤(6)中,常规做法是对(5)运算结果Y(N)进行IDFT运算,得到滤波器输出结果。但是比较DFT和IDFT的运算公式:
只要将DFT运算式中的因子改为最后乘以1/N,就是IDFT的运算公式。所以,只要将上述算法中的旋转因子改为最后的输出再乘以1/N,就可以用来计算IDFT。如果希望直接调用DFT子程序计算IDFT,则可用下面的方法:
对上式两边同时取共轭,得到
这样,可以先将X(K)取共轭,然后直接调用DFT子程序,最后对DFT结果取共轭并乘以1/N得到序列x(n)。
从上述几个步骤的优化算法可以看出,采用本发明实现的64路高速并行频域滤波器在实现方法上具有运算复杂度低、系统资源消耗少、算法开发周期短等优点,通过对步骤(2)的优化,采用反复调用子程序的方式,有利于将来扩展实现128路、256路并行滤波运算,无需将滤波程序推到重来;采用一路复数乘加运算替代I、Q两路并行乘加运算,可显著节省乘法器与加法器的使用量,减小FPGA资源消耗。采用步骤(4)的方法,将滤波器中间32个系数置零,直接简化了滤波算法的复杂度与运算量,降低系统资源消耗。通过采用步骤(6)的实现方法,使滤波器无需进行IDFT多级复杂运算,直接将步骤(5)结果做共轭变换后输入到步骤(2)的模块中,再将计算结果直接取共轭后乘以1/64即可得到滤波结果。进一步简化了滤波运算的复杂度,节省了数字滤波器的研发周期。本方案易于滤波功能的升级、扩展、维护与移植,相对传统滤波器实现方法具有明显的简化与优化特征。
滤波器详细设计:
数字匹配滤波器的作用一般有两个,第一使基带信号频谱成型以限带;第二是滤除接收信号带外噪声,减小符号间码间串扰,提高输出信噪比。实际系统中常用的匹配滤波器为平方根升余弦滚降滤波器,它满足奈奎斯特第一准则,是采样点无失真条件的信号,可以保证无码间串扰的带限传输,其信号频谱为:
式中,β为升余弦滤波器的滚降系数,T为符号周期。滚降系数β越小,则波形震荡起伏就越大,传输带宽越小;β越大,则波形震荡起伏就越小,传输带宽越大。在实际系统中抽样时刻不可能没有误差;为了减小抽样误差,β不可能太小;但β太大会引起码间串扰。因此,一般选取0.3≤β≤0.6,本发明选β=0.4。
为了得到正确的线性卷积输出,并行DFT结构采用重叠保留法进行分段处理。参与循环卷积的N点输入序列是由N2点新数据序列和前一段保存下来的后N1-1点旧数据序列构成,然后再计算循环卷积,最后取其结果的后N2点作为输出。一般选择N=2M,以便于DFT运算的实现。N1决定着匹配滤波器的性能,而N决定着并行结构后信号处理速率降低的倍数(且N1>N2N=N1+N2-1),具体取值需要在系统性能与FPGA实现资源之间进行折衷考虑。由系统数据传输速率要求,以及FPGA时钟选择要求,确定滤波器滤波数据为并行64路频域滤波,即N=64。
本发明中采用8PSK调制方式,滤波器阶数为N1=33,输入序列N2=32,进行64点滤波运算。滤波器阶数一般是根据通带、阻带截止频率和衰减参数通过MATLAB中滤波器计算函数,计算出满足要求的最低阶数,本发明中滤波器阶数为33阶。
数据位宽选择,FPGA内部不支持浮点运算,只能用数据的整数部分做近似运算,小数部分将被截断,即有限字长效应。未来为了减小截断误差,可以适当扩大数据整数倍,以使小数部分忽略不计,扩大倍数越大,截断误差越小,占用FPGA资源越多。综合考虑本方案数据位数为16位。
在滤波时,滤波器接收8PSK调制后的并行8路数据,对8路数据进行4倍内插产生32路滤波器输入数据,采用50%的重叠保留法即N2=32,并重叠32点得到并行64路数据,对64路数据做64点DFT运算:X(N)=DFT(x(n)),在实现时采用基2的6级蝶形运算方式完成。其中每一级蝶形运算方式如附图2,其中,为每一级蝶形变换的旋转因子。例如,第一级蝶形变换旋转因子为将它带入蝶形运算公式,在输入为X1(k),X2(k)的情况下,输出为X1(k)+X2(k)、X1(k)-X2(k),把这一运算过程作为子程序,反复调用32次,每次送入不同的端口数据,(0,32)、(16,48)、(8,40)、(24,56)……,端口的排列顺序如附图3,做32次乘加复数运算,得到第一级蝶形变换的输出结果,后面5级蝶形变换依次类推。在具体计算时,当把输入数据分为I、Q两路时X1(k)、X2(k)分别为实数带入计算,本发明中把X1(k)、X2(k)作为复数带入计算,节省了乘加器的资源消耗。通过MATLAB提供的根生余弦函数rcosine计算64路滤波器系数,并将中间32路系数置零,并用16bit数表征得到滤波器系数为(32687,-32539,-32359,32505,32767,-32421,-30895,27963,23295,-16620,-8885,2544,-376,371,-270,163,-163,-270,-371,-376,-2544,-8885,16620,23295,-27963,-30895,32421,32767,-32505,32359,32539,-32687),将滤波器系数乘以64路DFT输出数据,并对运算结果取共轭得到Y(N)。在计算IDFT时,可以直接调用DFT子程序计算IDFT,比较DFT和IDFT的运算公式:
对上式两边同时取共轭,得到
这样,可以先将X(K)取共轭,然后直接调用DFT子程序,最后对DFT结果取共轭并乘以1/N得到序列x(n)。在本方案中将Y(N)作为输入,调用DFT子程序,输出结果取共轭乘以1/64后得到滤波数据。
频域并行滤波器计算复杂度:如果将一次乘法和一次加法各算作一次运算操作的话,64点频域并行滤波经过的计算过程为,64点DFT,64个复数相乘,64个数据IDFT。由于本方法是基2的64点DFT运算,其计算复杂度为x1=5*64log264,64路复数相乘,每个复数相乘用到4次乘法运算及2次加法运算共6次操作,64点IDFT的计算量与64点DFT的计算量一致,则整个64点频域并行滤波的运算复杂度为:C=2*x1+6*64=10*64log264+6*64。本滤波器实现方法主要是对64点并行频域滤波计算复杂度进行优化,降低64点并行滤波器运算复杂度,减少对乘法器DSP的消耗。
在进行系统功能联调时,对滤波器出现的时序问题、频谱功率不足等问题进行修改与完善,并对相关模块进行资源优化与处理,通过与MATLAB仿真程序数据对比,滤波器输出数据与MATLAB仿真输出数据精度差小于1%。
Claims (1)
1.一种高速并行数字匹配滤波器的实现方法,其特征在于包括下述步骤:
(1)通过8PSK调制后的8路数据进行4倍内插,产生32路滤波器输入数据;
(2)通过重叠缓冲方式产生64路滤波器输入数据,并对64路数据做64点DFT;
所述的步骤(2)中,对64路数据做64点DFT时,共有6级蝶形变换,每一级蝶形变换转换因子运算用一个子程序来实现,在每一级运算中反复调用相应子程序模块,每次运算送入不同端口的数据;第一级调用32次转换因子运算子程序rotation1;第二级调用16次转换因子运算子程序rotation2;第三级调用8次转换因子运算子程序rotation3;第四级调用4次转换因子运算子程序rotation4;第五级调用2次转换因子运算子程序rotation5;第六级调用1次转换因子运算子程序rotation6;在每一级蝶形变换中采用输入数据直接以复数相乘加方式完成;
(3)通过MATLAB仿真计算出匹配滤波器系数h(n),计算它们的64点DFT,H(N)=DFT(h(n));并对运算结果进行归一化处理;
(4)使滤波器H(N)的计算结果中间32点系数值置零;
(5)将输入数据与滤波器系数进行频域滤波计算,Y(N)=X(N)H(N),并对运算结果Y(N)取共轭;
(6)将步骤(5)结果作为输入,重复步骤(2)进行64点DFT,并将输出结果取共轭并乘以1/64得到输出序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811596241.1A CN109815546B (zh) | 2018-12-26 | 2018-12-26 | 一种高速并行数字匹配滤波器的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811596241.1A CN109815546B (zh) | 2018-12-26 | 2018-12-26 | 一种高速并行数字匹配滤波器的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109815546A CN109815546A (zh) | 2019-05-28 |
CN109815546B true CN109815546B (zh) | 2022-12-13 |
Family
ID=66602405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811596241.1A Active CN109815546B (zh) | 2018-12-26 | 2018-12-26 | 一种高速并行数字匹配滤波器的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109815546B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115391727B (zh) * | 2022-08-18 | 2023-08-18 | 上海燧原科技有限公司 | 一种神经网络模型的计算方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4117541A (en) * | 1977-11-07 | 1978-09-26 | Communications Satellite Corporation | Configurable parallel arithmetic structure for recursive digital filtering |
US5610944A (en) * | 1992-10-29 | 1997-03-11 | France Telecom | Process and device for segmentation into sub-bands and for reconstruction of a digital signal, and corresponding device |
CN104333348A (zh) * | 2014-11-27 | 2015-02-04 | 中国电子科技集团公司第二十九研究所 | 一种高阶数字滤波系统及方法 |
CN106484658A (zh) * | 2016-09-26 | 2017-03-08 | 西安电子科技大学 | 基于fpga实现65536点脉冲压缩的装置及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7870176B2 (en) * | 2004-07-08 | 2011-01-11 | Asocs Ltd. | Method of and apparatus for implementing fast orthogonal transforms of variable size |
-
2018
- 2018-12-26 CN CN201811596241.1A patent/CN109815546B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4117541A (en) * | 1977-11-07 | 1978-09-26 | Communications Satellite Corporation | Configurable parallel arithmetic structure for recursive digital filtering |
US5610944A (en) * | 1992-10-29 | 1997-03-11 | France Telecom | Process and device for segmentation into sub-bands and for reconstruction of a digital signal, and corresponding device |
CN104333348A (zh) * | 2014-11-27 | 2015-02-04 | 中国电子科技集团公司第二十九研究所 | 一种高阶数字滤波系统及方法 |
CN106484658A (zh) * | 2016-09-26 | 2017-03-08 | 西安电子科技大学 | 基于fpga实现65536点脉冲压缩的装置及方法 |
Non-Patent Citations (7)
Title |
---|
Parallelising Particle Filters with Butterfly Interactions;Kari Heine et;《arXiv:1812.01502.v1》;20181204;第1-35页 * |
基于FPGA的高速并行滤波器设计与实现;文明;《现代导航》;20181015(第05期);第382-386页 * |
基于SRFFT算法的FIR数字滤波器设计及ADSP21160实现;龙凯;《现代电子技术》;20060101(第13期);第51-55页 * |
多路并行FFT算法的FPGA实现技术;占席春等;《现代电子技术》;20151001;第38卷(第19期);第33-37页 * |
星间高速激光通信解调器并行结构设计;郭琦康等;《电子设计工程》;20181020;第26卷(第20期);第10-13页 * |
相移波束形成的FPGA实现;周志娟;《中国优秀硕士学位论文全文数据库》;20120515(第05期);I136-129 * |
高并行度FIR及FFT设计与实现;费超;《中国优秀硕士学位论文全文数据库》;20180815;I135-147 * |
Also Published As
Publication number | Publication date |
---|---|
CN109815546A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6037318B2 (ja) | ソフトウェアで信号に対して1つまたは複数のデジタル・フロントエンド(dfe)機能を実行するための方法およびプロセッサ | |
Chen et al. | Non-maximally decimated analysis/synthesis filter banks: Applications in wideband digital filtering | |
CN1153346C (zh) | 流水线式并行-串行架构最小均方自适应滤波器及其方法 | |
Cooklev | An efficient architecture for orthogonal wavelet transforms | |
CN101741348B (zh) | 多相滤波器、数字信号处理系统和滤波方法 | |
CN109510609B (zh) | 一种低复杂度的稀疏fir低通滤波器的设计方法 | |
Thyagarajan | Introduction to digital signal processing using matlab with application to digital communications | |
Jenkins | Fourier series, Fourier transforms and the DFT | |
CN106936407A (zh) | 频域块最小均方自适应滤波方法 | |
CN109815546B (zh) | 一种高速并行数字匹配滤波器的实现方法 | |
Furtado et al. | On the design of high-complexity cosine-modulated transmultiplexers based on the frequency-response masking approach | |
CN110957996B (zh) | 一种基于abc算法的无乘法器frm滤波器组优化设计方法 | |
CN108270416B (zh) | 一种高阶插值滤波器及方法 | |
Jameil et al. | Efficient FIR Filter Architecture using FPGA | |
Kuzhaloli et al. | FIR filter design for advanced audio/video processing applications | |
Wu et al. | Efficient matrix multiplication methods to implement a near-optimum channel shortening method for discrete multitone transceivers | |
Choo et al. | Two's complement computation sharing multiplier and its applications to high performance DFE | |
CN102347921B (zh) | 接收器以及对接收信号进行均衡处理的方法 | |
JPH10322168A (ja) | 適応有限インパルス応答フィルタ集積回路 | |
Boonyanant et al. | Design and hybrid realization of FIR Nyquist filters with quantized coefficients and low sensitivity to timing jitter | |
CN106341102B (zh) | 一种用于宽带系统的数字式相位非线性校正方法及装置 | |
Patki et al. | Low complexity, low latency resampling of asynchronously sampled signals | |
TW201724089A (zh) | 具有滑動式二階遞迴傅立葉轉換的頻域適應性濾波系統 | |
Meyer-Baese et al. | Infinite impulse response (IIR) digital filters | |
CN116132232B (zh) | 一种用于高速数字通信的多路并行上采样方法 |
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 |