基于 System Generator 的 Viterbi 均衡器设.doc

上传人:sccc 文档编号:5193066 上传时间:2023-06-12 格式:DOC 页数:10 大小:608.50KB
返回 下载 相关 举报
基于 System Generator 的 Viterbi 均衡器设.doc_第1页
第1页 / 共10页
基于 System Generator 的 Viterbi 均衡器设.doc_第2页
第2页 / 共10页
基于 System Generator 的 Viterbi 均衡器设.doc_第3页
第3页 / 共10页
基于 System Generator 的 Viterbi 均衡器设.doc_第4页
第4页 / 共10页
基于 System Generator 的 Viterbi 均衡器设.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《基于 System Generator 的 Viterbi 均衡器设.doc》由会员分享,可在线阅读,更多相关《基于 System Generator 的 Viterbi 均衡器设.doc(10页珍藏版)》请在三一办公上搜索。

1、精品论文基于 System Generator 的 Viterbi 均衡器设计杨阳,尹长川5(北京邮电大学,北京市网络体系构建与融合重点实验室,北京 100876) 摘要:在高速 GMSK 数字通信链路中,接收机需使用均衡器来弥补 GMSK 调制和无线衰落 信道带来的码间干扰。本文通过分析加预编码的 GMSK 调制解调过程和最大似然序列估计(MLSE)原理得到累计度量公式,用 Viterbi 算法实现均衡器结构。文中使用 System Generator10工具来完成整个均衡器的硬件设计。整个设计过程中按照累计度量公式分为数个模块逐个完 成,然后按照逻辑关系依次组合起来。全部设计可以下载到 X

2、ilinx V6 FPGA 板中测试性能。通过分析资源占用情况证明了 System Generator 在硬件设计上的高效性。关键词:GMSK 调制解调;最大似然估计;Viterbi 均衡器;System Generator中图分类号:TN924+.215Design of Viterbi Equalizer Based on System GeneratorYANG Yang, YIN Changchuan(Beijing Key Laboratory of Network System Architecture and Convergence, Beijing University ofP

3、osts and Telecommunications, Beijing 100876)20Abstract: In high speed GMSK digital data communication link, equalizers must be used to eliminate the ISI(Inter-Symbol Interference)introduced by GMSK modulation and multipathchannel propagation. In this paper, via the analysis of GMSK modulation with p

4、re-coding and the MLSE (Maximum Likelihood Sequence Estimate) theory accumulative metric formula was given, which then was implemented by the Viterbi algorithm. All the hard device designs were based on25System Generator For DSP tools. The whole design was composed by several parts which were combin

5、ed logically. All the designs can be downloaded into Xilinx V6 FPGA to test correctness. Through the hard devices resource analysis proves the effectiveness of System Generator in hard device design.Key words: GMSK Modulation; MLSE; Viterbi Equalizer; System Generator300引言GMSK 调制技术因其比较高的频带利用率在无线通信中得

6、到了广泛的使用。在调制端 引入了高斯成型滤波器,在提高了频带利用率的同时也人为地引入了码间干扰。无线信号经 历的信道一般建模为无线衰落信道。衰落信道会进一步加重无线信号中的码间干扰,在接收35机端的无线信号已经产生严重畸变。所以接收端必需采用均衡器来抵消码间干扰的影响,将 正确的信息比特解调出来。本文的目的就是通过 System Generator For DSP 工具设计一个基 于 MLSE 原理的 Viterbi 均衡器。System Generator For DSP 是 Xilinx 公司的系统建模工具1。它采用了模块搭建和视图开 发的方式,加速并简化了从原始算法到 FPGA 的设计流

7、程。System Generator 建立在基本的40Simulink 平台之上,非常便于操作和理解。对于设计算法的人而言,主要精力可以专注于算 法的功能和性能。在完成算法后,可以将算法快速的部署在 FPGA 硬件平台上做实际的分析。目前 System Generator 的主要功能体现在三个方面12。第一个方面是其非常适合做算作者简介:杨阳(1988-),男,硕士研究生,主要研究方向为无线通信系统通信联系人:尹长川(1968-),男,教授,主要研究方向:无线通信网络技术. E-mail: ccyin- 10 -法的硬件开发和硬件模型分析。System Generator 中算法的运行过程和硬

