ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:225.47KB ,
资源ID:17215998      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17215998.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Viterbi1500030085王涛Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Viterbi1500030085王涛Word格式.docx

1、序列依次移入一个两级移位寄存器,编码器每输入一位信息bi,输出端的开关就在c1和c2之间来回切换一次,输出为c1,i和c2,i ,其中c1,i=bi+bi-1+bi-2c2,i=bi+bi-2图11 (2,1,2)卷积码编码器设寄存器m1、m2的起始状态为全零,则编码器的输入输出时序关系可用图12表示。图12 (2,1,2)卷积码编码器的输入输出时序要使最后1 位输入同样影响3对输出,并且使编码器回到全零状态,还需使编码器多输出2对信息,为了做到这一点,需要增加2个时钟循环,并且在此期间保持输入为0,这一过程叫做“点亮”编码器。如果不执行“点亮”操作,最后2位输入信息的纠错能力就会下降。2、V

2、iterbi译码原理(软判决)维特比译码是基于最大似然准则的概率译码,它的基本思想是比较接收序列与所有可能的发送序列,从中选择与接收序列汉明距离最小的发送序列作为译码输出。可能的发送序列与接收序列的汉明距离称为量度。维特比译码使用网格图描述卷积码,每个可能的发送序列都与网格图中的一条路径相对应,如果在某个节点上发现某条路径已不可能与接收序列具有最小距离,那么就放弃这条路径,这样一直进行到倒数第二级。由于这种方法较早地丢弃了那些不可能的路径,因而减轻了译码的工作量。Viterbi译码分硬判决和软判决两种,在结构和译码过程上没有区别,区别在于分支度量的计算方法。硬判决是指解调器根据其判决门限对接收

3、到的信号波形直接进行判决后输出0或1,换句话说,就是解调器供给译码器作为译码用的每个码元只取0或1两个值,以序列之间的汉明距离作为度量进行译码,适用于二进制对称信道(BSC)。而软判决的解调器不进行判决,直接输出模拟量,或是将解调器输出波形进行多电平量化(不是简单的0、1两电平量化),然后送往译码器,即编码信道的输出是没有经过判决的“软信息”。软判决译码器以欧几里德距离作为度量进行译码,软判决译码算法的路径度量采用“软距离”而不是汉明距离,最常采用的是欧几里德距离,也就是接收波形与可能的发送波形之间的几何距离,是一种适合于离散无记忆信道(DMC)的译码方法。下面利用图解的方法来说明维特比解码的

4、方法和运作过程。设输入编码器的信息序列为(1 1 0 1 1 0 0 0 ),则由编码器输出的序列 Y=(1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 0 ),编码器的状态转移路线为 abcdbdca。若收到的序列R=(0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 ),对照网格图来说明维特比译码的方法。 由于该卷积码的约束长度为 3位,因此先选择接收序列的前 6 位序列R1 =(0 1 0 1 0 1),同到达第 3时刻可能的 8 个码序列(即 8 条路径)进行比较,并计算出码距。该例中到达第3 时刻a点的路径序列是(0 0 0 0 0 0)和(1 1 1 0

5、1 1 ) ,它们与R1的距离分别是 3 和4;到达第 3 时刻b点的路径序列是(0 0 0 0 1 1)和(1 1 1 0 0 0) ,它们与R1的距离分别是 3 和4,到达第 3 时刻c点的路径序列是(0 0 1 1 1 0)和(1 1 0 1 1 0) ,与 R1 的距离分别是 4 和1;到达第 3 时刻d 点的路径序列是(0 0 1 1 0 1)和(1 1 0 1 1 0) ,与 R1 的距离分别是 2 和3。上述每个节点都保留码距较小的路径为幸存路径,所以幸存路径码序列是(0 0 0 0 0 0) 、 (0 0 0 0 1 1) 、 (1 1 0 1 0 1)和(0 0 1 1 0

6、1) ,如图2-3(a)所示。用与上面类同的方法可以得到第 4、5、6、7 时刻的幸存路径。需指出对于某一个节点而言比较两条路径与接收序列的累计码距时,若发生两个码距值相等,则可以任选一路径作为幸存路径,此时不会影响最终的译码结果。图 2-3(b)给出了第 5 时刻的幸存路径,在码的终了时刻a状态,得到一根幸存路径,如图 2-3(c)所示。由此看到译码器输出是R =(1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 0) ,即可变换成序列(1 1 0 1 1 0 0 0) ,恢复了发端原始信息。比较 R和R序列,可以看到在译码过程中己纠正了在码序列第 1 和第7位上的差错。当然,差错

7、出现太频繁,以至超出卷积码的纠错能力,则会发生误纠,这是不希望的。图2-3(a)图2-3(b)图2-3(c)Viterbi译码的缺点是随着约束长度的增加算法的复杂度增加很快。约束长度N为7时要比较的路径就有64条,为8时路径变为128条。 (2(N-1)。所以Viterbi译码一般应用在约束长度小于10的场合中。3、实验过程1.产生数据int* gen_data(long data_len)/使用指针函数返回生成的输入数组srand(unsigned)time(NULL); /头文件是#include array = (int *)malloc(data_len * sizeof(int);/

8、开辟动态数组,为了防止栈溢出for (t = 0; t 0.5);2.卷积码编码原理根据生成子元g2K = 1, 1, 1, 0, 1 , /* 35 */ 1, 0, 0, 1, 1 ; /* 23 */然后编码 input_len + m; t+) shift_regsr_head = *(unencoded_data + t);/移位寄存器首指针指向unencoded_data p = 0; q = 0; for (j = 0; j = 1); /第三步:若s大于1,则返回第一步 if /否则,计算x1 (!s) x1 = 0; else x1 = v1*sqrt(-2.0*log(s)

9、 / s); /log(s)默认对数的底为e return (mean + sigma*x1);4.软判决译码主要是填充网格,然后选择最优路径:for (j = 0; number_of_states; j += step)/重复每个可能的卷积编码器的输出组for (l = 0; l 1;binary_output1 = outputjl & 0x00000001;branch_metric = branch_metric +abs(*(channel_output_matrix + (0 * channel_length + t) - 7 * binary_output0)+ abs(*(c

10、hannel_output_matrix + (1 * channel_length + t) - 7 * binary_output1); /选择累加误差最小的if (accum_err_metricnextstatejl1 accum_err_metricj0 + branch_metric)accum_err_metricnextstatejl1 = accum_err_metricj0 + branch_metric;state_historynextstatejlsh_ptr = j; /循环l结束 /j结束,更新网格四、实验结果可以观察到,输出译码结果与发送结果完全一致。五、实验分析软判决译码具有良好的译码效果,可以获得比硬判决多23dB的增益。并且在信噪比增大情况下,其误码率也在下降。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1