




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。卷积码实验报告篇一:卷积码实验报告实验五信道编解码()本章目标掌握数字频带传输系统调制解调的仿真过程掌握数字 频带传输系统误码率仿真分析方法5.1实验目的1. 使用MATLAB进行卷积码编/译码器的仿真。2.熟 练掌握MATLAB软件、语句。3. 了解卷积码编/译码器的原 理、知识。5.2实验要求1. 编写源程序、准备测试数据。2. 在MATLAB环境下完成程序的编辑、编译、运行,获 得程序结果。如果结果有误,应找岀原因,并设法更正之。5.3实验原理(-)卷积码编码器1.连接表示卷积码由3个整数n, k, N描述。
2、k/n也表示编码效率(每编码比特所含的信N称为约束长度,息量);但n与线性分组码中的含义不 同,不再表示分组或码子长度;表示在编码移位寄存器中k元组的级数。卷积码不同于 分组码的一个重要特征就是编码器的记忆性,即卷积码编码 过程中产生的n元组,不仅是当前输入k元组的函数,而且 还是前面N?1个输入k元组的函数。实际情况下,n和k经lword格式支持编辑,如有帮助欢迎下载支持。文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。常取较小的值,而通过N的变化来控制编码的能力和复杂性。 下面以图1中的卷积码编码器为例介绍卷积码编码器。 该图表示一个约束长度K?3的(2,
3、1)卷积译码器,模2加法器的数目为n?2, 因此,编码效率k/n?l/2o在每个输入比特时间上,1位信息比特移入寄存器最左 端的一级,同时将寄存器中原有比特均右移一级,接着便交 替采样两个模2加法器,得到的码元就是与该输入比特相对 应的分支字。对每一个输入信号比特都重复上述采样过程。图1卷积码编码器(编码效率1/2, K?3)用于描述反馈移位寄存器实现循环码时所使用的生成 多项式也可用户描述卷积码编码器的连接。应用n个生成多 项式描述编码的移位寄存器与模2加法器的连接方式,n个生成多项式分别对应n个模2加法器,每个生成多 项式不超过K?1阶。仍以图1中的编码器为例,用生成多项式gl(X)代表上
4、方连接, g2(X)代表下方连接,则有:gl(X)?l?X?X2g2 (X)?1?X2多项式中的最低阶项对应于寄存器的输入级。输出序 列根据如下方式求得:U (X) ?m (X) gl (X)与 m (X) g2 (X)交织其屮m表不输入的信息矢量。2.状态图卷积编码器属于有限状态机的器件。“有限”表明状态 机制只有有限个不同的状态。有限状态机的状态可以用设备 的当前输入和最少的信息量,来预测设备的输出。状态提供 了有关过去序列过程及一组将来可能输出序列的限制,下一 状态总是受到前一状态的限制。将编码器在时刻ti的状态 定义为 Xi?mi?l,mi?2,mi?K?lo01图2状态转移图如图2所
5、示,方框内的状态表示寄存器最右端N?1级的 内容,状态间的路径表示由此状态转移时的输出分支字。对 应于两种可能的输入bit,从每个状态岀发只有两种转移。3. 编码器网格图a 00b 10c 01d 11输入比特0输入比特1虽然状态图完全地描述了编码器的特性,但由于没有表 示时间过程,所以采用状态图跟踪编码器的状态转移很不方 便。树状图在状态图的基础上增加了时间尺度。每个相继输 入信息比特的编码过程可表述为从左向右经过树状图,每条 数值代表一个输出分支字。树状图上增加的时间尺度是我们 可以动态地描述输入序列的编码过程。但由于树状图的规模 增长很快,因而只适于序列中分支子数目较小的情况。我们采用移
6、位寄存器的4种可能状态来标注树图的各个 节点,a?00, b?01, c?10, d?llo树结构的第一次分支在时刻tl, 产生一对节点,记为a, b;在后继的各个分支处,节点数翻倍。第二次分支在时刻 t2,生成4个节点,记为a,b,c,d;第三次分支后共有8个 节点。网格图利用了结构上的重复性,从而能够更加方便地 描述编码器。(二)维特比译码算法维特比译码算法由维特比在1967年提出。维特比算法 的实质是最大似然译码,但它利用了编码网格图的特殊结构, 从而降低了计算的复杂性。该算法包括计算网格图上在时刻 ti到达各个状态的路径和接受序列之间的相似度,或者说距 离。维特比算法考虑的是,去除不可
7、能成为最大似然选择对 象的网格图上的路径,即如果有两条路径到达同一状态,则 具有最佳量度的路径被选中,成为幸存路径。对所有状态都 将进行这样的选路操作,译码器不断在网格图上深入,通过 去除可能性最小的路径实现判决。网格图中每个时刻ti上有2K?1条路径到达。维特比译码包括计算到达每个状态的两条 路径的路径量度,并舍弃其中一条路径。在时刻ti,算法对 2K?1并重复上述过程。在一个给定的时刻,各状态的幸存路 径量度就是该状态在该时刻的状态量度。图3编码器网格图个状态,这里的K是约束长度,每种状态都可经两 个状态(节点)都进行上述计算,然后进入时刻ti?l, 输入数据序列D1:发送序列U:接受序列
8、Z: 1 111 0 1 01 01a 00b 10c 01d 11输入比特0输入比特1图4译码器网格图5.4实验内容在MATLAB上设计一个(2, 1, 3)卷积编码器和对应的采用维特比译码算法的译码器。编码器的生成多项式为: gl(X)?l?X?X2g2(X)?1?X2将编码器的输岀经过一个高斯白噪声信道的结果作 为译码器的输入,观察比较译码器输出和编码器输入,了解 卷积码的容错性,并计算译码结果的误比特率。基本流程如 错误!未找到引用源。所示。实验报告要求附加程序代码, 并对代码中每个函数模块的实验方式和功能进行简要的说 明。输出编码结果卷积码编码模块:卷积码编码子程序:function
9、 out_put二conv_enc(msg) gl=l 1 1: g2=l 0 1; ml=conv(msg,gl); m2=conv(msg, g2); Ll=length(ml); for i=l:Llout_put(2*i-l)=rem(ml(i), 2);out_put(2*i)二:rem (m2 (i), 2) ; end end该模块将对输入信息码子编码。维特比算法解码器的实现函数:function decoder_output二viterbi_ha:rd(y, L) global G;G=l 1 1; 1 0 1; n=size(G, 1): K=size (G, 2); num
10、ber_of_states二2八(K-l);%生成各分支的输岀for j=0:number_of_states-l for t=0:1next_state, memory_contents二next_state_fun(j, t, K); input(j+1, next_state+1)二t;branch_output二rem(memory_contents*G,, 2);nextstate(j +1, t+l)=next_state;output(j+1, t+l)=bin2deci(branch_output); end end %metric_of_states=zeros (1, nu
11、mber_of_states) ; % 各 状态的度量metricmetric_of_states_c二zeros (number_of_states, 2) ;% 各状态两个输入的度量length_seq二length(y)/n;%符号个数decoder_output=zeros (1, length_seq-K+l) ; %解码输 出channel_output_matrix=reshape(y, n, length_seq);%将解调输出的比特按符号排列survivor_state二zeros(number_of_states, length_seq+l);%留存 路 径input_of
12、_state二zeros(number_of_states, length_seq+l, 2);%汇聚到各状态的分支对应的输入state_sequence=zeros(1, length_seq+l):count二zeros (1, number_of_states);for i=l:length_seq-K+lforj=0:number_of_statesl for t=0:1binary_output二deci2bin(output(j+1, t+1), n);篇二:卷积码编译码实验报告厦门理工学院实验报告书课程名称:信息论与编码实验实验名称: 卷积码编译码12中输入移位寄存器最多只有m?
13、k个有效的寄存器单元, 而输出移位寄存器仅起一个并串转换作用。因此称参量m为 卷积吗的记忆长度(段)2、维比特译码原理它的基本思想是把接收到的矢量,和网格图上诸种可能 的路径比较,删去距离大的路径,保留距离小的路径,以距 离最小路径作为发码的估值五、实验内容在MATLAB环境下卷积码编/解码器的实现。1、主函数main, mclear;clc;msg = randint (1, 20, 0, 1)word = encode_conv213(msg)word(l)二'word(l);%信道中存在污染,人为的模拟传 输过wotd(10)二'word(lO); %程中的出错码字wor
14、d (15)二'word (15);wordl=wordmsg_l = decode_conv213(wordl)msg-msg_l2、状态积 state_machine. mfunctionoutput, nextState=state_machine(input, current_state)output 二mod (current_state (1) +current_state (3), 2);output(2)=mod(input+current_state(2)+current_state(1), 2);nextState(l) = current_state(2);nex
15、tState(2) = current_state(3);nextState (3) = input;3、汉明距离 hamming_distance, mfunction distance = hamming_distance(a, b)temp = a+b;temp = mod(temp, 2);distance = sum(temp);4、213 编码程序 encode_conv213 mfunction word = encode_conv213(msg)word = zeros (1, length(msg)*2);current 二000;for i = 1:length(msg)o
16、ut,next二 state_machine(msg(i), current);3current = next:word(2*i-l)二 out (1);word(2*i)= out (2);End5、213 维比特译码 decode_conv213. mfunction msg = decode_conv213(word)chip二10;%初始状态选十个信息for i 二 1:2八chipM(i, :)= de2bi(i-l,chip); %把所有可能性按二进制输 出W(i, :)= encode_conv213(M(i,:);%得到相应的二进制编译后的码字D(i) = hamming_di
17、stance(W(i, :), word(1:chip*2);%与岀错码字对比得到汉明距endval, index = sort(D):%val中存汉明距从小到大排列,index中存对应val数 据所在位置ret_msg = zeros (1, length (word)/2) ;%开辟译出码字的存放空间for i = 1:6%1024种选择6种最小距离,并输岀在ret_msg中,最 小汉明距存于ret_disret_msg(i, 1 :chip)= M(index(i),:);:ret_dis (i) = D(index (i);enditer = (length (word) -chip*
18、2) /2; %剩余要译出的 码字个数for i=l: iter %迭代过程llword格式支持编辑,如有帮助欢迎下载支持。文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。for j=l:6msg_templ= ret_msg(j, l:chip+il) 0 ; %下一状态 出“0”msg_temp2= ret_msg(j, l:chip+i-l) 1 ; %下一状态 出Tword_tempi = encode_conv213(msg_templ); %下一状态为“0”时的编码word_temp2 = encode_conv213(msg_temp2);%下一状
19、态为“1”时的编码dis_tempi二 hamming_distance(word_templ, word(l:chip*2+2*i);dis_temp2二 hamming_distance (word_temp2, word (1: chip*2+2*i) ; %算 两种汉明距 if (dis_templ ret_msg(j, l:chip+i)= msg_templ;ret_dis (j)= dis_templ;elseret_msg(j, l:chip+i) = msg_temp2;ret_dis(j)= dis_temp2;%选择较小汉明距的状态储存并输出在ret_msg中,最 小汉明
20、距存于ret_disendend45篇三:卷积码实验报告现代编码理论基于MATLAB的卷积码编码及译码仿真姓名:闫嘉川学号:1433170所在院系:电子与信息工程学院实验名称:基于MAATLAB的卷积码编码及译码仿真实验目的:卷积码是一种性能优越的信道编码。它的 编码器和译码器都比较容易实现,同时它具有较强的纠错能 力。随着纠错编码理论研究的不断深入,卷积码的实际应用 越来越广泛。本实验简明地介绍了卷积码的编码原理和 Viterbi译码原理。并在SIMULINK模块设计中,完成了对卷 积码的编码和译码以及误比特统计整个过程的模块仿真。最 后,通过在仿真过程中分别改变卷积码的重要参数来加深理 解
21、卷积码的这些参数对卷积码的误码性能的影响。经过仿真 和实测,并对测试结果作了分析。实验原理:1、卷积码编码原理卷积码是一种性能优越的信道编码,它的编码器和解码 器都比较易于实现,同时还具有较强的纠错能力,这使得它 的使用越来越广泛。卷积码一般表示为(n, k, K)的形式,即 将k个信息比特编码为n个比特的码组,K为编码约束长 度,说明编码过程中相互约束的码段个数。卷积码编码后的 n各码元不经与当前组的k个信息比特有关,还与前K-1 个输入组的信息比特有关。编码过程中相互关联的码元有 K*n个。R=k/n是编码效率。编码效率和约束长度是衡量卷 积码的两个重要参数。典型的卷积码一般选n,k较小,
22、K值 可取较大O10),但以获得简单而高性能的卷积码。卷积码的编码描述方式有很多种:冲激响应描述法、生 成矩阵描述法、多项式乘积描述法、状态图描述,树图描述, 网格图描述等。2、卷积码Viterbi译码原理卷积码概率译码的基本思路是:以接收码流为基础,逐 个计算它与其他所有可能岀现的、连续的网格图路径的距离, 选出其中可能性最大的一条作为译码估值输出。概率最大在 大多数场合可解释为距离最小,这种最小距离译码体现的正 是最大似然的准则。卷积码的最大似然译码与分组码的最大 似然译码在原理上是一样的,但实现方法上略有不同。主要 区别在于:分组码是孤立地求解单个码组的相似度,而卷积 码是求码字序列之间
23、的相似度。基于网格图搜索的译码是实 现最大似然判决的重要方法和途径。用格图描述时,由于路 径的汇聚消除了树状图中的多余度,译码过程中只需考虑整 个路径集合中那些使似然函数最大的路径。如果在某一点上 发现某条路径已不可能获得最大对数似然函数,就放弃这条 路径,然后在剩下的“幸存”路径中重新选择路径。这样一 直进行到最后第L级(L为发送序列的长度)。由于这种方 法较早地丢弃了那些不可能的路径,从而减轻了译码的工作 量,Viterbi译码正是基于这种想法。对于(n, k, K )卷积 码,其网格图中共2kL种状态。由网格图的前K-1条连续 支路构成的路径互不相交,即最初2k_l条路径各不相同, 当接
24、收到第K条支路时,每条路径都有2条支路延伸到第 K级上,而第K级上的每两条支路又都汇聚在一个节点上。 在Viterbi译码算法中,把汇聚在每个节点上的两条路径的 对数似然函数累加值进行比较,然后把具有较大对数似然函 数累加值的路径保存下来,而丢弃另一条路径,经挑选后第 K级只留下2K条幸存路径。选出的路径同它们的对数似然 函数的累加值将一起被存储起来。由于每个节点引岀两条支 路,因此以后各级中路径的延仲都增大一倍,但比较它们的 似然函数累加值后,丢弃一半,结果留存下来的路径总数保 持常数。由此可见,上述译码过程中的基本操作是,“加-比 -选”,即每级求出对数似然函数的累加值,然后两两比较后作
25、出选择。有时会岀现两条路径的对数似然函数累加值相等的 情形,在这种情况下可以任意选择其中一条作为“幸存”路 径。卷积码的编码器从全零状态出发,最后又回到全零状态 时所输出的码序列,称为结尾卷积码。因此,当序列发送完 毕后,要在网格图的终结处加上(K-1)个己知的信息作为 结束信息。在结束信息到来时,由于每一状态中只有与已知 发送信息相符的那条支路被延伸,因而在每级比较后,幸存 路径减少一半。因此,在接收到(K-1)个己知信息后,在 整个网格图中就只有唯一的一条幸存路径保留下来,这就是 译码所得的路径。也就是说,在己知接收到的序列的情况下, 这条译码路径和发送序列是最相似的。3、MATLAB 仿
26、真在本次实验中,主要是利用SIMULINK仿真模块对卷积 码的编码及viterbi译码的全过程进行了设计,SIMULINK仿 真框图如下:图1卷积码的SIMULINK仿真框图基本设计思路是:先由Bernoulli Binary Generator (贝努利二进制序列产生器)产生一个0, 1等概序列,经 过Convolutional Encoder (卷积编码器)对输入的二进制 序列进行卷积编码,并用BPSK调制方式调制信号。加入信 道噪声(高斯白噪声)后再经过BPSK解调制后送入Viterbi Decoder (Viterbi译码器)进行硬判决译码。最后经过Eiror Rate Calcula
27、tion (误码统计)后由Display (显示)输出。 然后通过Selector (数据选通器)将结果输出到To workspace (工作区间)。该结果将由m文件中的程序调用以 绘制不同信噪比及其他参数下系统误码率曲线。实验结果:1、不同的约束长度对卷积码误码率的影响对于码率一定的卷积码,当约束长度N发生变化时,系 统的误码性能也会随之发生变化,本实验中以码率R二1/2 的(2, 1, 3)和(2, 1,7)卷积码为例展开分析。仿真所用所用 程序如下:x=0:5;for i=l:length (x)SNR二x(i);sim(,juanjima,);y(i)=mean(BitErrorRate);endsemi logy (x, y,'H );hold on;for i=l:length (x)SNR=x(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论