位置:51电子网 » 技术资料 » EDA/PLD

基于FPGA的数字正交混频变换算法的实现

发布时间:2008/5/28 0:00:00 访问次数:1462

0 引 言

传统的正交下变频是通过对模拟i、q输出直接采样数字化来实现的,由于i、q两路模拟乘法器、低通模拟器本身的不一致性、不稳定性,使i、q通道很难达到一致,并且零漂比较大,长期稳定性不好,不能满足高性能电子战设备的要求。为此,人们提出了对中频信号直接采样,经过混频来实现正交数字下变频的方案,这种下变频的方法可以实现很高精度的正交混频,能满足高镜频抑制的要求。采用可编程器件fpga对该算法流程进行实现,能满足在高采样率下的信号时实处理要求,在电子战领域中有着重要的意义。

1 数字正交混频变换原理

所谓数字正交混频变换实际上就是先对模拟信号x(t)通过a/d采样数宁化后形成数字化序列x(n),然后与2个正交本振序列cos(ω0n)和sin(ω0n)相乘,再通过数字低通滤波来实现,如图1所示。

为了能够详细地阐述该算法的fpga实现流程,本文将用一个具体的设计实例,给出2种不同的实现方法(不同的fpga内部模块结构),比较其优劣,最后给出结论。该设计是对输入信号为中频70 mhz,带宽20 mhz的线性调频信号做数字正交混频变换,本振频率为70 mhz(即图1中的2个本振序列分别为cos(2π70mn)和sin(2π70mn)),将其中频搬移到0 mhz,分成实部(real)和虚部(imag)2路信号。然后对该2路信号做低通滤波,最后分别做1/8抽取输出。结构如图2所示。

根据其算法流程在matlab下进行仿真(低通滤波器用切比雪夫一致逼近法进行设计,过渡带为10m~45m,阶数为23),最后2路输出波形如图3所示。

2 基于fpga的常规实现方法

首先用a/d芯片对输入信号进行实时采样,将数据量化为12位有符号数(最高位为符号位)。对于imag和real两路中的其中一个通道而言,乘本振序列模块可用一个16×16的有符号乘法器及一个32×16位的只读rom实现。因为时钟频率为200 mhz,对于序列cos(2π70mn)和sin(2π70mn)只需要在rom中存20个点就可以成为一个周期,固rom的数据深度选32,宽度选16。滤波模块实质是一个“乘累加”结构,23阶的lpf须配置24个乘法器和20个加法器。最后抽取只需在滤波模块输出后每8个点取一个点。

根据这样的流程在ise下编写代码,并用modelsim仿真,所得波形如图4所示。

图4中共有4路输出波形,其中上2路分别为滤波后抽取之前的实部和虚部的输出,数据频率为200 mhz;而下面2路分别为1/8抽取后的实部和虚部的输出,数据频率为200/8=25 mhz。

对上述实现方法的评价:该方法完全按照算法的流程,结构比较清晰,容易理解,也能够最后得到理想的波形。但具有一定的弊端,主要有以下2点:(1)资源耗费太大,该种实现方式实部,虚部通道各需要24个乘法器和20个左右的加法器;(2)难以满足信号实时处理要求的运算速度。对于该方法,流程中所需要的乘法器和加法器都必须工作在200 mhz时钟下,这对于现有的硬件设备(如vertexⅱ)来讲是难以实现的,故需要采用更优化的实现方法,即下面所要介绍的多相滤波结构。

3 运用多相滤波结构进行设计

对于上面所述的常规实现方法,之所以在合理性上存在一定弊端,归其原因是将fpga大量的资源和运算周期都浪费在了不必要的运算点上。因为最后要得到的是时域信号的1/8抽取,即每8个点只保留一个点。因此大可以去寻找一种办法使得fpga只计算需要的点即抽取后的点,直接以25 mhz的速度输出,这样既可以满足运算速度的要求,又能节省资源,这样的方法就是多相滤波的方式。

枋致瞬ㄆ?诸如内插,抽取器中的低通滤波器)的冲击响应为h(n),则其z变换h(z)定义为:

