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

发布者:Quail最新更新时间:2007-06-27 来源: 国外电子测量技术关键字:采样  乘法  低通  抑制 手机看文章 扫描二维码
随时随地手机看文章

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)定义为:

对求和式展开可重写为:

式(3)即为数字滤波器件H(z)的多相滤波结构,将其运用于抽取器,并且注意到抽取器的等效关系,则本设计FPGA内部(其中一个通道)可用图5所示的结构进行设计。

如图5所示,在200 MHz的时钟频率下,输入的采样数据以8点为周期依次打入8个通道,这样每个通道中的数据周期为200/8=25 MHz。数据进入通道后首先要乘以正交系数,在本设计中正交sin和cos表各是以20个点为一个周期,必须按照一定的等效规律将20个点排到8个通道中去,考虑到5×8=40正好是2个周期,可令N=0~39,将所对应的40个正交系数分成5组用状态机的方式打入8个通道中去,然后做乘累加。这里仍然用长度为24的滤波器,也要按照一定的规律将24个滤波系数(3个一组,见图5)排列到8个通道中去,原则是要保证在任何时刻8个通道的累加和要完全等效于原方法流程中滤波后的1/8抽取(可以验证,上面的系数排列方式是满足这一要求的)。很显然,这样做后每个通道的时钟频率都是原来频率的1/8,并且数据是完全并行处理的。乘法器和加法器都工作在25 MHz时钟频率下,可以很容易实现,且程序更加高效和科学。

4 进一步优化的方法

采用了多相滤波方式后,每个通道需要4个乘法器。一般情况下,乘法器的延迟大概是在7~10 ns。而在25 MHz时钟频率下,完全可以将乘法器进行复用,即在40 ns周期内完成4次乘法运,算包括1次乘正交系数,3次乘滤波系数。这样每个通道只需要一个乘法器就可以。于是整个设计中所需要的乘法器可以降为16个(实部、虚部各8个),加法器则需要46个(各23个)。

5 最终仿真波形

根据上面的多相滤波思想,并采用乘法器复用,在ISE下编写VHDL代码,用Modelsim仿真得到最终的波形,如图6所示。

用Synplify进行综合布线后得到的资源报告如下(选用的器件是VertexⅡxc2v1000):


6 结束语

本文提出的基于FPGA的数字正交混频下变换的实现方法,对比了2种不同的设计方案以及相应的FPGA内部结构,分析了各自利弊;最后,着重介绍了其中效率较高并且较为科学的多相滤波结构。在做实时信号处理时,该结构能够使资源优化,并且满足运算速度的要求,实现起来也不复杂,在实际工程中有很强的运用价值。

关键字:采样  乘法  低通  抑制 引用地址:基于FPGA的数字正交混频变换算法的实现

上一篇:基于DSP的微弱信号检测采集系统设计
下一篇:未来25年DSP将全面“入侵”你的生活

推荐阅读最新更新时间:2024-05-02 20:36

用TIM1产生6路ADC,用CCR4触发ADC1的注入通道采样
简介:这几天一直在使用STM32来写sensorless BLDC的驱动框架,那么必须会用到TIM1的CCR1/CCR2/CCR3产生的六路互补PWM,以及用CCR4来产生一个中断,用来在PWM-ON的时候产生中断进行过零检测,以及相电流的检测等。 这几天一直在测试PWM,CCR4的中断,ADC1的采样触发+DMA等功能,现在也了解的差不多了,先记录下来,先看下我的一些设置,TIM1设置: 1 /* Time Base configuration ,init time1 freq*/ 2 TIM_TimeBaseStructure.TIM_Period = Period; 3 TIM_TimeBaseStruct
[单片机]
示波器的采样率和存储深度在实际操作有什么用?
上周我们调研了泰克(Tektronix)和力科(LeCroy)这两个牌子的2/4/8通道的示波器的基本指标,如带宽、通道数、采样率、上升时间以及记录长度,如图1所示。 图 1 泰克(Tektronix)和力科(LeCroy)典型的示波器 今天我们主要来讨论一下采样率和记录长度的关系。首先,记录长度也被称为存储深度,它表征的是示波器可以存储的最大点数。 在使用示波器的时候,记录长度和我们的操作有什么关系呢?且听我慢慢道来。 图 2 示波器示意图 如图 2 所示为示波器的示意图,屏幕上横向有10个格子,也就是10div。当我们旋示波器时基旋钮的时候,改变的就是每一个div代表的时间长度。 例如,10ms/div,即横向的每
[测试测量]
示波器的<font color='red'>采样</font>率和存储深度在实际操作有什么用?
非常见问题第188期:抑制复杂的FM频段传导EMI的策略
问题: 如何抑制来自开关电源的复杂的FM频段传导辐射? 答案: 虽然EMI屏蔽和铁氧体夹是较受欢迎的EMI解决方案,但它们价格昂贵、体积笨重,有时使用效果不理想。我们可以通过了解FM频段EMI噪声的来源,以及利用电路和PCB设计技术从源头进行抑制,以降低这些噪声。 电源网络的EMI性能在噪声敏感型系统中至关重要,例如汽车电路,尤其是涉及开关模式电源(SMPS)的情况下。工程师们可能需要花费大量时间来减少传导辐射(CE)和电磁辐射骚扰(RE)。特别是,在测量CE时,FM频段(76 MHz至~108 MHz)可能是最难达到要求并通过测试的区域。设计人员可能需要花费大量时间来解决这一问题。为何FM频段中的CE噪声如
[电源管理]
非常见问题第188期:<font color='red'>抑制</font>复杂的FM频段传导EMI的策略
STM32 ADC采样时间、采样周期、采样频率计算方法
ADC转换就是输入模拟的信号量,单片机转换成数字量。读取数字量必须等转换完成后,完成一个通道的读取叫做采样周期。采样周期一般来说=转换时间+读取时间 。而转换时间=采样时间+12.5个时钟周期。采样时间是你通过寄存器告诉 STM32 采样模拟量的时间,设置越长越精确 一 STM32 ADC采样频率的确定 1. :先看一些资料,确定一下ADC的时钟: (1),由时钟控制器提供的ADCCLK时钟和PCLK2(APB2时钟)同步。CLK控制器为ADC时钟提供一个专用的可编程预分频器。 (2) 一般情况下在程序 中将 PCLK2 时钟设为 与系统时钟 相同 RCC_HCLKConfig(RCC_SYSCLK_Div1); RC
[单片机]
关于STM32F0系列多路ADC单独采样数据相同问题的处理
先看一下,大家认为“正确”的代码 void MYADC_init(void) { //时钟使能 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); //GPIO配置 GPIO_InitTypeDef PORT_ADC; PORT_ADC.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3; PORT_ADC.GPIO_Mode = GPIO_Mode_AN; PORT_ADC.GPIO_PuPd = GPIO
[单片机]
利用低功耗微控制器开发FFT应用
  今天的低功耗微控制器(μC)也开始集成原先只存在于大型微处理器、ASIC和DSP中的外设功能,使我们有可能以很低的功耗实现复杂的算术运算。本文讨论一种快速傅立叶变换(FFT)应用,并在一个含有单周期硬件乘法器的低功耗μC上实现该应用。 这个FFT应用实时计算一路输入电压(图1中的VIN)的频谱。为完成该任务,用一片模数转换器(ADC)对VIN进行采样,获得的采样传送给μC。然后,μC对这些采样执行256点FFT运算,获得输入电压的频谱。为便于检测,μC将计算出的频谱数据传送给PC,由PC实时显示出来。 图1. 利用FFT应用计算输入电压的频谱。 该FFT应用的固件针对MAXQ2000系列中的一款16位、低
[应用]
如何组合使用低通滤波器和ADC驱动器获取20 V p-p信号
问题: 为何要组合使用低通滤波器(LPF)和模数转换器(ADC)驱动器? 答案: 为了减小模拟信号链的尺寸,降低其成本,并提供ADC抗混叠保护(ADC采样频率周围频段中的ADC输入信号不受数字滤波器保护,必须由模拟低通滤波器(LPF)进行衰减)。20 V p-p LPF驱动器一般用于工业、科技和医疗(ISM)设备中,该设备必须使用具有更低满量程输入的高速ADC对传统的20 V p-p信号范围进行数字化处理。 简介 通过驱动ADC实现优化的混合信号性能,这是一大设计挑战。图1所示为标准的驱动器ADC电路。在ADC采集期间,采样电容将反冲RC滤波器中指数衰减的电压和电流。混合信号ADC驱动器电路的最佳性能
[模拟电子]
如何组合使用<font color='red'>低通</font>滤波器和ADC驱动器获取20 V p-p信号
基于FPS200传感器和DSP的指纹识别系统设计
0 引言 指纹以其唯一性、稳定性及非遗失性而成为个人身份识别的有效手段。计算机图像处理和模式识别技术的发展使指纹自动识别技术更加成熟。指纹识别技术主要是通过分析指纹的局部特征,从中抽取详尽的特征点,从而可靠地确认个人身份。目前的多数指纹识别系统是将指纹图像采集到计算机中,然后利用计算机进行识别。但该方法不但占用了主机系统的资源,同时也限制了指纹图像处理的速度。而本文介绍的基于DSP的指纹识别系统不但可脱机工作,也可通过接口进行二次开发,并可快捷地整合到其它系统中。该系统采用TI公司生产的DSP芯片TMS320VC5416(以下简称:C5416)作为核心处理器,同时选择Veridicom公司的固态指纹传感器件FPS200。 1
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved