数字匹配滤波器的优化设计与FPGA实现_第1页
数字匹配滤波器的优化设计与FPGA实现_第2页
数字匹配滤波器的优化设计与FPGA实现_第3页
数字匹配滤波器的优化设计与FPGA实现_第4页
数字匹配滤波器的优化设计与FPGA实现_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 国外电子元器件 2006年第 5期 2006年 5月 主题论文1引言在通信系统中 , 匹配滤波器的应用十分广泛 , 尤其在扩频通信如在 CDMA 系统中 , 用于伪随机序列 (通常是 m 序列 的同步捕获 。 匹配滤波器是扩频通信中的关键部件 , 它的性 能直接影响到通信的质量 。 本文从数字匹配滤波器 的理论及结构出发 , 讨论了它在数字通信直扩系统 中的应用 , 并对其基于 FPGA 的具体实现进行了优 化 。2数字匹配滤波捕获技术在直接序列扩频解扩系统中 , 数字匹配滤波器的捕获是以接收端扩频码序列作为数字 FIR 滤波 器的抽头系数 , 对接收到的信号进行相关滤波 , 滤波 输出结果

2、进入门限判决器进行门限判决 , 如果超过设定门限 , 表明此刻本地序列码的相位与接收扩频 序列码的相位达到同步 。 如果并未超过设定门限 , 则 表明此刻本地序列码的相位与接收到的扩频序列码 的相位不同步 , 需要再次重复相关运算 , 直到同步为 止 , 如图 1所示 。数字匹配滤波器由移位寄存器 、 乘法器和累加 器组成 , 这只是 FIR 滤波器的结构形式 , 只不过伪数字匹配滤波器的优化设计与 FPGA 实现(王 光 1, 田 斌 1, 吴 勉 2,易克初 1, 田红心 1(1. 西安电子科技大学 综合业务网国家重点实验室 , 陕西 西安 710071;2. 深圳通创通信有限公司 , 广

3、东 深圳 518001摘要 :介绍在直接序列扩频通信中应用数字匹配滤波器实现 m 序列同步 , 分析其具体结构 , 详细讨 论了其基于 FPGA (现场可编程门阵列 的性能优化 。 结果表明 , 数字匹配滤波器用 FPGA 实现时 , 能够大大减少资源占用 , 并提高工作效率 。 关键词 :FPGA ; 数字匹配滤波器 ; 直接序列扩频中图分类号 :TN713文献标识码 :A文章编号 :1006-6977(2006 05-0070-04Digital matching filter s optimization designingand FPGA implementationWANG Guan

4、g 1, TIAN Bin 1,WU Mian 2, YI Ke-chu 1, TIAN Hong-xin 1(1. National Key Laboratory of Integrated Services Networks, Xidian University, Xi an 710071, China;2. Shenzhen NewCom Telecommunications Co. , Ltd, Shenzhen 518001, ChinaAbstract:The m-sequence s synchronous capturing in direct sequence spread

5、spectrum system by us-ing digital matching filter is described, its realization structure is analyzed and its optimization imple-mentation is discussed in detail.The result shows that the optimization digital matching filter can de-crease the resource occupation greatly and increase working efficien

6、cy.Key words:FPGA ; digital matching filter; direct sequence spread spectrum图 1数字匹配滤波器的结构图-70-码寄存器中的系数为 -1或 +1, 实际并不是真正意义 上的乘法 。 伪码寄存器中的数据可以由一种伪随机 序列发生器产生 。数字匹配滤波器的表达式为 :其中 , x(n 为输入信号 ; h(-i 为滤波系数 , 由接收 端扩频码决定 , 取值 -1或 +1, m 序列码元为 1, 取值 为 +1, m 序列码元为 0, 取值为 -1。 匹配滤波器的长 度 N 等于扩频比 , 也就是对于每一信息符号的扩频 码元

7、数 , 即 T b /T c 。 当输入信号 x(n与本地扩频码 h(-i匹配时 , 时输出 Z 达到最大 , 超出预先设定的门限 , 表示捕获成功 。很显然 , 数字匹配滤波器中的关键部件是乘法 器和累加器 , 而移位寄存器可以由信号的相互移位 来实现 , 例如要实现 8bit 串行数据的移位 , 假设输 入数据序列为 din, 移位寄存器中的信号为 d0, d1,d2, d3, d4, d5, d6, d7, 用 VHDL 语言中的进程语句实现程序为 1:process(clk beginif(clk event and clk= 1 thend7<=d6; d6<=d5; d

8、5<=d4; d4<=d3; d3<=d2; d2<=d1; d1<=d0; d0<=din; end if; end process;每来一个时钟信号 , 信号同时改变 1次 , 这就实 现了和移位寄存器相同的功能 。 这样的进程实现并 不需要太多的逻辑单元 。所以影响资源占用和工作效率的主要是乘法器 和累加器 。 下面讨论就乘法器和累加器分别加以讨 论 , 研究其对资源和效率的影响 。3乘法器由于此处采用的是 0, 1的二进制系统 , 所以将逻辑 0映射为实际电平 -1, 逻辑 1映射为实际电平 +1, 也就是伪码寄存器中的系数 。移位寄存器抽头输出为有

9、符号二进制补码 , 采 用乘法器实现相乘运算时 , 如果伪码较长 , 则需要耗 费太多的逻辑单元且运行速度过慢 。已经知道 , 一个数乘以 1不改变原值 , 而乘以 -1则改变符号 , 因为移位寄存器抽头系数只能是 1和 -1, 可以考虑用二进制的补码运算来代替相乘 1和 -1运算 , 这就避免了相乘运算对资源的大量耗 费 , 并能提高运算速度 。可以看到 , 伪码寄存器中的系数为 +1或 -1, 如 对移位抽头输出进行乘 1运算 , 相当于不改变原补 码值 , 而对移位抽头输出进行乘 -1运算 , 则相当于 对原补码数值改变符号 , 并对低位二进制码元求其 补码值 。 下面证明上述结论 2。

10、假设二进制补码数为x=x n-1x n-2x n-3 x 2x 1x 0(2 最高位 x n-1为符号位 , 其取值为 0或 1, 0代表正数 , 1代表负数 。不失一般性 , 设 x n-2, x n-3, x 1, x 0均为 1, x 2到 x n-4均设为 0, 则二进制补码数 x 的后 n-1位代表的真 值为2n-2+2n-3+21+20当最高位 x n-1=0时 , 若移位抽头输出系数为 1, 则 x 代表的正数乘 1后仍然是 x n-2+2n-3+21+20, 正数的补码表示还是 x 。若移位抽头输出系数为 -1, x 代表 的 正 数 和 -1相乘后变为负数 , 取 x 的后

11、n-1位的补码值 , 可以表 示为 2n-4+2n-3+ +23+20, 改变 x 最高位的符号位为1, 取 2n-4+2n-3+ +23+20的二进制表示作为 x 的后 (n-1 位 , 即为 x 与 -1相乘的补码表示 ;当最高位 x n-1=1时 , 若移位抽头输出系数为 1, 则 x 代表的负数乘 1后的真值仍然是 x 的后 n-1位 的补码值 2n-4+2n-3+ +23+20, 负数的补码表示还是 x 。若移位抽头输出系数为 -1, x 代表的负数和 -1相乘后变为正数 , 取 x 的后 n-1位的补码值 , 可以表 示为 2n-4+2n-3+ +23+20, 改变 x 最高位的符

12、号位为0, 取 2n-4+2n-3+ +23+20的二进制表示作为 x 的后 (n-1 位 , 即为 x 与 -1相乘的补码表示 。结论成立 , 二进制求补运算代替乘法器的处理 框图为如图 2所示 。综上所述 , 在数字匹配滤波器中 , 因为滤波系数 即移位抽头系数取值只能为 1或 -1, 所以将有符号数字匹配滤波器的优化设计与 FPGA 实现 国外电子元器件 2006年第 5期 2006年 5月 图 2补码器的结构数的二进制补码的乘法运算变为求补码运算是完全 可行的 , 这就避免了乘法运算对于资源的大量需求 , 运算速度也可大大提高 。在补码运算中 , 对每个移位抽头输出同时并行 运算 ,

13、并在后两个时钟得到并行求补码运算输出数 据 。传统设计乘法器时 , 输入 n1, n2位的 2路有符 号补码 , 结果输出为 n1+n2位二进制补码数据 。随着移位寄存器输入有符号二进制补码矢量数 据 , 时钟改变一次 , 移位寄存器每个抽头输出均和相 应的抽头系数做一次相乘运算 。求补码运算代替乘法器时 , 不同于传统的乘法 器设计 , 寄存器中每一数据只需求其补码即可 , 省略 了相乘运算 。 从根本上说 , 用求补代替相乘运算只 是功能相同 , 但可以大大减少资源浪费并提高运算 速度 , 所以有很大的应用优势 。4累加器数字匹配滤波器的移位寄存器每一级抽头进行1次乘法运算 , 结果输出到

14、累加器进行累加 , 当运算到最后一级时 , 输出累加结果 , 送入门限判决器进行 判决 。当对 2个二进制补码相加时 , 若 2个加数都为B bit , 考虑到数据可能溢出 , 则加法器的输出只需要 (B+1 bit ; 而当 3个 bit 二进制补码相加时 , 输出则 需要 (B+2 bit 。 通过观察可以发现 :2N 个 B bit 二进 制补码的值可以用 (B+N bit 二进制表示 。 4.1传统的累加器设计 考虑到传统累加器数据可能溢出 , 故将数据位 展宽 , 比如在本仿真中 , 63个 4位有符号补码求和 , 最后结果最多为 4+6位 , 其中 4为每一加数的位 数 , 因为

15、26<64, 故扩展位为 6位 。 所以计算 , 如果数 据位不足 10位 , 正数在数据前加 0, 负数在数据前 加 1, 这样每一数据都是 10位 (包括符号位 , 不用 考虑溢出问题 , 完全用 62个 10位加法器可以实 现 。4.2较优的累加器设计随着移位级数的增加 , 加法器的位数当然也要 相应增加 , 第 1级加法器用 (B+1 位 , 第 2、 3级用 (B+2 位 , 第 4级到第 7级用 (B+3 位 , 后面依次类推 。 这样设计 , 每一级并没有用考虑溢出结果的最多位的加法器 , 而是递推增加 , 可以减少资源浪费 。4.3优化的累加器设计将匹配滤波器的乘法器输出

16、数据进行分组 , 并 执行加法运算 , 第一级的加法器用 (B+1 位 , 第二级 用位 , 第三级用 (B+3 位 , 后面依次类推 。 每一级的 加法器数量是前面的大约一半 , 依几何级数递减 , 这 样的设计在低位相加时用了较多的加法器并以几何 级数递减 , 也就避免了高位相加的资源浪费 。以 63位 m 序列为例 , 设有符号补码数为 B 位 :将前 62位输入分为 2组 , 每一组输入和另一组 中相应输入作相加运算 , 总共用到 31个 (B+1 位加 法器 ;余 1位输入和 31个 (B+1 位加法器输出再次 分组 , 用到 16个 (B+2 位加法器 ;16个 (B+2 位加法器

17、输出再次分组 , 用到 8个(B+3 位加法器 ;16个 (B+2 位加法器输出再次分组 , 用到 8个 (B+3 位加法器 ;8个 (B+2 位加法器输出再次分组 , 用 到 4个(B+4 位加法器 ;4个 (B+4 位加法器输出再次分组 , 用 到 2个 (B+5 位加法器 ;2个 (B+5 位加法器输出再次分组 , 用 到 1个 (B+6 位加法器 。63位累加器占用加法器的比较如表 1所示 。较优累加器的运算形式是串行 , 而优化累加器的运 算形式是并行 。可以很明显看出 , 优化的累加器比较优的累加-72-器更能减少资源占用 , 运行效率也可大大提高 。4.4Quatus 模块化设计

18、法Quatus 仿真软件的 MegaWizard Plug-In Manag-er 中提供了 parallel_add 模块 , 用户可以自由设计输入数据位宽 , 累加数据个数 , 定义累加输入数据类 型 , 模块最终自动生成适当位宽的数据输出 (考虑了 所有的数据溢出 。与上面的累加器设计比较 , 这样的设计很方便 , 可读性强 , 程序简练 。 实际中逻辑单元占用也不是 很多 , 只比上面多出 10%左右 。 所以 , 如果不是特别 关注资源占用问题 , 这样的设计也不失为一种好方 法 。5仿真实验笔者通过 Quatus 仿真实验验证了优化数字匹配滤波器的性能 。仿真中采用 Altera

19、公司的 FPGA , 利用 6级线 性移位反馈寄存器生成长度为 63的 m 序列 。图 3是数字匹配滤波器的 2个周期的相关同步 过程 , 图 4是放大后的相关同步 。在本次仿真中 , clk 为时钟信号 , address 为地址 信号 , 输入信号为 din , 数字匹配滤波器抽头信号为m 。 为了方便起见 , 做了 2个只读存储器 din_rom 和m_rom 。 din_rom 中存储了 63bit 的 m 序列的二进 制补码表示作为输入 , 其中 0表示 11, 1表示 01, 16进制表示分别为 3和 1。 m_rom 中存储了 63bit m 序列的二进制码元 , 作为数字匹配滤波器的抽头同 步模块的输入 。 result 为计算出的相关值 , tongbu 为 同步信号 。每 来 一 个 时 钟 脉 冲 , 地 址 加 1, 依 次 读 取din_rom 中的数据 , 图 4中的地址为 10进制表示 。m_rom 地址始终置“ 0” , 图 3和图 4中是 m_rom 中 二进制数据的 16进制表示 。63级移位滤波器同时做补码运算 , 当 m_rom 输 出的二进制矢量位为 1时 , 不改变相应位原补码值 ,矢量位为 0时 , 求其相反数 (-1的相反数为 1, 1的 相反数为 -1 的补码值 。 将相关门限设为 63, 当同步 未完成时 ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论