【报告】卷积码实验报告

【报告】卷积码实验报告
【报告】卷积码实验报告

【关键字】报告

卷积码实验报告

篇一:卷积码实验报告

实验五信道编解码()

本章目标

掌握数字频带传输系统调制解调的仿真过程掌握数字频带传输系统误码率仿真分析方法5.1实验目的

1. 使用MATLAB进行卷积码编/译码器的仿真。

2. 熟练掌握MATLAB软件、语句。

3. 了解卷积码编/译码器的原理、知识。5.2实验要求

1. 编写源程序、准备尝试数据。

2. 在MATLAB环境下完成程序的编辑、编译、运行,获得程序结果。如果结果有误,

应找出原因,并设法更正之。5.3 实验原理

(一)卷积码编码器1. 连接表示

卷积码由3个整数n,k,N描述。k/n也表示编码效率(每编码比特所含的信

N称为约束长度,息量);但n与线性分组码中的含义不同,不再表示分组或码子长度;

表示在编码移位寄存器中k元组的级数。卷积码不同于分组码的一个重要特征就是编码器的记忆性,即卷积码编码过程中产生的n元组,不仅是当前输入k元组的函数,而且还是前面N?1个输入k元组的函数。实际情况下,n和k经常取较小的值,而通过N的变化来控制编码的能力和复杂性。

下面以图1中的卷积码编码器为例介绍卷积码编码器。该图表示一个约束长度

K?3的(2,1)卷积译码器,模2加法器的数目为n?2,因此,编码效率k/n?1/2。

在每个输入比特时间上,1位信息比特移入寄存器最左端的一级,同时将寄存器中原有比特均右移一级,接着便交替采样两个模2加法器,得到的码元就是与该输入比特相对应的分支字。对每一个输入信号比特都重复上述采样过程。

图1卷积码编码器(编码效率1/2,K?3)

用于描述反馈移位寄存器实现循环码时所使用的生成多项式也可用户描述卷积码编码器的连接。应用n个生成多项式描述编码的移位寄存器与模2加法器的连接方式,n个生成多项式分别对应n个模2加法器,每个生成多项式不超过K?1阶。仍以图1中的编码器为例,用生成多项式g1(X)代表上方连接,g2(X)代表下方连接,则有:g1(X)?1?X?X2g2(X)?1?X

2

多项式中的最低阶项对应于寄存器的输入级。输出序列根据如下方式求得:

U(X)?m(X)g1(X)与m(X)g2(X)交织

其中m表示输入的信息矢量。2. 状态图

卷积编码器属于有限状态机的器件。“有限”表明状态机制只有有限个不同的状态。有限状态机的状态可以用设备的当前输入和最少的信息量,来预测设备的输出。状态提供了有关

过去序列过程及一组将来可能输出序列的限制,下一状态总是受到前一状态的限制。将编码器在时刻ti的状态定义为Xi?mi?1,mi?2,...,mi?K?1。

01

图2状态转移图

如图2所示,方框内的状态表示寄存器最右端N?1级的内容,状态间的路径表示由此状态转移时的输出分支字。对应于两种可能的输入bit,从每个状态出发只有两种转移。

3. 编码器网格图

a 00

b 10

c 01

d 11

输入比特0

输入比特1

虽然状态图完全地描述了编码器的特性,但由于没有表示时间过程,所以采用状态图跟踪编码器的状态转移很不方便。树状图在状态图的基础上增加了时间尺度。每个相继输入信息比特的编码过程可表述为从左向右经过树状图,每条数值代表一个输出分支字。树状图上增加的时间尺度是我们可以动态地描述输入序列的编码过程。但由于树状图的规模增长很快,因而只适于序列中分支子数目较小的情况。

我们采用移位寄存器的4种可能状态来标注树图的各个节点,

a?00,b?01,c?10,d?11。树结构的第一次分支在时刻t1,产生一对节点,记为a,b;

在后继的各个分支处,节点数翻倍。第二次分支在时刻t2,生成4个节点,记为a,b,c,d;第三次分支后共有8个节点。网格图利用了结构上的重复性,从而能够更加方便地描述编码器。

(二)维特比译码算法

维特比译码算法由维特比在1967年提出。维特比算法的实质是最大似然译码,但它利用了编码网格图的特殊结构,从而降低了计算的复杂性。该算法包括计算网格图上在时刻

ti到达各个状态的路径和接受序列之间的相似度,或者说距离。维特比算法考虑的是,去除不可能成为最大似然选择对象的网格图上的路径,即如果有两条路径到达同一状态,则具有最佳量度的路径被选中,成为幸存路径。对所有状态都将进行这样的选路操作,译码器不断在网格图上深入,通过去除可能性最小的路径实现判决。

网格图中每个时刻ti上有2

K?1

条路径到达。维特比译码包括计算到达每个状态的两条路径的路径量度,并舍弃其中一条路径。在时刻ti,算法对2

K?1

并重复上述过程。在一个给定的时刻,各状态的幸存路径量度就是该状态在该时刻的状态量度。

图3编码器网格图

个状态,这里的K是约束长度,每种状态都可经两

个状态(节点)都进行上述计算,然后进入时刻ti?1,

输入数据序列m:发送序列U:接受序列Z: 1 111 0 1 01 01

a 00

b 10

c 01

d 11

输入比特0

输入比特1

图4译码器网格图

5.4实验内容

在MATLAB上设计一个(2,1,3)卷积编码器和对应的采用维特比译码算法的译码器。编码器的生成多项式为:

g1(X)?1?X?X2g2(X)?1?X

2

将编码器的输出经过一个高斯白噪声信道的结果作为译码器的输入,观察比较译码器输出和编码器输入,了解卷积码的容错性,并计算译码结果的误比特率。基本流程如错误!未找到引用源。所示。实验报告要求附加程序代码,并对代码中每个函数模块的实验方式和功能进行简要的说明。

输出编码结果

卷积码编码模块:卷积码编码子程序:

function out_put=conv_enc(msg) g1=[1 1 1]; g2=[1 0 1]; m1=conv(msg,g1); m2=conv(msg,g2); L1=length(m1); for i=1:L1

out_put(2*i-1)=rem(m1([i]),2);

out_put(2*i)=rem(m2([i]),2); end end

该模块将对输入信息码子编码。

维特比算法解码器的实现函数:

function decoder_output=viterbi_hard(y,L) global G;

G=[1 1 1;1 0 1]; n=size(G,1); K=size(G,2);

number_of_states=2^(K-1);