8、件中是完全一样的,以此可以评估硬件的资源开销。第二个方面是实现各种模块,这些模块被其他工程综合45使用。System Generator 产生的功能模块可以直接翻译成 HDL 硬件语言,从而直接引入到 其他工程中去。第三个方面 System Generator 在设计一个完整系统时也有不错的表现。本文 主要针对的主要是其第二个功能。1带预编码的 GMSK 调制解调原理带预编码的 GMSK 基带调制系统如图 1 所示。50图 1 GMSK 等效基带调制原理0、1 信息比特映射为双极性码后得到 bn,通过 BTb 值为 0.3 的高斯滤波器(B 代表高斯滤波器的 3dB 带宽,Tb 是一个信息符号

9、占用时间)。预编码过程中,an =bn -1 bn 。 在高斯滤波器 BTb 值为 0.3 时,+2.5Tbg (t )dt 1。所以,在高斯滤波器成形时,只需取 5 个 Tb-2.5Tb 255的长度积分即可2。换算为相位表达的含义为在一个码元后相位变换了 /23。经过高斯滤波器后,得到的相位累计相加后得到相位累计路径,如式(1-1)所示tq (t, an ) = 2p htan g (t -nTb )dt = 2p h an g (t -nTb )dt = an q(t -nTb )(1-1)-n =-n=-其中 q(t ) = 2p httg (t )dt = p g (t )dt 。-

