用成型滤波器组提高测距精度的一种方法

发布者:温暖的拥抱最新更新时间:2014-09-22 来源: ednchina关键字:滤波器  测距  FPGA 手机看文章 扫描二维码
随时随地手机看文章

  在许多测距系统中,用户端接收到基站发送的帧信号后,便以该帧中特定的位置(称为帧参考时标)为基准发送“回复帧"给基站。基站收到回复帧后,提取它的帧参考时标,并以其作为测距的依据。

  通常用户端的系统时钟精度较低(本文提到的系统时钟均指用户端的系统时钟),因此接收到的帧参考时标会存在误差。在用户端经过计算估计出帧参考时标的误差,再用该误差调整发送回复帧的时刻,可实现精确测距。因此测距精度取决于两个因素:帧参考时标误差的估计精度和回复帧发送时刻的调整精度。本文主要讨论如何提高回复帧发送时刻的调整精度。回复帧是由基带码组成的,因此下文中讲的发送时刻的调整均指基带码发送时刻的调整。

  发送时刻的调整精度是由发送时刻的调整步长决定的。在一般的数字系统中,发送时刻的调整步长不小于一个系统时钟的周期。本文利用Altera公司的EP20K300EQC240-3型FPGA器件设计了一种成型滤波器组,使发送时刻的调整步长缩短为时钟周期的五分之一,从而将发送时刻的调整精度大幅度地提高。

  1 成型滤波器组调整发送时刻的原理

  成型滤波器组的设计原理图如图1所示。成型滤波器组包括一

组成型滤波器。相同的发送基带码经成型滤波器组中不同的成型滤波器滤波后,会产生不同延时的发送数据波形。发送数据波形的延时不同,则发送时刻也不同。这就是说,相同的基带码经过不同的成型滤波器滤波后可产生不同发送时刻的波形。因此,以测距误差作为选择字,根据误差的大小选择相应的成型滤波器,就可间接地调整发送基带码的时刻。

  成型滤波器组的设计原理图

  图1 成型滤波器组的设计原理图

  2 用FPGA设计成型滤波器
 
  通常,系统时钟频率远高于基带码的速率,因此在成型滤波前,要在基带码的相邻码之间进行内插。内插的方式有多种,通常的内插方法是在发送的基带码的相邻码之间内插“0”。将基带码插“0”后,与低通滤波器的冲激响应卷积,再送到D/A转换器转换成模拟波形就可以实现滤波成型。设计低通滤波器时,为了得到较好的波形,通常采用高阶的FIR滤波器。如果在FPGA中用逻辑单元实现高阶FIR滤波器,会占用大量的逻辑单元。比如在Altera公司的FPGA中用逻辑单元实现一个50阶的FIR滤波器,需要26个乘法器和50个加法器,要占用一千多个逻辑单元。而本文利用FPGA中的ROM,用查表的方法设计同样的FIR滤波器,则只需占用几十个逻辑单元。图2是成型滤波器的设计原理图。该设计包括用数学工具——MATLAB预先设计的部分和在FPGA中实现的部分,MATLAB完成成型滤波后的数据波形文件的设计。FPGA存储设计好的数据波形文件,并用发送的基带码选通相应波形的存储地址,完成滤波成型。

   成型滤波器的设计原理图

  图2 成型滤波器的设计原理图

  首先用MATLAB设计数据波形文件。设系统基带码速率为N MHz,系统时钟频率为B MHz。FIR滤波器的阶数为(C为奇数,可根据滤波器的阶数要求进行选择)。FIR滤波器的系数可通过MATLAB进行设计。将C个基带码排列组合成2C种情况。对于每种组合,在C个基带码的相邻码间内插-1个0后,与设计好的滤波器的冲激响应卷积。卷积结果的中间个数据波形值就是该C个基带码组合的中间基带码(简称中间码)的滤波结果值。这个数据波形值可以存储在以该种组合(C个码)为基地址的ROM中。MATLAB可以计算出所有组合下C个基带码的中间码的滤波结果值。
 
  FPGA将所有滤波结果值存入ROM,将每个滤波结果值所对应的基带码组合作为该滤波结果值的存储地址。系统运行时,用一个C位移位寄存器存储C个基带码,作为地址选通ROM,则ROM输出的滤波结果值是C个基带码的中间码的滤波结果值。随着基带码依次到达移位寄存器,移位寄存器中C个基带码的中间码也被后面的基带码依次替换, ROM输出的将是依次到达的中间码的滤波结果值,从而实现基带码的滤波成型。

  图2中ROM存储的数据是设计一个成型滤波器得到的波形数据,为了与下面成型滤波器组的存储数据相区别,将图2中ROM存储的所有波形数据统称为一个子波形。

  3 在FPGA中用成型滤波器组调整发送时刻的方法

  图3是成型滤波器组的实现方案图。图中的FPGA的ROM中存储了E个子波形,称为一个成型滤波器组。第一个子波形就是图2所设计的子波形,称为原来的子波形。之后的E-1个子波形是原来的子波形以时钟周期的1/E循环左移1,2,...,E-1次得到的。如何得到这些移位后的子波形是设计的关键。由于波形的移位在MATLAB中是以数值的变化体现出来的,而通过MATLAB计算可以得到数值精度很高的波形数据,所以用MATLAB设计的波形,移位可以远小于时钟周期,因此可以很容易用MATLAB得到以时钟周期的1/E循环左移后的各个子波形。

 成型滤波器组的实现方案图

  图3 成型滤波器组的实现方案图

  各移位后的子波形按循环左移大小依次存储在ROM中。因此一个时钟周期的延时被划分成了E个区间,将测距误差除以时钟周期,得到余数R,计算出R落在了E个区间中的哪个。选择该区间的子波形,将该子波形送到D/A转换器转换成模拟波形后再输出,就可将发送时刻的调整步长降到时钟周期的1/E。实际设计时,在MATLAB中将FIR滤波器的冲激响应以时钟周期的1/E循环左移,再与插零后的基带码卷积,就实现了子波形的循环左移。而通常的系统实时产生的波形是由系统时钟控制的,延时不会小于一个时钟周期,因此其调整精度远不如用MATLAB设计的成型滤波器组的方法。[page]
 
  上面介绍的是子波形循环左移的方法,也可以将子波形循环右移,道理是一样的。

  4 实例与仿真

  4.1 子波形的设计与仿真

  本设计所应用的测距系统的基带码速率为2MHz,系统时钟频率为20MHz,因此在2MHz基带码的相邻比特间内插个“0”,然后通过阶(C选为5)的FIR滤波器就可实现成型滤波。5个基带码可排列成32种组合,图4是其中的一种基