%-------生成各分支的输出-------------------- for j=0:number_of_states-1 for t=0:1

[next_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+1)=next_state;

output(j+1,t+1)=bin2deci(branch_output); end end

%------------------------------------------------

metric_of_states=zeros(1,number_of_states); %各状态的度量metricmetric_of_states_c=zeros(number_of_states,2);%各状态两个输入的度量length_seq=length(y)/n;

%符号个数

decoder_output=zeros(1,length_seq-K+1); %解码输出

channel_output_matrix=reshape(y,n,length_seq);

%将解调输出的比特按符号排列

survivor_state=zeros(number_of_states,length_seq+1); %留存路径input_of_state=zeros(number_of_states,length_seq+1,2);

%汇聚到各状态的分支对应的输入

state_sequence=zeros(1,length_seq+1);count=zeros(1,number_of_states);

for i=1:length_seq-K+1 for j=0:number_of_states-1 for t=0:1

binary_output=deci2bin(output(j+1,t+1),n);

篇二:卷积码编译码实验报告

厦门理工学院

实验报告书

课程名称:信息论与编码实验

实验名称:卷积码编译码

1

2

中输入移位寄存器最多只有m?k个有效的寄存器单元,而输出移位寄存器仅起一个并串转换作用。因此称参量m为卷积吗的记忆长度(段)

2、维比特译码原理

它的基本思想是把接收到的矢量,和网格图上诸种可能的路径比较,删去距离大的路径,保留距离小的路径,以距离最小路径作为发码的估值

五、实验内容

在MATLAB环境下卷积码编/解码器的实现。

1、主函数main.m

clear;clc;

msg = randint(1,20,[0,1])

word = encode_conv213(msg)

word(1) =~word(1);%信道中存在污染,人为的模拟传输过word(10) =~word(10); %程中的出错码字

word(15) =~word(15);

word1=word

msg_1 = decode_conv213(word1)

msg-msg_1

2 、状态积state_machine.m

function [output,nextState] = state_machine(input,current_state)

output(1) = mod(current_state(1)+current_state(3),2);

output(2) = mod(input+current_state(2)+current_state(1),2);

nextState(1) = current_state(2);

nextState(2) = current_state(3);

nextState(3) = input;

3、汉明距离hamming_distance.m

function distance = hamming_distance(a,b)

temp = a+b;

temp = mod(temp,2);

distance = sum(temp);

4 、213编码程序encode_conv213.m

function word = encode_conv213(msg)

word = zeros(1,length(msg)*2);

current = [0 0 0];

for i = 1:length(msg)

[out,next] = state_machine(msg(i),current);

3

current = next;

word(2*i-1) = out(1);

word(2*i)= out(2);

End

5、213维比特译码decode_conv213.m

function msg = decode_conv213(word)

chip = 10;%初始状态选十个信息

for i = 1:2^chip

M(i,:)= de2bi(i-1,chip); %把所有可能性按二进制输出

W(i,:)= encode_conv213(M(i,:));

%得到相应的二进制编译后的码字

D(i) = hamming_distance(W(i,:),word(1:chip*2));

%与出错码字对比得到汉明距

end

[val,index] = sort(D);

%val中存汉明距从小到大排列,index中存对应val数据所在位置

ret_msg = zeros(1,length(word)/2); %开辟译出码字的存放空间

for i = 1:6

%1024种选择6种最小距离,并输出在ret_msg中,最小汉明距存于ret_dis ret_msg(i,1:chip)= M(index(i),:);

ret_dis(i) = D(index(i));

end

iter = (length(word)-chip*2)/2; %剩余要译出的码字个数

for i=1:iter %迭代过程

for j=1:6

msg_temp1= [ret_msg(j,1:chip+i-1) 0]; %下一状态出“0”

msg_temp2= [ret_msg(j,1:chip+i-1) 1]; %下一状态出“1”

word_temp1 = encode_conv213(msg_temp1);

%下一状态为“0”时的编码

word_temp2 = encode_conv213(msg_temp2);

%下一状态为“1”时的编码

dis_temp1= hamming_distance(word_temp1,word(1:chip*2+2*i));

dis_temp2= hamming_distance(word_temp2,word(1:chip*2+2*i)); %算两种汉明距if (dis_temp1ret_msg(j,1:chip+i) = msg_temp1;

ret_dis(j) = dis_temp1;

else

ret_msg(j,1:chip+i) = msg_temp2;

ret_dis(j)= dis_temp2;

%选择较小汉明距的状态储存并输出在ret_msg中,最小汉明距存于ret_dis

end

end

4

5

篇三:卷积码实验报告

现代编码理论

基于MATLAB的卷积码编码及译码仿真

姓名:闫嘉川

学号:1433170

所在院系:电子与信息工程学院

实验名称:基于MAATLAB的卷积码编码及译码仿真

实验目的:卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本实验简明地介绍了卷积码的编码原理和Viterbi译码原理。并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。经过仿真和实测,并对尝试结果作了分析。

实验原理:

1、卷积码编码原理

卷积码是一种性能优越的信道编码,它的编码器和解码器都比较易于实现,同时还具有较强的纠错能力,这使得它的使用越来越广泛。卷积码一般表示为(n,k,K)的形式,即将k个信息比特编码为n 个比特的码组,K 为编码约束长度,说明编码过程中相互约束的码段个

数。卷积码编码后的n 各码元不经与当前组的k 个信息比特有关,还与前K-1 个输入组的信息比特有关。编码过程中相互关联的码元有K*n 个。R=k/n 是编码效率。编码效率和约束长度是衡量卷积码的两个重要参数。典型的卷积码一般选n,k 较小,K 值可取较大(>10),但以获得简单而高性能的卷积码。

卷积码的编码描述方式有很多种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述,树图描述,网格图描述等。

2、卷积码Viterbi译码原理

卷积码概率译码的基本思路是:以接收码流为基础,逐个计算它与其他所有可能出现的、连续的网格图路径的距离,选出其中可能性最大的一条作为译码估值输出。概率最大在大多数场合可解释为距离最小,这种最小距离译码体现的正是最大似然的准则。卷积码的最大似然译码与分组码的最大似然译码在原理上是一样的,但实现方法上略有不同。主要区别在于:分组码是孤立地求解单个码组的相似度,而卷积码是求码字序列之间的相似度。基于网格图搜索的译码是实现最大似然判决的重要方法和途径。用格图描述时,由于路径的汇聚消除了树状图中的多余度,译码过程中只需考虑整个路径集合中那些使似然函数最大的路径。如果在某一点上发现某条路径已不可能获得最大对数似然函数,就放弃这条路径,然后在剩下的“幸存”路径中重新选择路径。这样一直进行到最后第L 级(L 为发送序列的长度)。由于这种方法较早地丢弃了那些不可能的路径,从而减轻了译码的工作量,Viterbi 译码正是基于这种想法。对于(n, k, K )卷积码,其网格图中共2kL 种状态。由网格图的前K-1 条连续支路构成的路径互不相交,即最初2k_1 条路径各不相同,当接收到第K 条支路时,每条路径都有2 条支路延伸到第K 级上,而第K 级上的每两条支路又都汇聚在一个节点上。在Viterbi 译码算法中,把汇聚在每个节点上的两条路径的对数似然函数累加值进行比较,然后把具有较大对数似然函数累加值的路径保存下来,而丢弃另一条路径,经挑选后第K 级只留下2K 条幸存路径。选出的路径同它们的对数似然函数的累加值将一起被存储起来。由于每个节点引出两条支路,因此以后各级中路径的延伸都增大一倍,但比较它们的似然函数累加值后,丢弃一半,结果留存下来的路径总数保持常数。由此可见,上述译码过程中的基本操作是,“加-比-选”,

即每级求出对数似然函数的累加值,然后两两比较后作出选择。有时会出现两条路径的对数似然函数累加值相等的情形,在这种情况下可以任意选择其中一条作为“幸存”路径。

卷积码的编码器从全零状态出发,最后又回到全零状态时所输出的码序列,称为结尾卷积码。因此,当序列发送完毕后,要在网格图的终结处加上(K-1)个己知的信息作为结束信息。在结束信息到来时,由于每一状态中只有与已知发送信息相符的那条支路被延伸,因而在每级比较后,幸存路径减少一半。因此,在接收到(K-1)个己知信息后,在整个网格图中就只有唯一的一条幸存路径保留下来,这就是译码所得的路径。也就是说,在己知接收到的序列的情况下,这条译码路径和发送序列是最相似的。

3、MATLAB 仿真

在本次实验中,主要是利用SIMULINK仿真模块对卷积码的编码及viterbi译码的全过程进行了设计,SIMULINK仿真框图如下:

图1卷积码的SIMULINK仿真框图

基本设计思路是:先由Bernoulli Binary Generator(贝努利二进制序列产生器)产生一个0,1等概序列,经过Convolutional Encoder(卷积编码器)对输入的二进制序列进行卷积编码,并用BPSK调制方式调制信号。加入信道噪声(高斯白噪声)后再经过BPSK解调制后送入Viterbi Decoder(Viterbi译码器)进行硬判决译码。最后经过Error Rate Calculation(误码统计)后由Display(显示)输出。然后通过Selector(数据选通器)将结果输出到To workspace (工作区间)。该结果将由m文件中的程序调用以绘制不同信噪比及其他参数下系统误码率曲线。

实验结果:1、不同的约束长度对卷积码误码率的影响

对于码率一定的卷积码,当约束长度N 发生变化时,系统的误码性能也会随之发生变化, 本实验中以码率R = 1/2的(2,1,3)和(2,1,7) 卷积码为例展开分析。仿真所用所用程序如下:x=0:5;

y=x;

for i=1:length(x)

SNR=x(i);

sim('juanjima');

y(i)=mean(BitErrorRate);

end

semilogy(x,y,’

r’);

hold on;

for i=1:length(x)

SNR=x(i);

sim('juanjima2');

y(i)=mean(BitErrorRate);

end

semilogy(x,y,’g’);

xlabel('SNR')

ylabel('BitErrorRate')

仿真结果:

图2约束长度对卷积码性能的影响

结果分析:

对于码率一定的卷积码,当约束长度N 发生变化时,系统的误码性能也会随之发生变化, 我们以码率R = 1/ 2的(2 ,1 ,3)和(2,1,7)卷积码为例展开分析。上面的曲线是(2,1,3)卷积码的误码性能曲线。下面的曲线是(2,1,

7)卷积码的误码性能曲线。从图4-4中的误比特率曲线可以清楚地看到,随着约束长度的逐渐增加,系统的误比特率明显降低,所以说当码率一定时,增加约束长度可以降低系统的误比特率,但是随着约束长度的增加,译码设备的复杂性

也会随之增加,所以对于码率为1/ 2 的卷积码,我们在选取约束长度时一般为3~

9 。

2、回溯长度对卷积码性能的影响

以(2,1,7)卷积码为例。将译码模块中的Traceback depth分别设置为20,35,50并在一个图中画出这三种方式下的误码性能曲线。仿真所用程序如下:

x= 0:5;

y=x;

for i=1:length(x)

SNR=x(i);

sim('juanjima');

y(i)=mean(BitErrorRate);

end

semilogy(x,y,’r’);

hold on;

for i=1:length(x)

SNR=x(i);

sim('juanjima2');

y(i)=mean(BitErrorRate);

end

semilogy(x,y,’g’);

hold on;

for i=1:length(x)

SNR=x(i);

sim('juanjima3');

y(i)=mean(BitErrorRate);

end

semilogy(x,y,’b’);

xlabel('SNR')

ylabel('BitErrorRate')

仿真结果:

此文档是由网络收集并进行重新排版整理.word可编辑版本!

移动通信实验线性分组码卷积码实验

实验二抗衰落技术实验(4学时) 1.线性分组码实验 2.卷积码实验 姓名: 学号: 班级: 日期: 成绩:

1、线性分组码实验 一、实验目的 了解线性分组码在通信系统中的意义。 掌握汉明码编译码及其检错纠错原理,理解编码码距的意义。二、实验模块 主控单元模块 2号数据终端模块 4号信道编码模块 5号信道译码模块 示波器 三、实验原理

汉明码编译码实验框图 2、实验框图说明 汉明码编码过程:数字终端的信号经过串并变换后,数据进行了分组,分组后的数据再经过汉明码编码,数据由4bit变为7bit。 注:为方便对编码前后的数据进行对比观测,本实验中加入了帧头指示信号。帧头指示信号仅用于线性分组码编码时将输入信号的比特流进行分组,其上跳沿指示了分组的起始位置。 四、实验步骤 (注:实验过程中,凡是涉及到测试连线改变或者模块及仪器仪表的更换时,都需先停止运行仿真,待连线调整完后,再开启仿真进行后续调节测试。) 任务一汉明码编码规则验证 概述:本项目通过改变输入数字信号的码型,观测延时输出,编码输出及译码输出,验证汉明码编译码规则。 1、登录e-Labsim仿真系统,创建实验文件,选择实验所需模块和示波器。 2、按表格所示进行连线。 3、调用示波器观测2号模块的DoutMUX和4号模块的编码输出TH4编码数据,

6、此时系统初始状态为:2号模块提供32K编码输入数据,4号模块进行汉明码编码,无差错插入模式,5号模块进行汉明码译码。 7、实验操作及波形观测。 0000 0001 0010

0100 0101

0111 1000

卷积码编码和维特比译码

卷积码编码维特比译码实验设计报告 SUN 一、实验目的 掌握卷积码编码和维特比译码的基本原理,利用了卷积码的特性, 运用网格图和回溯以得到译码输出。 二、实验原理 1.卷积码是由连续输入的信息序列得到连续输出的已编码序列。其编码器将k个信息码元编为n个码元时,这n个码元不仅与当前段的k个信息有关,而且与前面的(m-1)段信息有关(m为编码的约束长度)。 2.一般地,最小距离d表明了卷积码在连续m段以内的距离特性,该码可以在m个连续码流内纠正(d-1)/2个错误。卷积码的纠错能力不仅与约束长度有关,还与采用的译码方式有关。 3. 维特比译码算法基本原理是将接收到的信号序列和所有可能的发送信号序列比较,选择其中汉明距离最小的序列认为是当前发送序列。卷积码的Viterbi 译码是根据接收码字序列寻找编码时通过网格图最佳路径的过程,找到最佳路径即完成了译码过程,并可以纠正接收码字中的错误比特。 4.所谓“最佳”, 是指最大后验条件概率:P( C/ R) = max [ P ( Cj/ R) ] , 一般来说, 信道模型并不使用后验条件概率,因此利用Beyes 公式、根据信道特性出结论:max[ P ( Cj/ R) ]与max[ P ( R/ Cj) ]等价。考虑到在系统实现中往往采用对数形式的运算,以求降低运算量,并且为求运算值为整数加入了修正因子a1 、a2 。令M ( R/ Cj) = log[ P ( R/ Cj) ] =Σa1 (log[ P( Rm/ Cmj ) ] + a2) 。其中, M 是组成序列的码字的个数。因此寻找最佳路径, 就变成寻找最大M( R/ Cj) , M( R/ Cj) 称为Cj 的分支路径量度,含义为发送Cj 而接收码元为R的似然度。 5.卷积码的viterbi译码是根据接收码字序列寻找编码时通过网格图最佳路径的过程,找到最佳路径即完成了译码过程并可以纠正接收码字中的错误比特。 三、实验代码 #include<> #include "" #define N 7 #include "" #include <> #include<> #define randomize() srand((unsigned)time(NULL)) encode( unsigned int *symbols, /*编码输出*/ unsigned int *data, /*编码输入*/ unsigned int nbytes, /*nbytes=n/16,n为实际输入码字的数目*/ unsigned int startstate /*定义初始化状态*/

DSP卷积码的维特比译码的分析与实现

编号: 《DSP技术与应用》课程论文卷积码的维特比译码的分析与实现 论文作者姓名:______ ______ 作者学号:___ ______ 所在学院: 所学专业:_____ ___ 导师姓名职称:__ _ 论文完成时间: _

目录 摘要: (1) 0 前言 (2) 1 理论基础 (2) 1.1信道理论基础 (2) 1.2差错控制技术 (3) 1.3纠错编码 (4) 1.4线性分组码 (5) 2 卷积码编码 (7) 2.1 卷积码概要 (7) 2.2 卷积码编码器 (8) 2.3卷积码的图解表示 (8) 2.4 卷积码的解析表示 (11) 3 卷积码的译码 (14) 3.1 维特比译码 (15) 3.2 代数译码 (17) 3.3 门限译码 (18) 4 维特比译码器实现 (18) 4.1 TMS320C54 系列DSP概述 (18) 4.2 Viterbi译码器的DSP实现 (19) 4.3 实现结果 (21) 5 结论 (21) 参考文献 (22) II

卷积码的维特比译码的分析与实现 摘要: 针对数据传输过程中的误码问题,本文论述了提高数据传输质量的一些编码及译码的实现问题。自P.Elias 首次提出卷积码编码以来,这一编码技术至今仍显示出强大的生命力。在与分组码同样的码率R 和设备复杂性的条件下,无论从理论上还是从实际上均己证明卷积码的性能至少不比分组码差,且实现最佳和准最佳译码也较分组码容易。目前,卷积码已广泛应用在无线通信标准中,其维特比译码则利用码树的重复性结构,对最大似然译码算法进行了简化。本文所做的主要工作: 首先对信道编码技术进行了研究,根据信道中可能出现的噪声等问题对卷积码编码方法进行了主要阐释。 其次,对卷积码维特比译码器的实现算法进行了研究,完成了译码器的软件设计。 最后,结合实例,采用DSP芯片实现卷积码的维特比译码算法的仿真和运行。 关键词: 卷积码维特比译码DSP Convolutional codes and Viterbi decoding analysis and realization Zhang Yi-Fei (School of Physics and Electronics, Henan University, Henan Kaifeng 475004, China) Abstract: Considering the error bit problem during data transmission,this thesis discussed some codings and decoders,aiming at enhancing transmission performance. From P.Elias first gave the concept of convolutional code, it has show its’ great advantage. Under the same condition and the same rate of block code, the performance of convolutional code is better than block code, and it’s easier to implement the best decoding.Convolutional codes have been widely used in wireless communication standards, the V iterbi decoding using the repetitive structure of the code tree, the maximum likelihood decoding algorithm has been simplified. Major work done in this article: First, the channel coding techniques have been studied, the main interpretation of the convolutional code encoding method according to the channel may be noise and other issues. Secondly, the convolutional code V iterbi decoder algorithm has been studied, the software design of the decoder. Finally, with examples, simulation and operation of the DSP chip convolutional codes, Viterbi decoding algorithm. 1

实验九 (2,1,5)卷积码编码译码技术

实验九 (2,1,5)卷积码编码译码技术 一、实验目的 1、掌握(2,1,5)卷积码编码译码技术 2、了解纠错编码原理。 二、实验内容 1、(2,1,5)卷积码编码。 2、(2,1,5)卷积码译码。 三、预备知识 1、纠错编码原理。 2、(2,1,5)卷积码的工作原理。 四、实验原理 卷积码是将发送的信息序列通过一个线性的,有限状态的移位寄存器而产生的编码。通常卷积码的编码器由K级(每级K比特)的移位寄存器和n个线性代数函数发生器(这里是模2加法器)组成。 若以(n,k,m)来描述卷积码,其中k为每次输入到卷积编码器的bit数,n 为每个k元组码字对应的卷积码输出n元组码字,m为编码存储度,也就是卷积编码器的k元组的级数,称m+1= K为编码约束度m称为约束长度。卷积码将k 元组输入码元编成n元组输出码元,但k和n通常很小,特别适合以串行形式进行传输,时延小。与分组码不同,卷积码编码生成的n元组元不仅与当前输入的k元组有关,还与前面m-1个输入的k元组有关,编码过程中互相关联的码元个数为n*m。卷积码的纠错性能随m的增加而增大,而差错率随N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。 编码器 随着信息序列不断输入,编码器就不断从一个状态转移到另一个状态并同时输出相应的码序列,所以图3所示状态图可以简单直观的描述编码器的编码过程。因此通过状态图很容易给出输入信息序列的编码结果,假定输入序列为110100,首先从零状态开始即图示a状态,由于输入信息为“1”,所以下一状态为b并输出“11”,继续输入信息“1”,由图知下一状态为d、输出“01”……其它输入信息依次类推,按照状态转移路径a->b->d->c->b->c->a输出其对应的编码结果“110101001011”。 译码方法 ⒈代数 代数译码是将卷积码的一个编码约束长度的码段看作是[n0(m+1),k0(m+1)]线性分组码,每次根据(m+1)分支长接收数字,对相应的最早的那个分支上的信息数字进行估计,然后向前推进一个分支。上例中信息序列 =(10111),相应的码序列 c=(11100001100111)。若接收序列R=(10100001110111),先根据R 的前三个分支(101000)和码树中前三个分支长的所有可能的 8条路径(000000…)、(000011…)、(001110…)、(001101…)、(111011…)、(111000…)、(110101…)和(110110…)进行比较,可知(111001)与接收

卷积信号实验报告

信号与系统上机实验报告一连续时间系统卷积的数值计算 140224 班张鑫学号 14071002 一、实验原理 计算两个函数的卷积 卷积积分的数值运算实际上可以用信号的分段求和来实现,即: 如果我们只求当 t = n? t1 是r ( t )的值,则由上式可以得到: ?t足够小时,r(t2)就是e(t)和f(t)卷积积分的数值近似值由上面的公式可 当1 以得到卷积数值计算的方法如下: (1)将信号取值离散化,即以为周期,对信号取值,得到一系列宽度间隔为 的矩形脉冲原信号的离散取值点,用所得离散取值点矩形脉冲来表示原来的连续时间信号; (2)将进行卷积的两个信号序列之一反转,与另一信号相乘,并求积分,所得为t=0时的卷积积分的值。以为单位左右移动反转的信号,与另一信号相乘求积 分,求的t<0和t>0时卷积积分的值; (3)将所得卷积积分值与对应的t标在图上,连成一条光滑的曲线,即为所求卷积积分的曲线。 1

信号与系统上机实验报告一二、处理流程图 三、C程序代码 #include"stdafx.h" #include"stdio.h" //#include "stdilb.h" float u(float t) { while (t>= 0) return(1); while (t<0) return(0); } float f1(float t) { return(u(t+2)-u(t-2)); } float f2(float t) { return(t*(u(t)-u(t-2))+(4-t)*(u(t-2)-u(t-4))); } int_tmain(int argc, _TCHAR* argv[]) {

卷积码编译码课设 (2)

摘要 卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本文对卷积码和卷积码的编译码有一个简单的介绍且给出了信道编码的发展历史及研究状况,然后详细讨论了(2,1,2)卷积码的编码过程和译码过程,通过状态转移方程和输出方程得出状态转移表和状态转移图,然后通过维特比译码器研究,总结出了维特比译码算法,最后通过Matlab软件进行设计与仿真,得到了编码程序和译码程序,其运行结果与理论分析一致。 关键字卷积码编码、信道编码、Viterbi译码、MATLAB仿真

目录 摘要........................................... 错误!未定义书签。 一、引言 (3) 1.1发展历史及研究状况 (3) 1.2设计目的和意义 (3) 1.3设计方法 (4) 二、卷积码编译码原理 (5) 2.1 卷积码编码原理 (5) 2.2编码器 (6) 2.3 卷积码译码原理 (7) 2.4 VITEBI 译码的关键步骤 (8) 2.4.1 输入与同步单元 (8) 2.4.2 支路量度计算 (8) 2.4.3 路径量度的存储与更新 (8) 2.4.4 信息序列的存储与更新 (8) 2.4.5 判决与输出单元 (8) 三、卷积码编码实现 (9) 3.1 编码原理分析 (9) 3.2 卷积码编码流程图 (10) 四、卷积码译码实现 (11) 4.1 译码编程思路 (11) 4.2 卷积码译码流程图 (11) 五、卷积码编译码程序的编译及仿真波形 (11) 5.1 卷积码编码仿真 (12) 5.2卷积码译码仿真 (13) 5.3卷积码纠错码仿真 (14) 六、总结 (15) 七、参考文献 (16) 附录 (17)

卷积编码实验报告

实验名称:___ 卷积编码_______ 1、使用MATLAB进行卷积编码的代码编写、运行、仿真等操作; 2、熟练掌握MATLAB软件语句; 3、理解并掌握卷积编码的原理知识。 二、实验原理 卷积码是由Elias于1955 年提出的,是一种非分组码,通常它更适用于前向纠错法,因为其性能对于许多实际情况常优于分组码,而且设备较简单。 卷积码的结构与分组码的结构有很大的不同。具体地说,卷积码并不是将信息序列分成不同的分组后进行编码,而是将连续的信息比特序列映射为连续的编码器输出符号。卷积码在编码过程中,将一个码组中r 个监督码与信息码元的相关性从本码组扩展到以前若干段时刻的码组,在译码时不仅从此时刻收到的码组中提取译码信息,而且还可从与监督码相关的各码组中提取有用的译码信息。这种映射是高度结构化的,使得卷积码的译码方法与分组译码所采用的方法完全不同。可以验证的是在同样复杂度情况下,卷积码的编码增益要大于分组码的编码增益。对于某个

特定的应用,采用分组码还是卷积码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术。 (一)卷积编码的图形表示 卷积码的编码器是由一个有k 个输人位,n 个输出位,且有m 个移位寄存器构成的有限状态的有记忆系统,其原理如图1所示。 图1 卷积码编码器的原理图 描述这类时序网络的方法很多,它大致可分为两大类型:解析表示法与图形表示法。在解析法中又可分为离散卷积法、生成矩阵法、码多项式法等;在图形表示法中也可分为状态图法、树图法和网络图法等。 图2给出的是一个生成编码速率为1/2 卷积码的移位寄存器电路。输人比特在时钟触发下从左边移人到电路中,每输入一位,分别去两个模2加法器的输出值并复用就得到编码器的输出。对这一编码,每输入一比特就产生两个输出符号,故编码效率为

213卷积码编码和译码

No.15 (2,1,3)卷积码的编码及译码 摘要: 本报告对于(2,1,3)卷积码原理部分的论述主要参照啜刚教材和课件,编程仿真部分绝对原创,所有的程序都是在Codeblocks 8.02环境下用C语言编写的,编译运行都正常。完成了卷积码的编码程序,译码程序,因为对于短于3组的卷积码,即2 bit或4 bit纠错是没有意义的,所以对正确的短序列直接译码,对长序列纠错后译码,都能得到正确的译码结果。含仿真结果和程序源代码。 如果您不使用Codeblocks运行程序,则可能不支持中文输出显示,但是所有的数码输出都是正确的。

一、 卷积码编码原理 卷积码编码器对输入的数据流每次1bit 或k bit 进行编码,输出n bit 编码符号。但是输出的分支码字的每个码元不仅于此时可输入的k 个嘻嘻有关,业余前m 个连续式可输入的信息有关,因此编码器应包含m 级寄存器以记录这些信息。 通常卷积码表示为 (n,k,m). 编码率 k r n = 当k=1时,卷积码编码器的结构包括一个由m 个串接的寄存器构成的移位寄存器(成为m 级移位寄存器、n 个连接到指定寄存器的模二加法器以及把模二加法器的输出转化为穿行的转换开关。 本报告所讲的(2,1,3)卷积码是最简单的卷积码。就是2n =,1k =,3m =的卷积码。每次输入1 bit 输入信息,经过3级移位寄存器,2个连接到指定寄存器的模二加法器,并把加法器输出转化为串行输出。 编码器如题所示。 二、卷积码编码器程序仿真 C 语言编写的仿真程序。 为了简单起见,这里仅仅提供数组长度30 bit 的仿真程序,当然如果需要可以修改数组大小。为了更精练的实现算法,程序输入模块没有提供非法字符处理过程,如果需要也可以增加相应的功能。 进入程序后,先提示输入数据的长度,请用户输入int (整型数)程序默认用户输入的数据小于30,然后提示输入01数码,读入数码存储与input 数组中,然后运算输出卷积码。经过实验仿真,编码完全正确。 以下是举例: a.课件上的输入101 输出11 10 00 的实验

MATLAB实现卷积码编译码-

本科生毕业论文(设计) 题目:MATLAB实现卷积码编译码 专业代码: 作者姓名: 学号: 单位: 指导教师: 年月日

目录 前言----------------------------------------------------- 1 1. 纠错码基本理论---------------------------------------- 2 1.1纠错码基本理论 ----------------------------------------------- 2 1.1.1纠错码概念 ------------------------------------------------- 2 1.1.2基本原理和性能参数 ----------------------------------------- 2 1.2几种常用的纠错码 --------------------------------------------- 6 2. 卷积码的基本理论-------------------------------------- 8 2.1卷积码介绍 --------------------------------------------------- 8 2.1.1卷积码的差错控制原理----------------------------------- 8 2.2卷积码编码原理 ---------------------------------------------- 10 2.2.1卷积码解析表示法-------------------------------------- 10 2.2.2卷积码图形表示法-------------------------------------- 11 2.3卷积码译码原理---------------------------------------------- 15 2.3.1卷积码三种译码方式------------------------------------ 15 2.3.2V ITERBI译码原理---------------------------------------- 16 3. 卷积码编译码及MATLAB仿真---------------------------- 18 3.1M ATLAB概述-------------------------------------------------- 18 3.1.1M ATLAB的特点------------------------------------------ 19 3.1.2M ATLAB工具箱和内容------------------------------------ 19 3.2卷积码编码及仿真 -------------------------------------------- 20 3.2.1编码程序 ---------------------------------------------- 20 3.3信道传输过程仿真-------------------------------------------- 21 3.4维特比译码程序及仿真 ---------------------------------------- 22 3.4.1维特比译码算法解析------------------------------------ 23 3.4.2V ITERBI译码程序--------------------------------------- 25 3.4.3 VITERBI译码MATLAB仿真----------------------------------- 28 3.4.4信噪比对卷积码译码性能的影响 -------------------------- 28

卷积码实验报告

苏州科技大学天平学院电子与信息工程学院 信道编码课程设计报告 课设名称卷积码编译及译码仿真 学生姓名圣鑫 学号1430119232 同组人周妍智 专业班级通信1422 指导教师潘欣欲 一、实验名称 基于MAATLAB的卷积码编码及译码仿真 二、实验目的 卷积码就是一种性能优越的信道编码。它的编码器与译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本实验简明地介绍了卷积码的编码原理与Viterbi译码原理。并在SIMULINK模块设计中,完成了对卷积码的编码与译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。经过仿真与实测,并对测试结果作了分析。 三、实验原理

1、卷积码编码原理 卷积码就是一种性能优越的信道编码,它的编码器与解码器都比较易于实现,同时还具有较强的纠错能力,这使得它的使用越来越广泛。卷积码一般表示为(n,k,K)的形式,即将 k个信息比特编码为 n 个比特的码组,K 为编码约束长度,说明编码过程中相互约束的码段个数。卷积码编码后的 n 各码元不经与当前组的 k 个信息比特有关,还与前 K-1 个输入组的信息比特有关。编码过程中相互关联的码元有 K*n 个。R=k/n 就是编码效率。编码效率与约束长度就是衡量卷积码的两个重要参数。典型的卷积码一般选 n,k 较小,K 值可取较大(>10),但以获得简单而高性能的卷积码。 卷积码的编码描述方式有很多种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述,树图描述,网格图描述等。 2、卷积码Viterbi译码原理 卷积码概率译码的基本思路就是:以接收码流为基础,逐个计算它与其她所 有可能出现的、连续的网格图路径的距离,选出其中可能性最大的一条作为译码估值输出。概率最大在大多数场合可解释为距离最小,这种最小距离译码体现的正就是最大似然的准则。卷积码的最大似然译码与分组码的最大似然译码在原理上就是一样的,但实现方法上略有不同。主要区别在于:分组码就是孤立地求解单个码组的相似度,而卷积码就是求码字序列之间的相似度。基于网格图搜索的译码就是实现最大似然判决的重要方法与途径。用格图描述时,由于路径的汇聚消除了树状图中的多余度,译码过程中只需考虑整个路径集合中那些使似然函数最大的路径。如果在某一点上发现某条路径已不可能获得最大对数似然函数,就放弃这条路径,然后在剩下的“幸存”路径中重新选择路径。这样一直进行到最后第 L 级(L 为发送序列的长度)。由于这种方法较早地丢弃了那些不可能的路径,从而减轻了译码的工作量,Viterbi 译码正就是基于这种想法。对于(n, k, K )卷积码,其网格图中共 2kL 种状态。由网格图的前 K-1 条连续支路构成的路径互不相交,即最初 2k_1 条路径各不相同,当接收到第 K 条支路时,每条路径都有 2 条支路延伸到第 K 级上,而第 K 级上的每两条支路又都汇聚在一个节点上。在Viterbi译码算法中,把汇聚在每个节点上的两条路径的对数似然函数累加

信 卷积实验报告

信号与系统实验报告学院:电子信息与电气工程学院 班级: 13级电信<1>班 学号: 20131060104 姓名:李重阳

实验三 信号卷积实验 一、实验目的 1、理解卷积的概念及物理意义; 2、通过实验的方法加深对卷积运算的图解方法及结果的理解。 二、实验原理说明 卷积积分的物理意义是将信号分解为冲激信号之和,借助系统的冲激响应,求解系统对任意激励信号的零状态响应。设系统的激励信号为x (t ),冲激响应为h (t ),则系统的零状态响应为()()()*y t x t h t ==()()x t h t d ττ∞-∞-?。 1、两个矩形脉冲信号的卷积过程 两信号x (t )与h (t )都为矩形脉冲信号,如图3-1所示。下面由图解的方法(图3-1)给出两个信号的卷积过程和结果,以便与实验结果进行比较。 图3-1 两矩形脉冲的卷积积分的运算过程与结果 2、矩形脉冲信号与锯齿波信号的卷积 信号f1(t )为矩形脉冲信号, f2(t )为锯齿波信号,如图3-2所示。根据卷积积分的运算方法得到f1(t )和f2(t )的卷积积分结果f (t ),如图3-2(c )所示。 图3-2 矩形脉冲信号与锯齿脉冲信号的卷积积分的结果 3、本实验进行的卷积运算的实现方法 在本实验装置中采用了DSP 数字信号处理芯片,因此在处理模拟信号的卷积积分运算时,是先通过A/D 转换器把模拟信号转换为数字信号,利用所编写的相应程序控制DSP 芯片实现数字信号的卷积运算,再把运算结果通过D/A 转换为模拟信号输出。结果与模拟信号的直接运算结果是一致的。数字信号处理系统逐步和完全取代模拟信号处理系统是科学技术发展的必然趋势。图3-3为信号卷积的流程图。 图3-3 信号卷积的流程图 三、实验内容 1、检测矩形脉冲信号的自卷积结果。 用双踪示波器同时观察输入信号和卷积后的输出信号,把输入信号的幅度峰峰值调节为4V ,再调节输入信号的频率或占空比使输入信号的时间宽度满足表中的要求,观察输出信号有何变化,判断卷积的结果是否正确,并记录表3-1。 实验步骤如下: ①将函数发生器的SW702置于“方波”上。 ②连接函数发生器H701与数字滤波器的PB01,在TPB01上可观察到输入波形。将示波器接在TPB01上观测输入波形,并调节函数发生器模块上的频率旋钮与幅度旋钮,使信号频率为1KHz ,幅度为4V 。(注意:输入波形的频率幅度要在H701与PB01连接后,在TPB01上测试。) ③将红色拨动开关SWB01调整为“0001”。 ④按下复位键S1。 ⑤将示波器的CH1接于TP901;CH2接于TP903。可分别观察到输入信号的波形与卷积后的输出信号的波形。 表3-1 输入信号卷积后的输出信号

14卷积码编解码

实验四 卷积码的编解码 一、实验目的 1、掌握卷积码的编解码原理。 2、掌握卷积码的软件仿真方法。 3、掌握卷积码的硬件仿真方法。 4、掌握卷积码的硬件设计方法。 二、预习要求 1、掌握卷积码的编解码原理和方法。 2、熟悉matlab 的应用和仿真方法。 3、熟悉Quatus 的应用和FPGA 的开发方法。 三、实验原理 1、卷积码编码原理 在编码器复杂度相同的情况下,卷积码的性能优于分组码,因此卷积码几乎被应用在所有无线通信的标准之中,如GSM , IS95和CDMA 2000 的标准中。 卷积码通常记作( n0 , k0 , m) ,它将k 0 个信息比特编为n 0 个比特, 其编码效率为k0/ n0 , m 为约束长度。( n0 , k0 , m ) 卷积码可用k0 个输入、n0 个输出、输入存储为m 的线性有限状态移位寄存器及模2 加法计数器来实现。 本实验以(2,1,3)卷积码为例加以说明。图1就是卷积码编码器的结构。 图1 (2,1,3)卷积码编码器 其生成多项式为: 21()1G D D D =++; 2 2()1G D D =+; 如图1 所示的(2,1,3)卷积码编码器中,输入移位寄存器用转换开关代替,每输入一个信息比特经编码产生二个输出比特。假设移位寄存器的初始状态为全0,当第一个输入比特为0时,输出比特为00;若输入比特为1,则输出比特为11。随着第二个比特输入,第一个比特右移一位,此时输出比特同时受到当前输入比特和前一个输入比特的影响。第三个比特输入时,第一、二个比特分别右移一位,同时输出二个由这三位移位寄存器存储内容所共同决定的比特。依次下去就完成了编码过程。 下面是卷积码的网格图表示。他是比较清楚而又紧凑的描述卷积码的一种方式,它是最常用的描述方

基于matlab的2-3卷积码编码译码设计与仿真

西南科技大学 方向设计报告 课程名称:通信工程方向设计 设计名称:2/3卷积码编译码器仿真与性能分析 姓名: 学号: 班级: 指导教师: 起止日期:2011.12.12-2012.1.6 西南科技大学信息工程学院制

方向设计任务书 学生班级:学生姓名:学号: 设计名称:2/3卷积码编译码器仿真与性能分析 起止日期:2011.12.12-2012.1.6指导教师: 设计要求: (1)分析2/3卷积码编码器结构; (2)分析2/3卷积码译码的Viterbi算法; (3)基于SIMULINK进行2/3卷积码的纠错性能仿真; 方向设计学生日志 时间设计内容 12.15-12.17 查看题目及设计要求。 12.18-12.23 查阅相关资料,设计方案。 12.23-12.27 编写报告及调试程序。 12.28-12.29 完善修改课程设计报告。 12.30-12.31 答辩。

方向设计考勤表 周星期一星期二星期三星期四星期五 方向设计评语表 指导教师评语: 成绩:指导教师: 年月日

2/3卷积码编译码器仿真与性能分析 摘要: 卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本文简明地介绍了卷积码的编码原理和Viterbi译码原理。并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。经过仿真和实测,并对测试结果作了分析。 关键词: 卷积码编码器、viterbi译码器、SIMULINK

34卷积码编码原理分析与建模仿真

3/4卷积码编码原理分析与建模仿真 一、摘要 卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本文简明地介绍了卷积码的编码原理和Viterbi译码原理。并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分析了卷积码误比特率与信噪比之间的关系,及卷积码与非卷积码的对比。经过仿真和实测,并对测试结果作了分析。 关键词:卷积码编码建模 SIMULINK仿真

目录 一、摘要 ................................................................................................................................................................. - 1 - 二、设计目的和意义 ............................................................................................................................................. - 2 - 三、设计原理 ......................................................................................................................................................... - 3 - 3.1 卷积码基本概念 ...................................................................................................................................... - 3 - 3.2 卷积码的结构 .......................................................................................................................................... - 3 - 3.3 卷积码的解析表示 .................................................................................................................................. - 4 - 3.4 卷积码的译码 .......................................................................................................................................... - 4 - 3.4.1 卷积码译码的方式........................................................................................................................ - 4 - 3.5.2 卷积码的Viterbi译码 .................................................................................................................. - 5 - 四、详细设计步骤 ................................................................................................................................................. - 6 - 4.1 卷积码的仿真 .......................................................................................................................................... - 6 - 4.1.1 SIMULINK仿真模块的参数设置及意义 ................................................................................. - 6 - 五、设计结果及分析 ........................................................................................................................................... - 11 - 5.1不同信噪比对卷积码的影响.................................................................................................................. - 11 - 5.2卷积码的对比 ........................................................................................................................................ - 12 - 六、总结 ............................................................................................................................................................... - 14 - 七、体会 ............................................................................................................................................................... - 14 - 八、参考文献 ....................................................................................................................................................... - 14 - 二、设计目的和意义 因为信道中信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途径:一种

MATLAB实验报告卷积

实验报告 学院:机电班级:姓名:学号: 实验名称:连续时间信号卷积运算的MATLAB实现 1.实验目的:掌握卷积的概念及计算方法 2.熟悉通过调用conv()函数求解连续时间信号卷积的数值分析 法 实验环境:MATLAB 6.5.1软件 实验要求: 1、已知信号f1(t)=t/2*[ε(t)- ε(t-2)], f2(t)= [ε (t)- ε(t-1)],通过调用conv()函数编程实现卷积计算y(t)= f1(t)* f2(t),画出波形。 2、已知信号f(t)=e-t *ε(t), h(t)= t2 *e-2t *ε(t),y(t)= f(t)* h(t) (1)用符号分析法编程实现计算y(t)的理论解; (2)过调用conv()函数编程实现卷积计算y(t)的数值解并画图 实验程序及结果: 第一题: M文件 (1) function f=uCT(t) f=(t>=0); 主程序:

k1=0:p:2; k2=0:p:1; f1=k1/2.*[uCT(k1)-uCT(k1-2)]; f2=uCT(k2)-uCT(k2-1); y=conv(f1,f2)*p; k0=k1(1)+k2(1); k3=length(f1)+length(f2)-2; k=k0:p:k3*p+k0; subplot(311) plot(k1,f1); xlabel('t') ylabel('f1(t)') axis([-0.5 2.5 -0.5 1.5]) grid on subplot(312); plot(k2,f2) grid on axis([-0.5 2.5 -0.5 1.5]) xlabel('t') ylabel('f2(t)') subplot(313)

213卷积码编码和译码

(2,1,3)卷积码的编码及译码 摘要: ¥ 本报告对于(2,1,3)卷积码原理部分的论述主要参照啜刚教材和课件,编程仿真部分绝对原创,所有的程序都是在Codeblocks 环境下用C语言编写的,编译运行都正常。完成了卷积码的编码程序,译码程序,因为对于短于3组的卷积码,即2 bit或4 bit纠错是没有意义的,所以对正确的短序列直接译码,对长序列纠错后译码,都能得到正确的译码结果。含仿真结果和程序源代码。 如果您不使用Codeblocks运行程序,则可能不支持中文输出显示,但是所有的数码输出都是正确的。

一、 卷积码编码原理 卷积码编码器对输入的数据流每次1bit 或k bit 进行编码,输出n bit 编码符号。但是输出的分支码字的每个码元不仅于此时可输入的k 个嘻嘻有关,业余前m 个连续式可输入的信息有关,因此编码器应包含m 级寄存器以记录这些信息。 通常卷积码表示为 (n,k,m). 编码率 k r n = ( 当k=1时,卷积码编码器的结构包括一个由m 个串接的寄存器构成的移位寄存器(成为m 级移位寄存器、n 个连接到指定寄存器的模二加法器以及把模二加法器的输出转化为穿行的转换开关。 本报告所讲的(2,1,3)卷积码是最简单的卷积码。就是2n =,1k =,3m =的卷积码。每次输入1 bit 输入信息,经过3级移位寄存器,2个连接到指定寄存器的模二加法器,并把加法器输出转化为串行输出。 编码器如题所示。 二、卷积码编码器程序仿真 C 语言编写的仿真程序。 为了简单起见,这里仅仅提供数组长度30 bit 的仿真程序,当然如果需要可以修改数组大小。为了更精练的实现算法,程序输入模块没有提供非法字符处理过程,如果需要也可以增加相应的功能。 进入程序后,先提示输入数据的长度,请用户输入int (整型数)程序默认用户输入的数据小于30,然后提示输入01数码,读入数码存储与input 数组中,然后运算输出卷积码。经过实验仿真,编码完全正确。 } 以下是举例:

相关文档
最新文档