对求和式展开可重写为:

0 引 言

传统的正交下变频是通过对模拟i、q输出直接采样数字化来实现的,由于i、q两路模拟乘法器、低通模拟器本身的不一致性、不稳定性,使i、q通道很难达到一致,并且零漂比较大,长期稳定性不好,不能满足高性能电子战设备的要求。为此,人们提出了对中频信号直接采样,经过混频来实现正交数字下变频的方案,这种下变频的方法可以实现很高精度的正交混频,能满足高镜频抑制的要求。采用可编程器件fpga对该算法流程进行实现,能满足在高采样率下的信号时实处理要求,在电子战领域中有着重要的意义。

1 数字正交混频变换原理

所谓数字正交混频变换实际上就是先对模拟信号x(t)通过a/d采样数宁化后形成数字化序列x(n),然后与2个正交本振序列cos(ω0n)和sin(ω0n)相乘,再通过数字低通滤波来实现,如图1所示。

为了能够详细地阐述该算法的fpga实现流程,本文将用一个具体的设计实例,给出2种不同的实现方法(不同的fpga内部模块结构),比较其优劣,最后给出结论。该设计是对输入信号为中频70 mhz,带宽20 mhz的线性调频信号做数字正交混频变换,本振频率为70 mhz(即图1中的2个本振序列分别为cos(2π70mn)和sin(2π70mn)),将其中频搬移到0 mhz,分成实部(real)和虚部(imag)2路信号。然后对该2路信号做低通滤波,最后分别做1/8抽取输出。结构如图2所示。

根据其算法流程在matlab下进行仿真(低通滤波器用切比雪夫一致逼近法进行设计,过渡带为10m~45m,阶数为23),最后2路输出波形如图3所示。

2 基于fpga的常规实现方法

首先用a/d芯片对输入信号进行实时采样,将数据量化为12位有符号数(最高位为符号位)。对于imag和real两路中的其中一个通道而言,乘本振序列模块可用一个16×16的有符号乘法器及一个32×16位的只读rom实现。因为时钟频率为200 mhz,对于序列cos(2π70mn)和sin(2π70mn)只需要在rom中存20个点就可以成为一个周期,固rom的数据深度选32,宽度选16。滤波模块实质是一个“乘累加”结构,23阶的lpf须配置24个乘法器和20个加法器。最后抽取只需在滤波模块输出后每8个点取一个点。

根据这样的流程在ise下编写代码,并用modelsim仿真,所得波形如图4所示。

图4中共有4路输出波形,其中上2路分别为滤波后抽取之前的实部和虚部的输出,数据频率为200 mhz;而下面2路分别为1/8抽取后的实部和虚部的输出,数据频率为200/8=25 mhz。

对上述实现方法的评价:该方法完全按照算法的流程,结构比较清晰,容易理解,也能够最后得到理想的波形。但具有一定的弊端,主要有以下2点:(1)资源耗费太大,该种实现方式实部,虚部通道各需要24个乘法器和20个左右的加法器;(2)难以满足信号实时处理要求的运算速度。对于该方法,流程中所需要的乘法器和加法器都必须工作在200 mhz时钟下,这对于现有的硬件设备(如vertexⅱ)来讲是难以实现的,故需要采用更优化的实现方法,即下面所要介绍的多相滤波结构。

3 运用多相滤波结构进行设计

对于上面所述的常规实现方法,之所以在合理性上存在一定弊端,归其原因是将fpga大量的资源和运算周期都浪费在了不必要的运算点上。因为最后要得到的是时域信号的1/8抽取,即每8个点只保留一个点。因此大可以去寻找一种办法使得fpga只计算需要的点即抽取后的点,直接以25 mhz的速度输出,这样既可以满足运算速度的要求,又能节省资源,这样的方法就是多相滤波的方式。

枋致瞬ㄆ?诸如内插,抽取器中的低通滤波器)的冲击响应为h(n),则其z变换h(z)定义为:

对求和式展开可重写为:

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!