10、 -h 为调制指数,如 q(t ) 所示的过程,其值应取为 0.5。最后得到的基带信号为:60s(t ) = cos(q (t, an ) + j sin(q (t, an ) = I (t, an ) + Q(t, an )(1-2)0GMSK 信号是频率调制。对于带预编码的 GMSK 调制,可以引入劳伦特分解,将基带 GMSK 信号分解为一系列时间受限幅度调制信号。第一个波形 S0 占据了总信号能量的 90% 以上4,如式(1-3)。文献5就指出了只用第一个波形 S 就能很好的逼近 GMSK 调制信号的波形。经过分解之后,在基带接收端的信号表达式(1-4)。65Sn (t) = S0 (t

11、 + nT ); S0 = sin (y (t )/ sin (hp )0 0(1-3)S(t)= bnn =- j nC (t-nT ) , C (t) 0 0 t 5T(1-4)从式(1-4)中就可以看出,接收到的信号乘以 - j 的 n 次方做解旋转以后,接收信号就成为一个双极性的幅度调制信号。在引入劳伦特分解和解旋转之后,GMSK 调制过程中 的非线性运算可以近似为线性运算。702最大似然序列估计(MLSE)原理由上一节内容可知接收的信号简单处理后(解旋转)近似为:r (t )= bn h(t -nT )+n(t )n =0 (2-1)其中 r (t ) 是接收信号, bn 是基带双极

12、性码元, h(t ) 是从合成信道的影响(其中包括了发送端的成形滤波器,多径信道,接收的匹配滤波器等等),n(t ) 是加性高斯白噪声。MLSE75原理下可以将概率密度函数的计算转化换为式(2-2)判据达到最小6。J = r(t)-2r h(t-nT ) dt(2-2)H nn =0 令 Zn = h(t-nT )r(t)dt,Sn-k = h(t)h(t+nT -kT )dt ,假设信道记忆长度为 5,(即 L 取5),更具 Viterbi 算法,在 K 时刻累计度量公式进为7: 5 Jk = max Jk -1 + 2rk (Zk - Sl rk -l )-S0 (2-3) L =1 80

13、考虑到 rk -1rk - 2 rk -3rk - 4 rk -5 转换为 rk rk -1rk - 2 rk -3rk - 4 时,只有首和尾部的比特发生变化,则累 计度量分支可以化简为:5 4rk (Zk - Sl rN -l )=rk (Zk - Sl rN -l )-rk rk -5 S5(2-4)L =1L =1在只有首尾比特发生变化时,每个比特下有 2 的 5 次方共 32 种分支状态。这种状态转 移过程可以简化为下面最基本的形式如图 2 所示:状态2i状态2i+185分支1 输入0/输出01/00/11/1图 2 状态转移图示状态i状态i+16这种蝶形运算表示了路径累计计算过程中

14、,状态转移的基本形式。在某个比特的 32 个 分支中,其中两个分支经过蝶形运算后,转化为下一比特累计度量的两个分支。在这个过程 中通过路径累计度量值,就可以决定该比特位分支具体由上个比特从哪一个分支累计而来,90找到幸存路径。假设每一帧信号长度为 768bit,对于 32 种状态来说,至少需要一个 132 的 矩阵存放累计度量值,一个 32768 的矩阵来存放每个输入比特 32 个幸存分支时的输出。累 计计算过程不断的更新累计度量矩阵和幸存分支输出矩阵。而回溯则是找到幸存路径后,将 幸存分支输出矩阵中记录的目标路径的比特值挑选出来。3均衡器的 System Generator 设计495在信号

15、进入信道均衡器之前,需要将 rk (Zk - Sl rk -l )-rk rk -5 S5 中各个量事先计算存放下L =1来以备均衡器计算使用。Zn =h(t-nT )r(t)dt 为接收信号和信道估计的卷积,可理解为接收信号的匹配滤波。 Sl 为信号估计自相关值的各个抽头值。信道记忆长度为 5 时,只取相关结果中的 S1 到 S5 共有 5 个抽头信道估计值。 r0 r1r2 r3r4 r5 中 r0 和 r5 为输入和输出比特。其他44比特并不发生变化。所以 Sl rk -l 为状态转移度量中的各个分支的公共量,共 2 =16 种可能。100L =1上面所述各个模块提前完成有助于简化后面均

16、衡器的设计。所以这里的均衡模块主要完成分 支转移过程中的幸存路径的计算、保存,分支转移输出比特记录,以及最后回溯输出。3.1幸存路径累计度量的设计1054分支路径的度量按照公式 rk (Zk - Sl rk -l )-rk rk -5 S5 计算。对于当前的输入比特 rk ,共L =125=32 种可能状态。每种状态会有两个分支路径到达。每两个转移目标相同的分支有共同的4 Sl rk -l 。根据这点 32 种状态以此 2 个一组可以分为 16 组。对于转移到同一个状态的两个L =1分支路径,前一个比特的状态累计路径加上分支转移路径度量值作为判据,选择值较大的分 支,就可以找到这 2 个路径中

17、的幸存路径。所有整体上来说,两种状态输入其路径累积值到 路径累计度量模块,比较选择结束后输出另外两个状态的路径累积度量值。1101154选择路径分支的判据不需要计算整个 rk (Zk - Sl rk -l )-rk rk -5 S5 。只需比较达到相同状态L =1的分支,即比较的判据中的 rk 是相同的。所以只剩下 rk rk -5 S5 一项。每个分支在叠加上前一 比特的幸存路径累积值就可以作为分支选择的判据。设之前的累积路径值存放在 Gmetric 中, 最终的判据 J k =Gemtric(k-1) + rk rk -5 S5 。由 rk 的值和 rk -5 的值就有 00,01,10,

18、11 四种可 能,对应着四个分支,分别为:输入 0,输出 0: J k 0 =Gemtrick-12i -S5 ; 输入 0,输出 1: J k1 =Gemtrick-12i+1+S5 ; 输入 1,输出 0: J k 2 =Gemtrick-12i -S5 ; 输入 1,输出 1: J k 3 =Gemtrick-12i+1+S5 ;达到同一状态的两个分支作比较,相同的输入比特对应的分支能到达同一个状态,所以J k 0 和 J k 1比较, J k 2 和 J k 3 比较。根据判据 J k 选择了幸存路径之后,幸存路径的累计度量120*只需在判据上叠加共有的项即可。剩余的路径度量值 J k

19、 =rk (Zk4-L =1Sl rk -l) 。Z k 为 4.6 中计算1254的匹配滤波的值, Sl rk -l 是 4.5 中计算的各个状态分支转移度量值,均已经计算好。L =1在计算出幸存路径的后,需要将每个状态幸存路径的输出的比特值记录下来。在所有的 接收比特都计算结束后,选出 32 个种状态下每种状态对应累积路径度最大的值,这个值对 应的状态和当时几率的输出逆向可以遍历整个最终的幸存路径,假设储存在 Path_B 中。状态转移过程中路径累计度量值根据输入输出比特值和 J k 之间的比较结果为:J k1 J k 0k 0 kGemtricki=J -J * ,Path_B=1J k

20、1 J k 2Gemtricki+16=J +J * ,Path_B=1J k 3 J k 2k 3 kk 2 kGemtricki+16=J +J * ,Path_B=0130135140145在设计状态转移过程中,这 32 个状态时同时计算的,所以 Gmetric 矩阵可以降到一维, 用原来的 Gmetric 序列按照上面所说的状态标号更新此次的 Gmetric 矩阵即可。图 3 信号比较和选择输出的模块32 个状态分为 16 组,每组主要有两个状态的路径累积度量值。两个分支判断句输入后,输出的两个信号为分支转移输出比特和较大的判据本身。其设计转移类似一种蝶形的交换运 算,如图 3 所示。

21、连个输入直接进入 MUX(选路器)的两个数据端口。用输入的大小的布尔值作为选路器地址,同时这个布尔值也是幸存分支的输出比特。这两个值接着和路径累计度量的公共部 分累加即可。两个状态转移到另外两个状态的整体设计如图 4 所示。图 4 分支度量模块的设计状态的路径累积度量值加上 s5 构成分支选择的判据,送入分支度量的蝶形运算,输出 幸存路径输出比特和幸存路径累计度量值的非公共部分。然后 J k 0 和 J k 1 的幸存者减去公共 度部分,而 J k 2 和 J k 3 的幸存者加上公共度量部分输出。最终整个模块设计结构如图 5 所示。这个模块是真个均衡器状态转移的基础。其分支度量的输出比特被记

22、录在一个矩阵中,而输出的转移后的到达该状态的路径累计度量是下次计算的基础值。该模块的计算时间为 3个时钟周期,同时给输出加上时延 1 个时钟周期的寄存器,总共时延为 4 个时钟周期。150155160165图 5 独立的一个状态转移累计路径度量模块3.2状态转移过程设计具体的状态转移过程如图 2 所示。由前一输入比特的 2i 和 2i+1 状态转移到下一个输入 比特的 i,i+16 状态,i 取值范围为 0 到 15。所以一共同时并行的计算 16 个图 5 的幸存路径 累计度量模块。模块的输入为另外一个模块的输入。上文给出了信号进入一个基本的状态累 计度量模块 4 个时钟周期后得到正确的反馈值

23、,所以需要将输入也保持 4 个时钟周期,即信 道匹配滤波器的输出 Z n 到均衡器端口时信号周期为 4 个时钟周期。同时,由于涉及到了累计计算部分,所以幸存路径累计度量模块的幸存分支输出值需要 存放在一个(768+5) 32 的矩阵中。768 为帧的长度,而 5 是匹配滤波残留的部分。考虑到存 储完以后还要回溯,所以将其放到 32 个长度为 768+5 的 RAM 中去。每一个状态的幸存分 支输出比特对应一个 RAM,编号按照输出状态的编号。这些 ROM 里的数字长均为 1 比特, 只存放 1 或者 0。这些 ROM 的地址都是相同的。地址的时钟周期也应该和输入数据的一致, 均为 4 个时钟周

24、期。这些幸存路径的累计度量之送入一个比较器中。这是一个并行比较的过程。比较最大值, 但是输出最大值对应的状态编号。所以这些幸存路径累计度量值按照状态标号进去比较器。 比较器为他们分配编号从 0 到 15。然后开始两两比较。比较输入时两个路径累计值,输出 是较大的累计值它的状态编号。如图 6 所示,这个过程也类似与一种蝶形运算的交换过程。图 6 最大累计度量路径查找的比较输出设计两两比较找到 32 个之中的最大值需要比较 5 轮,共比较了 16+8+4+2+1=31 次。比较大小部分时延为 2 个时钟周期,5 轮比较总时延为 524=40 个时钟周期。1701751801851901952003

25、.3回溯部分的设计回溯的主要工作是根据最大的路径度量值和幸存分支的输出数据矩阵 Path_B 结合,逆 向顺着幸存路径找到全部的输出比特。首先在整个输入比特的累计度量值计算结束后,使能 信号会通过寄存器将最大值对应的转移状态标号锁存。这个状态值和 Path_B 中的值结合起 来向前查找。前文中的 Path_B 是 32 个深度为 786+5 的 ROM。在向 ROM 中写数据是,它们写使能 信号 WE 都是高电平。所有的输入比特的累计路径度量值计算结束的时候,这些 ROM 的写 使能信号也要失效。这 32 个的同一个地址存放了 32 个状态的分支输出比特。而幸存的状态 标号表明了从这 32 个

26、 ROM 中的哪一个去取数据。所以这 32 个 ROM 都直接连到一个 32 路的 MUX 选路器中去,用得到的状态值作为地址选择 MUX 的输出信号。这里第一个重点是这些 ROM 地址的控制问题。上文已经提到,幸存路径的累计度量模 块的输出周期为 4 个时钟周期,那些想这些 ROM 写信号的频率也是每 4 个时钟周期写入一 个新的数值。但是回溯过程的输出完全没必要还按照这么很慢的速率进行。可以通过控制使 能幸好,回溯过程中的 ROM 地址变化频率和系统的时钟频率一样。控制的设计如图 7 所示。 使能信号以 ROM 写地址达到最大值为准,经过合理的时延和输入的状态标号对齐后,用 MUX 切换输

27、入的时钟即可。图 7 ROM 地址信号和写使能信号图示第二个重点是状态标号的更新。前文已经叙述个状态更新的原理。一个状态标号 r1r2r3r4r5 输入 Path_B 后,其输出的值为 r*,则新的状态(由于是逆向追溯,实际上为前一 个比特的旧状态)为 r2r3r4r5r*,同时回溯输入的 r*为均衡最终输出的信息比特。回溯控制 部分也包含一个切换过程,如图 3-5 所示。在回溯刚开始取幸存路径的状态标号锁存器中值 开始计算,而在往后的计算中,选择 Path_B 的输出作为状态更新的比特值。反馈循环输出 值到 Path_B 中只需 1 个时钟周期时延即可输出下个状态更新所需要的比特值。而回溯状

28、态 控制只涉及到数字各个比特位上的操作,在 1 个时钟周期内就可以计算出结果,所以整个反 馈循环时延设计为 1 个时钟周期即可。3.4均衡器的整体结构设计均衡器的整体原理如图 8 所示。主要输入为匹配滤波模块的输出和每个状态分支度量的 公共部分。主要输出为一个解调信息序列的逆向序列和指明解调数据输出的使能信号。每个状态分支度量的公共部分在匹配滤波之前已经被锁存在了寄存器中,这些锁存器按 照状态顺序依次连接到对应的状态即可。使能信道和匹配滤波结果会同时到达。图 8 值给出 了几个状态转移的图例,总共并行有 16 各位状态转移幸存路径度量模块,一共是 162=32205210215220225中状

29、态。在使能信道到达后,首先要将每个状态转移幸存路径度量模块的使用的寄存器值清零,保证累计度量值存零开始。然后输入数据运算过程中,地址控制部分输出的地址变换周 期为 4 个时钟周期,向 Path_B 写数据速率也为 4 个时钟周期。而在 7684 个时钟周期所有 输入比特度量结束后,地址控制部分控制将地址切换,输出到 Path_B 的地址变化周期和系 统时钟周期一致,开始回溯计算。使能信号在所有输入比特度量结束同时从 MaxGmetric 中 取出最终幸存路径的状态标号,将其锁存在一个寄存器中,并输入到回溯控制部分。使能信 号在所有比特度量结束时告诉回溯控制在接下来的 4 个时钟周期取最终幸存路

30、径的状态锁 存器中的值,而后使能信号失效,回溯的循环中输入变化为 Path_B 的输出。在整个运算过程中,状态累计度量过程占用时钟长度为 4(768+5)时钟周期,计算最大路径累计值时延 4,回溯计算占用长度为 768,所以整个均衡过程在 4(768+5)+4+7684500 个时钟周期内就可以完成。图 8 均衡器整体设计原理图4仿真结果和结论本文中的均衡器为整个基带接收的一部分。将均衡器的 System Generator 设计和其他部 门连接起来,构成一个完整的 GMSK 基带接收机。4.1硬件协同仿真结果硬件协同仿真 System Generator 中比较独特的一种仿真方式。在硬件协同

31、仿真之前, System Generator 会分析设计中的时钟布局(Timing analysis)等信息,将设计好的文件生成 bit 文件。这些 bit 文件可以直接通过 JTAG 连接线下载到 FPGA 中去后,才能硬件协同仿真。 即 System Generator 中的硬件协同仿真实际上位于传统 FPGA 设计中逻辑仿真和时序仿真之 后,甚至位于生成 bit 文件之后。硬件协同仿真实际就是设计下载到硬件上运行的结果。如图 9 所示。中间模块就是已经编译好的基带接收机模块。PC 将数据写入一个共享ROM,同时也将一个使能信号写入一个共享寄存器。在基带解调模块完成解调后,将数据写入另外一

32、个共享 ROM,同时发出指令的使能信号到一个共享寄存器告知接收端此刻开始输出解调信号。PC 端接到共享寄存器中的使能信号,开始去取目标共享寄存器中的数据。 取出的结果接触解调输出比特。230235图 9 最终的基带接收机测试图整个接收信号经过均衡后输出如图 10 所示。波形由 System Generator 中的示波器模块 抓取。其解调结果和发送端的发送的仿真数据是一致的。图 10 均衡回溯后输出结果资源名称使用数量(个)可用的总量(个)占用比例slices3199376808%FFs114933014403%BRAMs000LUTs82441507204%IOBs000Mult/DSP48

33、s357684%TBUFs0004.2硬件资源占用情况表 1 硬件资源占用情况240245在 System Gnenrator 设计中,有两种方法可以得到该设计方案占用的硬件资源。一种方法是将资源评估模块 Resource Estimate 加入设计方案。在方案编译过程中会自动评估出硬件 的消耗。另外一种更普遍的做法是在设计方案编译结束生生 bit 流文件以后,用 ISE 查看同 时生成的.map 文件和记录了 mapping 详细过程的.mrp 文件。包含了均衡器的接收机的最终 硬件资源占用情况如表 1 所示。从表 1 可以看出,用 System Generator 设计的基带接收机使用的

34、V6 硬件资源非常少, 各类资源模块所占比例均在 10%以下,有的 5%都没达到。一方面说明了 V6 FPGA 芯片的 卓越性能,另一方面也体现出这套均衡解调算法非常适合在硬件中使用。整个算法预留的资 源非常多,所以在此基础上可以添加其他提升性能的模块,如卷积解码器等。4.3结论250255260本用 System Generator 将将 Viterbi 算法转化到了 V6 FPGA 硬件平台上。整个过程证明用该工具是将算法迅速转移到硬件平台上做实际评估的有力工具。在整个模块的设计中,视 图化的模式使整个算法流程清晰明了。从最后资源分析结果可已看出其在硬件设计上的高效 性。参考文献 (Ref

35、erences)1 Xilinx 北京通信技术有限公司. 无线通信技术的 MATLAB 和 FPGA 实现Z. 北京:人民邮电出版社, 2009. 2 纪志成, 高春能, 吴定会. System Generator 入门与提高M. 西安:西安电子科技大学出版社,2008.3 周炯槃,庞沁华,续大我等. 通信原理M. 北京:北京邮电大学出版社,2005.4 PIERRE A.LAURENT. Exact and Approximate Construction of Digital Phase Modulations by Superposition of Amplitude Modulated

36、 Pulses(AMP), IEEE Trans. Commun., 1986,02:vol.COM-34, pp.150-160.5 Kaibin Huang. Supplementary Proof for Exact and Approximate Construction of Digital Phase Modulations by Superposition of Amplitude Modulated Pulses by P.A.LaurentJ, 2005, 53(2):234-2376 Robert G. Gallager. Principles of Digital CommunicationM. New York: Cambridge University Press, 2008. 7 万海. VHF 频段基于 GMSK 调制的高速数据传输系统关键技术研究D. 北京:北京邮电大学,2012.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号