专利摘要
专利摘要
本发明提出了一种基于FPGA的高阶FIR滤波器的实现方法,用于解决现有高阶FIR多相滤波实现方法中高阶FIR滤波器对FPGA中逻辑单元占用多的技术问题。实现方法包括:选择原型滤波器的参数;设计原型滤波器h(n);对原型滤波器h(n)进行多相分解,得到多相滤波器;对每个多相滤波器进行模块划分;将多相滤波器系数存储到模块ROM中;读取模块ROM中的多相滤波器的系数;通过系统时钟控制得到的模块RAM的读写使能、写地址控制信号和读地址控制信号,对输入数据进行缓存和读取;采用乘法累加模块对多相滤波器系数和输入数据进行乘加运算并将运算结果输出。本发明对FPGA内逻辑单元的占用少,简单高效,易于实现。
说明书
技术领域
本发明属于数字信号处理技术领域,涉及一种高阶FIR数字滤波器的方法,具体涉及一种基于FPGA的高阶FIR滤波器的实现方法,可用于数字信道化中的信号滤波。
背景技术
高性能数字信道化器可以有效地提升卫星转发器的灵活性和延伸性,完成通信链路中各个子信道之间的信号交换,同时大大地改善系统误比特性能,因而成为宽带卫星移动通信应用领域的迫切需求。然而各个子信道信号在传输过程中很容易受到噪声以及其他子信道信号的干扰,这会导致整个通信系统性能急剧恶化,如何有效地滤除噪声和带外干扰并最大程度地还原每个通信子信道的信号,是宽带卫星移动通信领域的重要研究课题之一。
数字滤波器的最常用实现方法有无限长脉冲响应滤波器IIR和有限长脉冲响应滤波器FIR两种,其中FIR滤波器由有限个抽头系数构成,可以在幅度特性随意设计的同时,有着精确、严格的线性相位,保证了系统的稳定性。当系统对于滤波器的平坦度和截止速度要求比较高的情况下,FIR滤波器的阶数也会随之变高,高阶FIR滤波器在各个通信系统中都有着广泛的应用。
现场可编程门阵列FPGA,它是在PAL、GAL或CPLD等可编程器件的基础上进一步发展的产物,作为专用集成电路(ASIC)领域中的一种半定制电路,它既具有门阵列的高逻辑密度和高可靠性,又具有可编码逻辑器件的用户可编程特性,使得高阶FIR滤波器得以实现。
目前基于FPGA的高阶FIR滤波器实现方案主要有三种:基于分布式算法的FIR滤波器、频域上基于快速傅里叶变换(Fast Fourier transform,FFT)的FIR滤波器和时域上基于乘法器结构的FIR滤波器,其中,对于千阶甚至万阶的FIR滤波器来说,基于分布式算法的FIR滤波器消耗的FPGA逻辑资源是巨大的。基于快速傅里叶变换的FIR滤波器可以有效地降低FPGA逻辑资源的使用,但是数据处理延时太大,降低了系统的整体性能。时域上基于乘法器结构的FIR滤波器采用寄存器对输入信号进行缓存,通过乘法运算和加法运算完成滤波过程,保证了数据实时处理。例如孙重磊、王大庆在Electonic Sci.&Tech./Nov.15,2012上发表了名称为基于FPGA的高阶FIR抽取滤波器有效实现结构的文章,公开了一种改进的基于乘法器结构的FIR滤波器,它将高阶FIR滤波器和多相滤波结构相结合,采用分时复用技术,通过提高FPGA工作时钟频率,对降采样后的滤波路数和每一路FIR滤波器中的乘积和操作均复用一个乘法器,与传统的基于乘法器结构的FIR滤波器相比,既保证了数据实时高速处理,又充分利用了FPGA中的乘法器单元。但是,该方法在完成多相滤波的过程中仍然占用了大量的逻辑单元。
发明内容
本发明的目的在于克服上述现有技术存在的缺陷,提出了一种基于FPGA的高阶FIR滤波器的实现方法,结合多相滤波结构,使用FPGA中RAM资源对输入数据进行缓存和读取,采用系统时钟控制滤波器系数和输入数据做乘法累加运算,并将运算结果输出,在保证系统数据实时处理的同时,有效地减少了高阶FIR滤波器对FPGA中逻辑单元的占用。
为实现上述目的,本发明采用的技术方案包括如下步骤:
1.一种基于FPGA的高阶FIR滤波器的实现方法,其特征在于包括以下步骤:
(1)、选择原型滤波器参数;
(2)、根据选择出的原型滤波器参数,采用频域采样法和汉明窗函数法,设计阶数为N的原型滤波器h(n),其中N>500,实现步骤为:
(2a)采用频域采样法对根升余弦滤波器的频谱函数进行采点,得到频域样点;
(2b)对频域样点进行傅里叶逆变换,得到时域样点;
(2c)采用汉明窗函数法对时域样点进行截取,得到原型滤波器h(n);
(3)、对原型滤波器h(n)进行多相分解,得到M个阶数为N/M的多相滤波器,其中2≤M<N;
(4)、对得到的每个多相滤波器进行模块划分,得到滤波器系数模块ROM、数据缓存和读取模块RAM和DSP48E1乘法累加模块;
(5)、将多相滤波器的系数按顺序方式存储到FPGA中的模块ROM中;
(6)、通过系统时钟周期性地读取步骤(5)中存储在ROM模块中的多相滤波器的系数;
(7)、通过系统时钟控制模块RAM,对输入数据进行缓存和读取,实现步骤为:
(7a)通过系统时钟控制,得到模块RAM的读写使能wen、写地址控制信号waddr和读地址控制信号raddr;
(7b)由得到的读写使能wen和写地址控制信号waddr,将输入数据缓存到模块RAM中;
(7c)由得到的读写使能wen和读地址控制信号raddr,对缓存在模块RAM中的输入数据进行读取;
(8)、将步骤(6)中读出的多相滤波器的系数和步骤(7c)中读出的输入数据,输入到FPGA中的DSP48E1乘法累加模块中进行运算,并将运算结果输出。
本发明与现有技术相比,具有如下优点:
本发明由于在对输入信号进行缓存和读取的过程中,采用通过系统时钟控制得到的模块RAM的读写使能、写地址控制信号和读地址控制信号,对FPGA中的RAM资源进行读写操作,与现有技术中使用逻辑单元对输入信号进行缓存和读取的方法相比,在保证系统数据实时处理的同时,有效地降低了FPGA中逻辑单元的占用,简单高效,易于实现。
附图说明
图1为本发明的实现流程框图;
图2为本发明的多相滤波器的实现框图。
具体实施方式
以下结合附图和实施例,对本发明作进一步的详细描述。
参照图1和图2,本发明包括以下步骤:
步骤1,选择原型滤波器参数。
原型滤波器的参数主要根据语音信号处理系统、图像信号处理系统和数字信道化器系统的性能要求选择,本实施例根据数字信道化器系统的性能要求选择原型滤波器参数,数字信道化器系统的性能要求如下:
(1).通道带宽为160MHz,划分成64个子信道;
(2).通道内有效带宽为120MHz,包括48个子信道;
(3).子信道带宽为2.5MHz;
(4).子信道间保护间隔为327KHz;
选择的原型滤波器参数如表1所示:
表1原型滤波器参数
步骤2,根据步骤1中选择的原型滤波器参数,采用频域采样法和汉明窗函数法,设计阶数为N的原型滤波器h(n),其中N>500,实现步骤为:
(2a)采用频域采样法对根升余弦滤波器的频谱函数进行采点,得到频域样点,根升余弦滤波器的频谱函数表达式为:
其中,Ts为符号周期,α为根升余弦滤波器的滚降因子。
(2b)对频域样点进行傅里叶逆变换,得到时域样点,傅里叶逆变换表达式为:
(2c)采用汉明窗函数法对时域样点进行截取,得到原型滤波器h(n),汉明窗函数表达式为:
w(m)=0.54-0.46×cos(2×π×m/(N-1)) (2-3)
其中,m是自变量,且0≤m≤N-1。
本实施例中原型滤波器h(n)的阶数N=1600,符号周期Ts=(1/2.5M)s,根升余弦滤波器的滚降因子α=0.13。
步骤3,对原型滤波器h(n)进行多相分解,得到M个阶数为N/M的多相滤波器,其中2≤M<N。实现步骤如下:
(3a)对原型滤波器h(n)的系统函数 进行变形:
其中,L=N/M;
(3b)采用Ek(zM)对变形后的原型滤波器h(n)的系统函数中的 进行等价代换,得到原型滤波器h(n)的系统函数的多相分解形式:
其中,k为自变量,且0≤k≤M-1;
(3c)对原型滤波器h(n)的系统函数的多相分解形式进行分析,得到了M个阶数为L的多相滤波器,其表达式为:
hk(n)=h(nM+k) (3-3)
本实施例中多相滤波器的个数M=64,每个多相滤波器的阶数L=25。
步骤4,对得到的每个多相滤波器进行模块划分,得到滤波器系数模块ROM、数据缓存和读取模块RAM和DSP48E1乘法累加模块。
多相滤波器的实现过程如图2所示。
步骤5,将多相滤波器的系数按顺序方式存储到FPGA中的模块ROM中。
步骤6,通过系统时钟周期性地读取步骤5中存储在ROM模块中的多相滤波器的系数。
步骤7,通过系统时钟控制模块RAM,对输入数据进行缓存和读取,实现步骤为:
(7a)通过系统时钟控制,得到模块RAM的读写使能wen、写地址控制信号waddr和读地址控制信号raddr。
通过系统时钟控制,得到模块RAM的写地址控制信号waddr,是通过系统时钟对初始值为0的信号waddr进行模N/M递增计数实现的,即每当系统时钟脉冲到来,waddr递增1,当waddr等于N/M-1,则在下一个系统时钟脉冲到来时,将waddr重置为0,如此循环往复;
通过系统时钟控制,得到模块RAM的读地址控制信号raddr,是通过系统时钟对初始值为当前写地址的信号raddr进行模N/M递减计数实现的,即每当系统时钟脉冲到来,raddr递减1,当raddr等于0,则在下一个系统时钟脉冲到来时,将raddr重置为N/M-1,如此循环往复。
(7b)当读写使能wen为1时,通过写地址控制信号waddr对写地址进行更改,再将输入数据din按照更改后的写地址依次写入到模块RAM中。
(7c)当读写使能wen为0时,通过读地址控制信号raddr对读地址进行更改,再将缓存在模块RAM中的数据按照更改后的读地址依次读出到寄存器dout中。
步骤8,将步骤6中读出的多相滤波器的系数和步骤(7c)中读出的输入数据,输入到FPGA中的DSP48E1乘法累加模块中进行运算,并将运算结果输出。
本发明提出的基于FPGA的高阶FIR滤波器的实现方法结合多相滤波结构,使用FPGA中的RAM资源对输入数据进行缓存和读取,用系统时钟控制滤波器系数和输入数据做乘法累加运算,并将运算结果输出。在保证系统数据实时处理的同时,有效地减少了高阶FIR滤波器对FPGA中逻辑单元的占用。
一种基于FPGA的高阶FIR滤波器的实现方法专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0