带码组合——11011的成型滤波的仿真结果。图中显示了该组合插零后与成型滤波器的冲激响应进行卷积的过程。可以看出,卷积后的中间10点数据波形正好是插零前5个基带码中间的信号0经滤波器平滑后的波形。这10点数据波形存在以11011为基地址的ROM中。

  基带码组合11011的成型滤波的仿真结果

  图4 基带码组合11011的成型滤波的仿真结果

  4.2 成型滤波器组的设计

  由于时钟周期为50ns,当要求最小调整步长不大于10ns时,在MATLAB中将FIR滤波器的冲激响应以时钟周期的1/5循环左移,再与插零后的基带码进行卷积,就可以得到以时钟周期的1/5循环左移0,1,2,3,4次后形成的五个子波形。图5是组合为11011的基带码经上述方式产生的五个子波形的图。

   组合为11011的基带码经上述方式产生的五个子波形的图

  图5组合为11011的基带码经上述方式产生的五个子波形的图

  从图5中中央的两条虚线可以看出,经五次移位后的第五个子波形的0码与原来的子波形的0码相比,延时为4/5个时钟周期。这样就将调整发送时刻的步长减小到时钟周期的1/5,大幅度提高了测距精度。
 
  假设估计出的测距误差是72ns,如果不采用成型滤波器的方法,调整步长为50ns,调整一个时钟后,会产生72-50=22ns的调整精度误差。而采用成型滤波器后,调整的步长缩小为10ns,在发送时将第三个数据波形送到D/A转换器转换成模拟波形,再将模拟波形送出就可使调整精度的误差降低到72-50-2×10=2ns。图6是采用成型滤波器组前后调整精度的误差对比图(假设测距误差估计服从高斯分布,均值为25ns,标准差为25ns)。

  采用成形滤波器组前的发送调整误差

  (a) 采用成形滤波器组前的发送调整误差

  采用成形滤波器组后的发送调整误差

  (b) 采用成形滤波器组后的发送调整误差

图6 采用成型滤波器组前后调整精度的误差对比图

  经图中的数据计算得出:在不采用成型滤波器组的情况下,发送调整误差的标准差为18.17ns。采用成型滤波器组后,发送调整误差的标准差为4.42ns,是不采用成型滤波器组时的。

  成型滤波器组占用ROM的数量是由发送时刻调整的精度、成型滤波器的阶数、波形数值量化的比特数、每个基带码的时钟采样点个数等因素决定的。对上面的例子而言,每五个基带码组合要生成10个8比特的波形数据,因此所存储的地址长度为4比特,存储单位是字节。五个基带码共有32种组合,所以一个子波形的地址长度为4+5=9位。在调整步长是时钟的1/5的要求下,要另加3比特基地址来存储五个子波形。所以整个成型滤波器组总共消耗的ROM的数量为2(4+5+3)×8=32768比特。

  除采用数字电路方式外,许多系统还用模拟电路的方式调整发送时刻:将基带码通过模拟触发电路发送,而测距误差通过模拟触发电路控制基带码的发送时刻。这种方式在理论上调整发送时刻的步长更小,但与数字电路相比,易受到温度、噪声等多种因素的影响,可靠性差得多。而本文提出的方法是用数字的方式实现的,稳定性和可靠性均有无可比拟的优越性。

  本文设计的成型滤波器充分地利用了硬件中所剩的ROM资源,占用了很少的逻辑单元。用该成型滤波器构成的成型滤波器组,可将基带码发送时刻的调整步长减小到时钟周期的几分之一,甚至十几分之一,因此大幅度提高了发送时刻的调整精度。本文的设计已被应用于某个测距系统中,取得了很好的效果。该设计还可应用于其它许多测距系统中,如定位系统、二次雷达等,因此有较高的实用价值。

  参考文献

  1仵国锋,程 博, 胡捍英. 一种高速FIR成型滤波器的设计和实现. 无线通信技术,2001(2)

  2 Elliott D. Kaplan著, 邱致和,王万义译.GPS原理与应用.北京:电子工业出版社,2002 

关键字:滤波器  测距  FPGA 引用地址:用成型滤波器组提高测距精度的一种方法

上一篇:系统互通性的模型与测量研究
下一篇:电感智能数字化测量

推荐阅读最新更新时间:2024-03-30 22:47

红外动目标识别跟踪系统的DSP+FPGA实现
  与通用集成电路相比,ASIC芯片具有体积小、重量轻、功耗低、可靠性高等几个方面的优势,而且在大批量应用时,可降低成本。现场可编程门阵列(FPGA)是在专用ASIC的基础上发展出来的,它克服了专用ASIC不够灵活的缺点。与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。DSP+FPGA结构最大的特点是结构灵活,有较强的通用性,适于模块化设计,从而能够提高算法效率;同时其开发周期较短,系统易于维护和扩展,适合于实时数字信号处理。本文介绍的就是一种可以应用于军事侦察的红外动目标识别跟踪系统的设计。    设计任务及要求   红外动目标跟踪与识别系统的输入
[嵌入式]
红外动目标识别跟踪系统的DSP+<font color='red'>FPGA</font>实现
基于FPGA的一种新型8通道数据采集系统
数据采集是通过采样电路将输入的模拟信号转换成离散信号,并送入CPU进行处理,已经广泛应用在现代工业控制的各个方面。数据采集的速度和精度,很大程度上影响到整个系统的工作能力。常用数据采集方案是以MCU或者DSP为核心,控制数据采集并对数据进行相应处理,A/D转换器的启动、通道选择、数据传输和读取均依靠软件编程来实现。由于受MCU或者DSP执行指令时间的限制,这种采集方案的速率和效率较低,难以适应各种高速信号采集的需要,另外,各种复杂系统中,CPU要协调各外围设备工作时序,收发指令,同时还要完成各种控制算法。若采集数据量较大,占用大量CPU资源,限制CPU工作能力,则会大大降低整个系统的工作效率。 本文针对应用于伺服控制系统的8通道
[嵌入式]
基于<font color='red'>FPGA</font>的一种新型8通道数据采集系统
Transceiver对电源文波噪声的要求
XILINX在Transceiver用户手册里提出了对模拟电源的文波噪声要求:10mV p-p  10kHz~80Mhz。大多数客户一看到该指标要求的第一反应是——我做不到,XILINX的Tran sceiver不好,对电源要求太严了!   事实是这样的吗?不是。XILINX在其用户手册里给出该指标,是为了方便客户作电源设计。因为,有数据可 以参考了。很多其他供应商没有给出该指标要求,不等于没有要求。他们往往是通过应用笔记等其他形式规定具体 的滤波网络来达到他们的要求,这样反而减小了客户的应用灵活性,往往是不可能严格实现的。因为客户的器件库 不见得有供应商推荐的器件。   随着Tra
[电源管理]
Transceiver对电源文波噪声的要求
用PAC-Designer 设计滤波器
用PAC-Designer 设计滤波器 近年来,数字系统的EDA技术及可编程逻辑器件的发展极大地改变了传统电子系统的设计思想和实现方法,但是模拟电路的设计手段似乎还停滞不前。现在,由美国Lattice公司推出的模拟电路在系统可编程技术ispPAC使这种情况发生了变化,为模拟电路的设计自动化翻开了新的一页。 ispPAC 及PAC-Designer的特点   与数字系统的在系统可编程技术类似,模拟电路的在系统可编程技术允许设计者使用开发软件在计算机中设计和修改模拟电路,并通过编程电缆将设计方案下载到可编程模拟器件中,从而加快设计进程,提高系统设计的准确性,为电子系统设计人员开发产品提供了一条崭新的途径。目前由Lattice公
[模拟电子]
用PAC-Designer 设计<font color='red'>滤波器</font>
自动售货机控制模块VHDL程序设计及FPGA实现
  近年来,随着集成电路技术的迅猛发展,特别是可编程逻辑器件的高速发展, EDA(Electronic Design Automation,电子设计自动化)技术成为电子设计工程师的新宠。EDA技术以计算机为工具完成数字系统的逻辑综合、布局布线和设计仿真等工作。电路设计者只需要完成对系统功能的描述,就可以由计算机软件进行系统处理,最后得到设计结果,并且修改设计方案如同修改软件一样方便。利用EDA工具可以极大地提高设计效率。   利用硬件描述语言编程来表示逻辑器件及系统硬件的功能和行为,是EDA设计方法的一个重要特征。VHDL(Very High Speed Integrated Circuit Hardware Descripti
[嵌入式]
自动售货机控制模块VHDL程序设计及<font color='red'>FPGA</font>实现
编的PIC16f1936的超声波测距的程序
一个很久以前编的PIC16f1936的超声波测距的程序。共大家参考: 1、开发环境:mplab X,proteus 8.6仿真。 2、部分程序注释,在实物板子上有效。 3、只有测量距离,LED显示距离,(单位是0.1mm),距离中有被屏蔽部分距离。可供参考。 4、这个网上的便宜的模块,一个很大的短板:测距需要平整的面。对于人脸等,衣服等较差。 制作出来的实物图如下: 仿真原理图如下(proteus仿真工程文件可到本帖附件中下载) 单片机源程序如下: #include xc.h #include system.h #include stdint.h /* For uint8_t definition */ #i
[单片机]
编的PIC16f1936的超声波<font color='red'>测距</font>的程序
基于FPGA的高速定点FFT算法的实现
   引 言   快速傅里叶变换(FFT)作为计算和分析工具,在众多学科领域(如信号处理、图像处理、生物信息学、计算物理、应用数学等)有着广泛的应用。在高速数字信号处理领域,如雷达信号处理,FFT的处理速度往往是整个系统设计性能的关键所在。   针对高速实时信号处理的要求,软件实现方法显然满足不了其需要。近年来现场可编程门阵列(FPGA)以其高性能、高灵活性、友好的开发环境、在线可编程等特点,使得基于FPGA的设计可以满足实时数字信号处理的要求,在市场竞争中具有很大的优势。   在FFT算法中,数据的宽度通常都是固定的宽度。然而,在FFT的运算过程中,特别是乘法运算中,运算的结果将不可避免地带来误差。因此,为了保证结果的准确
[嵌入式]
基于<font color='red'>FPGA</font>的高速定点FFT算法的实现
一种低成本压控滤波器的实现
摘要: 本文介绍了采用电源电流可连续调节的运算放大器,实现压控滤波器的方法和原理。 关键词: 运算放大器;电压控制滤波器;数字模拟转换器 在语音和音乐合成领域,常使用压控滤波器对产生的声音信号进行包络整形。但由于成本高、所需外围器件多,设计较复杂,多数此类器件不适合嵌入式系统应用。实现压控滤波器功能的另一途径是采用电源电流可连续调节的运算放大器,如美国国家半导体公司的LPV531型运算放大器。该放大器的电源电流可以在1uA"400uA的范围内连续调节。放大器电源电流的调节可通过一个10位数字模拟转换器DAC101S101进行。在该方案中,放大器的增益带宽是电源电流的函数。图1显示了LPV531的电源电流对其增益带宽和相位裕度的
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved