基于matlab的信道编码仿真(可编辑)
信道编码实验报告BCH码

信道编码实验报告
一、 实验内容
利用matlab 设计一个长度为127,纠错能力为6的BCH 码,并用matlab 实现系统码的编码和彼得森译码,并验证正确。
二、 实验目的
1. 利用matlab 设计一个长度为127,纠错能力为6的BCH 码;
2. 用matlab 实现系统码的编码和彼得森译码。
三、 实验原理
1. BCH 码
2. 彼得森译码 四、 程序框图
(1)编码框图
(2) 译码框图(彼得森)
五、 实验分析
1. 先以n=15,进行仿真,输入数据如下: (1) 输入g(x)的根 (2) 输入生成多项式次数 (3) 输入纠错能力 (4) 输入错误位个数
创新点:
(1) 接收端的码多项式加入了信道干扰的影响; (2) 生成的多项式也是随机的,具有普适性。
举例如下:
n=15,t=3,生成元为65432
,,,,,ααααα
α,m=4。
Matlab 结果如下:
2.再以n=127进行仿真
(1)e=3
由结果可视,原码元应为全0码
(2)e=5
如图可以看出,在第1,29,41,86,92位为1,其余位为0。
基于Matlab的Turbo码仿真研究

西华大学毕业设计说明书
1 绪论
随着通信技术和计算机技术的迅猛发展,每时每刻都在不断涌现出新的通信和信息 业务,同时各个用户对通信质量和数据传输速率的要求也不尽相同。由于传输信道本身 特有的噪声和衰落的原因,信号到达接收端时难免的会受到干扰而使信号失真。现在一 般采用差错控制码来检查并纠正由信道失真引起的信息传输错误。 由于差错控制码主要 用于实现信道纠错, 所以又称为纠错码。 编译码技术的日益成熟使其应用领域不断扩大, 比如在众多信息交换和存储设备中的广泛应用。 现代信息和编码理论的奠基人 C.E.Shannon 在 1948 年提出了著名的信道编码定理, 在定理中 Shannon 给出了在数字通信系统中实现可靠通信以及在特定信道上实现可靠通 信的信息传输速率上限的方法。Leabharlann 西华大学毕业设计说明书目 录
1 绪论 .................................................................... 1 1.1 数字通信系统的结构 ............................................... 1 1.2 Turbo 码的研究现状 ................................................ 2 1.3 Turbo 码系统仿真模型设计 .......................................... 3 2 Turbo 码的编码 .......................................................... 5 2.1 Turbo 码编码结构 .................................................. 5 2.2 本章小结 ......................................................... 8 3 译码 ................................................................... 9 3.1 Turbo 码的译码结构 ................................................ 9 3.2 基于后验概率的译码算法(MAP 算法) .................................. 9 3.3 MAP 算法的简化算法 ............................................... 13 3.4 迭代译码 ........................................................ 14 3.4.1 算法推导 .................................................. 15 3.4.2 不同迭代次数仿真 .......................................... 16 3.5 本章小结 ........................................................ 18 4 交织器的设计 .......................................................... 19 4.1 交织器的概述 .................................................... 19 4.2 交织器的设计 .................................................... 19 4.2.1 交织器的分析及设计 ........................................ 19 4.2.2 设计过程 .................................................. 20 4.2.3 S-随机交织后输出 .......................................... 22 4.3 本章小结 ........................................................ 23 5 程序设计 .............................................................. 24 5.1 软件介绍 ........................................................ 24 5.2 Turbo 码程序设计流程图: ......................................... 25 5.3 程序仿真及结果分析 .............................................. 27 6 总结与体会 ............................................................ 30 7 致谢 .................................................................. 31 8 参考文献 .............................................................. 32 9 附录:仿真程序 ........................................................ 33
实现信道估计算法的MATLAB仿真

clear all;%close all;i=sqrt(-1);Rayleigh=1;AWGN=0; % for AWGN channel MMSE=0; % estimation technique Nsc=64; % Number of subcarriers Ng=16; % Cyclic prefix length SNR_dB=[0 5 10 15 20 25 30 35 40]; % Signal to noise ratio Mt=2; % Number of Tx antennas Mr=2; % Number of Rx antennas pilots=[1:Nsc/Ng:Nsc]; % pilot subcarriers DS=5; % Delay spread of channel iteration_max=200;%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Channel impulse response % %%%%%%%%%%%%%%%%%%%%%%%%%%%%if (Rayleigh)N=50;fm=100;B=20e3;fd=(rand(1,N)-0.5)*2*fm;theta=randn(1,N)*2*pi;c=randn(1,N);c=c/sum(c.^2);t=0:fm/B:10000*fm/B;Tc=zeros(size(t));Ts=zeros(size(t));for k=1:NTc=c(k)*cos(2*pi*fd(k)*t+theta(k))+Tc;Ts=c(k)*sin(2*pi*fd(k)*t+theta(k))+Ts;endr=ones(Mt*Mr,1)*(Tc.^2+Ts.^2).^0.5;index=floor(rand(Mt*Mr,DS)*5000+1);endMEE1=zeros(1,length(SNR_dB));MEE2=zeros(1,length(SNR_dB));for snrl=1:length(SNR_dB)snrlestimation_error1=zeros(Mt*Mr,Nsc);estimation_error2=zeros(Mt*Mr,Nsc);R1=besselj(0,2*pi*fm*(Nsc+Ng)/B);sigma2=10^(-SNR_dB(snrl)/10);aa=(1-R1^2)/(1-R1^2+sigma2);bb=sigma2*R1/(1-R1^2+sigma2);for iteration=1:iteration_max%iterationif AWGN==1h=ones(Mt*Mr,1);elsephi=rand*2*pi;h=r(index+iteration)*exp(j*phi);%h=rand(Mt*Mr,DS);h=h.*(ones(Mt*Mr,1)*(exp(-0.5).^[1:)S]));h=h./(sqrt(sum(abs(h).^2,2))*ones(1,DS));endCL=size(h,2); % channel lengthdata_time=zeros(Mt,Nsc+Ng);data_qam=zeros(Mt,Nsc);data_out=zeros(Mr,Nsc);output=zeros(Mr,Nsc);for tx=1:Mtdata_b=0*round(rand(4,Nsc)); % datadata_qam(tx,:) =j*(2*(mod(data_b(1, :)+data_b(2, :),2)+2*data_b(1, :))-3 )+...2*(mod(data_b(3, :)+data_b(4,:),2)+2*data_b(3, :))-3;for loop=1:Mtdata_qam(tx,pilots+loop-1)=(1+j)*(loop==tx ); % pilotsenddata_time_temp=ifft(data_qam(tx,:));data_time(tx,:)=[data_time_temp(end-Ng+1:end) data_time_temp];endfor rx=1:Mrfor tx=1:Mtoutput_temp=conv(data_time(tx,:),h((rx-1)* Mt+tx,:));output(rx,:)=output_temp(Ng+1:Ng+Nsc)+outp ut(rx,:);endnp=(sum(abs(output(rx,:)).^2)/length(output(rx ,:)))*sigma2;noise=(randn(size(output(rx,:)))+i*randn(size( output(rx,:))))*sqrt(np);output(rx,:)=output(rx,:)+noise;data_out(rx,:)=fft(output(rx,:));end%%%%%%%%%%%%%%%%%%%%%%% Channel estimation % %%%%%%%%%%%%%%%%%%%%%%H_act=zeros(Mt*Mr,Nsc);H_est1=zeros(Mt*Mr,Nsc);H_est2=zeros(Mt*Mr,Nsc);i=1;for tx=1:Mtfor rx=1:MrH_est_temp=data_out(rx,pilots+tx-1)./data_ qam(tx,pilots+tx-1);%H_est_temp2=aa*abs(H_est_temp1)+bb*abs(H_ est2((rx-1)*Mt+tx,:));h_time=ifft(H_est_temp);h_time=[h_time zeros(1,Nsc-length(h_time))]; H_est1((rx-1)*Mt+tx,:)=fft(h_time);H_est2((rx-1)*Mt+tx,:)=((aa*abs(H_est1((rx -1)*Mt+tx,:))+bb*abs(H_est2((rx-1)*Mt+tx,:)))....*H_est1((rx-1)*Mt+tx,:))./abs(H_est1( (rx-1)*Mt+tx,:));if (tx>1)H_est1((rx-1)*Mt+tx,:)=[H_est1((rx-1)* Mt+tx,Nsc-tx+2:Nsc) H_est1((rx-1)*Mt+tx,1:Nsc-tx+1)];H_est2((rx-1)*Mt+tx,:)=[H_est2((rx-1)* Mt+tx,Nsc-tx+2:Nsc) H_est2((rx-1)*Mt+tx,1:Nsc-tx+1)]; endH_act((rx-1)*Mt+tx,:)=fft([h((rx-1)*Mt+tx, :) zeros(1,Nsc-CL)]);error1=(abs(H_act((rx-1)*Mt+tx,:)-H_est1(( rx-1)*Mt+tx,:)).^2);error2=(abs(H_act((rx-1)*Mt+tx,:)-H_est2(( rx-1)*Mt+tx,:)).^2);%error=(abs(H_act((rx-1)*Mt+tx,:)-H_est((r x-1)*Mt+tx,:)).^2)./(abs(H_act((rx-1)*Mt+tx,:)).^2);estimation_error1((rx-1)*Mt+tx,:)=estimati on_error1((rx-1)*Mt+tx,:)+error1;estimation_error2((rx-1)*Mt+tx,:)=estimati on_error2((rx-1)*Mt+tx,:)+error2;%subplot(Mt*Mr,3,i),plot([0:Nsc-1],abs(H_a ct((rx-1)*Mt+tx,:))); i=i+1;%subplot(Mt*Mr,3,i),plot([0:Nsc-1],abs(H_e st((rx-1)*Mt+tx,:))); i=i+1;%subplot(Mt*Mr,3,i),plot([0:Nsc-1],abs(err or)); i=i+1;endendendestimation_error1=estimation_error1/iteration_max;estimation_error2=estimation_error2/iteration_max;%estimation_error=min(estimation_error,10*iteration_ma x*ones(size(estimation_error)));%for i=1:Mt*Mr% subplot(Mt*Mr,2,2*i-1),plot([0:Nsc-1],estimation_ error1(i,:));% subplot(Mt*Mr,2,2*i),plot([0:Nsc-1],estimation_er ror2(i,:));%endMEE1(snrl)=sum(sum(estimation_error1))/(Mt*Mr*Nsc);MEE2(snrl)=sum(sum(estimation_error2))/(Mt*Mr*Nsc); endplot(SNR_dB,10*log10(MEE1));hold on;plot(SNR_dB,10*log10(MEE2),'r');%H_act=fft([h_zeros(1,Nsc-CL)]).';error1=(abs(H_act-H_est1).^2)./(abs(H_act).^2);error2=(abs(H_act-H_est2).^2)./(abs(H_act).^2);%%%%%%%%%% Plots %%%%%%%%%%fig=4;i=1;subplot(fig,1,i),plot([0:length(H_act)-1],abs(H_act)); i=i+1;subplot(fig,1,i),plot([0:length(H_est1)-1],abs(H_est1)); i=i+1;subplot(fig,1,i),plot([0:length(H_est2)-1],abs(H_est2)); i=i+1;subplot(fig,1,i),plot([0:length(error1)-1],error1);i=i+1;subplot(fig,1,i),plot([0:length(error2)-1],error2);。
基于MATLAB的霍夫曼编码仿真

目录0 前言............................................................................................ 错误!未定义书签。
1 信源编码的基本概念................................................................ 错误!未定义书签。
1.1 通信系统的模块仿真......................................................... 错误!未定义书签。
1.2 信息的度量与编码............................................................. 错误!未定义书签。
1.3 无失真编码算法................................................................. 错误!未定义书签。
2 信源最佳化 (6)3 霍夫曼编码特点及应用............................................................ 错误!未定义书签。
4 编码规则 (7)4.1 二元霍夫曼编码规则 (7)4.2 多元霍夫曼编码规则 (8)4.3 扩展信源霍夫曼编码 (8)5 MATLAB性能仿真 (8)5.1 二元霍夫曼编码仿真 (9)5.2 三元霍夫曼编码仿真 (11)5.3 扩展信源编码仿真 (13)6 结论............................................................................................ 错误!未定义书签。
参考文献........................................................................................ 错误!未定义书签。
信息论与编码matlab仿真报告

MATLAB对香农编码的实现姓名:学号:院系:电子与信息工程学院摘要:通过对信息论与编码的课程学习使我们对通信系统中的信息编码方式和信息量的计算有了一个较为深入的认识,再结合计算机我们可以方便快捷的实现对各种编码的信息转换,这里我们给出了matlab中对香农编码的实现方式和C 语言代码。
关键词:main,for,printf正文:一在课程中我们清楚地知道了香农编码的方法和具体步骤:1)将信息源符号按照概率从大到小的顺序排列。
2)令p(a0)=0,用p a(aj)(j=i+1)表示第i个码字的累加概率;3)确定ki个码字的长度;4)将用二进制表示,并取小数点后ki位作为符号ai的编码。
二matlab对香农编码的实现代码:#include<stdio.h>#include<math.h>#define N 30main(){int i,j,q,x;int l[N];float t,sum[N],a[N],C[N],D[N];clrscr();printf("please input the xin yuan fu hao zong shu q:");scanf("%d",&q);printf("please input the q ge xin hao gai lv :\n");for(i=0;i<q;i++)scanf("%f",&a[i]);for(i=0;i<q-1;i++)for(j=0;j<q-1;j++){if(a[j]<a[j+1]){ t=a[j];a[j]=a[j+1];a[j+1]=t; }}printf("the new order as follow:\n");for(i=0;i<q;i++)printf("%f\n",a[i]);printf("the sum GaiLv and DuiShu as follows:\n");for(i=0;i<q;i++){sum[i]=0;for(j=0;j<i;j++)sum[i]=sum[i]+a[j];}for(i=0;i<q;i++)printf("%4f\n",sum[i]);for(i=0;i<q;i++){C[i]=-log10(a[i]);D[i]=3.322*C[i]; /* 换2为底数的对数*/printf("%4f\n",D[i]}printf("show us the ma chang l :\n");for(i=0;i<q;i++){ l[i]=ceil(D[i]); /* 取整*/x=ceil(D[i]);printf("%d\n",x);}printf("show us the binary-codes:\n");for(i=0;i<q;i++){ for(j=0;j<l[i];j++){if(2*sum[i]>=1){ printf("1");sum[i]=2*sum[i]-1; }else{ printf("0");sum[i]=2*sum[i]; }}printf("\n");}getch();}总结:通过对香农编码的仿真,我们意识到计算机在通信领域的应用将会大大的增加我们学习的效率和加深对课程的理解,从而更好的掌握所学的知识,更为灵活的应用与生活中的方方面面。
基于matlab的通信系统仿真

创新实践报告报告题目:基于matlab的通信系统仿真学院名称:信息工程学院姓名:班级学号:指导老师:二O一四年十月十五日一、引言现代社会发展要求通信系统功能越来越强,性能越来越高,构成越来越复杂;另一方面,要求通信系统技术研究和产品开发缩短周期,降低成本,提高水平。
这样尖锐对立的两个方面的要求,只有通过使用强大的计算机辅助分析设计技术和工具才能实现。
在这种迫切的需求之下,MATLAB应运而生。
它使得通信系统仿真的设计和分析过程变得相对直观和便捷,由此也使得通信系统仿真技术得到了更快的发展。
通信系统仿真贯穿着通信系统工程设计的全过程,对通信系统的发展起着举足轻重的作用。
通信系统仿真具有广泛的适应性和极好的灵活性,有助于我们更好地研究通信系统性能。
通信系统仿真的基本步骤如下图所示:二、仿真分析与测试(1)随机信号的生成利用Matlab 中自带的函数randsrc 来产生0、1等概分布的随机信号。
源代码如下所示:global NN=300;global pp=0.5;source=randsrc(1,N,[1,0;p,1-p]);(2)信道编译码1、卷积码的原理卷积码(convolutional code)是由伊利亚斯(p.Elias)发明的一种非分组码。
在前向纠错系统中,卷积码在实际应用中的性能优于分组码,并且运算较简单。
卷积码在编码时将k 比特的信息段编成n 个比特的码组,监督码元不仅和当前的k 比特信息段有关,而且还同前面m=(N-1)个信息段有关。
通常将N 称为编码约束长度,将nN 称为编码约束长度。
一般来说,卷积码中k 和n 的值是比较小的整数。
将卷积码记作(n,k,N)。
卷积码的编码流程如下所示。
可以看出:输出的数据位V1,V2和寄存器D0,D1,D2,D3之间的关系。
根据模2加运算特点可以得知奇数个1模2运算后结果仍是1,偶数个1模2运算后结果是0。
2、译码原理卷积码译码方法主要有两类:代数译码和概率译码。
基于matlab的(7.4)汉明码编译码仿真.
综合课程设计
基于matlab的(7,4汉明码编译仿真
专业名称通信工程
班级学号4090719
学生姓名何云瑞
指导教师李雅珍
设计时间2011.12.19~2012.1.4
课程设计任务书
专业:通信工程学号:409719学生姓名(签名:
设计题目:(7,4汉明码的编码、译码仿真
一、设计实验条件
⎢⎥⎢⎥
⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦
⎢⎥⎢⎥⎢⎥⎣⎦ (7
式(6还可以简记为
0T T H A ∙=或0T
A H ∙= (8
其中
111010011010101011001H ⎡⎤
⎢⎥=⎢⎥
⎢⎥⎣⎦ []654321
0A a a a a a a a =
[]00
0=
111011011011P ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦
3.2.3仿真波形(10
3.2.4仿真结果分析(14
4.总结(15
参考文献(16
摘要
汉明码(Hamming Code是一种能够自动检测并纠正一位错码的线性纠错码,即SEC (Single Error Correcting码,用于信道编码与译码中,提高通信系统抗干扰的能力。
本文主要利用MATLAB中SIMULINK通信系统仿真模型库进行汉明码建模仿真,并调用通信系统功能函数进行编程,绘制时域波形,频谱及误码率与信噪比关系曲线图。在此基础上,对汉明码的性能进行分析,得出结论。
③hammgen函数
功能:汉明码生成矩阵和校验矩阵产生函数
语法:H=hammgen(M
[H,G]=hammgen(M
[H,G,N,K]=hammgen(M
利用Matlab进行BCH编码、译码仿真
1.
(1)掌握BCH编码、译码。
(2)通过Matlab仿真,加深对BCH编码理解。
(3)锻炼运用所学知识,独立分析问题、解决问题的综合能力。
2.
了解BCH编码是建立在严格的代数数学基础上的,就有限域和扩域进行了介绍;就BCH码相关的基础知识(BCH码定义、码长、生成多项式等等)进行学习,了解BCH码的编码和译码过程;介绍了彼得森译码算法程序框图,了解彼得森译码的过程与原理。最后利用
clc;
SNR=0.1:0.1:10;
Errorrate=zeros(1,100);
Errorrate_1=zeros(1,100);
for i=1:100
simBCH;
Errorrate(i)=ErrorVec(1);
Errorrate_1(i)=ErrorVec_1(1);
end
semilogy(SNR,Errorrate,'r');grid;
3.
BCH码定义:
BCH 码1959 年由Hocquenghem、1960 年由Bose和Chandhari分别独立提出。BCH码是能够纠正多个随机错误的循环码,可以用生成多项式g(x)的根描述。 给定任一有限域GF(q)及其扩域GF( ), 其中q是素数或或者某一素数的幂,m为某一正整数。设 = GF( ),l是任意整数, 是GF( )的本源元,若V是码元取自GF(2)上码长为n的循环码,他的生成多项式g(x)含有以下2t个根
8.参考文献:
[1] 樊昌信,曹丽娜.通信原理.国防工业出版社,2010
[2]徐明远,邵玉斌.MATLAB仿真在通信系统与电子工程中的应用.西安电子科技出版社,2009
5.码长n
卷积码的编解码Matlab仿真与模拟
卷积码的编解码Matlab仿真摘要卷积码是一种性能优越的信道编码。
它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。
随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。
本文简明地介绍了卷积码的编码原理和译码原理。
并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。
最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。
经过仿真和实测,并对测试结果作了分析。
得出了以下三个结论:(1)当改变卷积码的码率时,系统的误码性能也将随之发生变化。
(2)对于码率一定的卷积码,当约束长度N 发生变化时,系统的误码性能也会随之发生变化。
(3)回溯长度也会不同程度上地影响误码性能。
关键词:卷积码;码率;约束长度;回溯长度目录论文总页数:21页1 引言 (1)1.1 课题背景 (1)1.2 国内外研究现状 (1)1.3 本课题的意义 (1)1.4 本课题的研究方法 (1)2 卷积码的基本概念 (2)2.1 信道 (2)2.2 纠错编码 (2)2.3 卷积码的基本概念 (2)2.4 卷积码编码的概念 (2)2.4.1 卷积编码 (2)2.4.2 卷积码的树状图 (3)2.4.3 卷积码的网格图 (4)2.4.4 卷积码的解析表示 (5)3 卷积码的译码 (6)3.1 卷积码译码的概述 (6)3.2 卷积码的最大似然译码 (6)3.3 VITEBI 译码的关键步骤 (7)3.3.1 输入与同步单元 (7)3.3.2 支路量度计算 (7)3.3.3 路径量度的存储与更新 (7)3.3.4 信息序列的存储与更新 (8)3.3.5 判决与输出单元 (8)4 结论 (9)4.1 卷积码的仿真 (9)4.1.1 SIMULINK仿真模块的参数设置以及重要参数的意义 (9)4.2 改变卷积码的参数仿真以及结论 (12)4.2.1 不同回溯长度对卷积码性能的影响 (12)4.2.2 不同码率对卷积码误码性能的响 (14)4.2.3 不同约束长度对卷积码的误码性能影响 (15)结论 (17)参考文献 (18)致谢..................................................... 错误!未定义书签。
基于Matlab的cdma2000前向业务信道仿真
基于Matlab的cdma2000前向业务信道仿真(四川大学电子信息学院,成都610064 *北京大学信息科学技术学院)摘要本文采用Matlab及Simulink软件包对cdma2000的前向业务信道进行时间流和数据流仿真,并对仿真结果进行了对比分析。
关键词Matlab Simulink cdma2000 前向业务信道Simulating F-TCH of cdma2000 in MatlabHuang Xiao-wei , Ou Xin , Yang Wan-quan(College of Electronics and Information, Sichuan University, chengdu 610064)Abstract In this paper, the time-streaming and data-streaming simulation for F-TCH of cdma2000 was performed by means of Matlab and Simulink toolboxes, and the results of two kinds of simulation were compared and analyzed .Key words Matlab Simulink cdma2000 F-TCH1 Matlab、Simulink及S函数Matlab是集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言,可以直接地处理矩阵或者数组,语句精炼,编程效率高。
Simulink软件包是Matlab环境下的仿真工具,它可以进行动态系统建模、仿真及综合分析。
在Simulink提供的图形用户界面GUI 上,只要进行鼠标的简单拖拉操作就可以构造出用户所需仿真模型。
Simulink提供了S函数,即系统函数,它使用户可以利用MATLAB,C 语言,C++语言以及FORTRAN等语言的程序创建自定义的Simulink模块。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于matlab的信道编码仿真(可编辑)基于matlab的信道编码仿真海南大学毕业论文(设计)题目:基于matlab的信道编码仿真学号:姓名:年级:学院:信息科学技术学院系别:电子信息工程专业:电子信息工程指导教师: 完成日期:摘要通信技术的飞速发展,信道编码已经成功地应用于各种通信系统中。
以及各种传输方式对可靠性要求的不断提高,信道编码技术作为抗干扰技术的一种重要的手段,在数字通信技术领域和数字传输系统中显示出越来越重要的作用。
信道编码的目的是为了改善通信系统的传输质量。
由于实际信道存在噪声和干扰,使发送的码字与信道传输后所接收的码字之间存在差异,称这种差异为差错。
一般情况下,信道噪声、干扰越大,码字产生差错的概率也就越大。
本文利用matlab对二进制对称信道BSC,高斯白噪声信道AWGN两种信道的仿真,(7,4)Hamming码对信道的仿真,通过误码率的曲线图来了解信道的编码。
并利用matlab的simulink模块仿真,运用simulink里的卷积码viterbi译码器来对二进制对称信道和高斯白噪声信道的仿真,观察误码率的曲线图来了解2个信道的不同。
关键字:matlab,信道,编码,译码,Simulink。
AbstractWith the rapid development of communication technology, channelcoding has been successfully applied to various communications systems. And a variety of transmission of the continuous improvement ofreliability requirements, anti-jamming channel coding technology as an important means of technology in the field of digital communications technology and digital transmission systems in a more and more important role The purpose of channel coding is to improve the transmissionquality of communications systems. As the actual existence of thechannel noise and interference, the transmitted codewords and channel transmission received after the difference between code words, said this difference is wrong. Under normal circumstances, channel noise, the greater the interference, the code word generated the greater the probability of errorIn this paper, matlab binary symmetric channel BSC, Gaussian white noise channel AWGN two channel simulation, 7,4 Hamming code simulation of the channel, through the bit error rate curve to understand the channel coding. Using matlab to simulink block simulation, using simulink in the viterbi decoder to convolutional codes on the binary symmetric channel and Gaussian white noise channel simulation, observation error rategraphs to understand the two different channelsKeywords: matlab, channel, coding, decoding, Simulink.目录1引言 11.1选题的目的和意义 11.2本选题的理论依据、研究内容 12.信道编码以及其运行环境MATLAB的介绍 2 2.1 信道编码的概念及分类 22.2 信道编码定理及信道编码中所包含的各种码类的简介 22.2.1卷积码 22.2.2线性分组码 32.2.3循环码 32.3 MATLAB语言的简介 42.4 Simulink 53.信道 53.1二进制对称信道(BSC) 53.2二进制删除信道(BEC) 63.3高斯白噪声信道AWGN 64. Hamming码 74.1汉明码 74.2校验方法 74.3汉明码编码 94.3.1汉明码对高斯白噪声信道 94.3.2汉明码对二进制对称信道的仿真 115.卷积码 155.1卷积码定义与原理 155.2维特比译码原理 155.3卷积码译码器对高斯白噪声信道的设计与仿真 18 5.3.1卷积码译码器的设计与仿真 195.3.2简化维特比译码器的仿真 225.3.3卷积码译码器的误码率分析 245.4卷积编码器在二进制对称信道(BSC)中的性能 256.卷积码译码器对二进制对称信道和高斯白噪声信道仿真比较 307.总结 31致谢 32参考文献 33附录1: 34附录2: 37附录3: 40附录4: 411引言1.1选题的目的和意义数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从而使接收端产生图象跳跃、不连续、出现马赛克等现象。
所以通过信道编码这一环节,对数码流进行相应的处理,使系统具有一定的纠错能力和抗干扰能力,可极大地避免码流传送中误码的发生。
误码的处理技术有纠错、交织、线性内插等。
提高数据传输效率,降低误码率是信道编码的任务。
信道编码的本质是增加通信的可靠性。
但信道编码会使有用的信息数据传输减少,信道编码的过程是在源数据码流中加插一些码元,从而达到在接收端进行判错和纠错的目的。
1.2本选题的理论依据、研究内容在数字通信系统中由于信道内存在加性噪声及信道传输特性不理想等容易造成码间串扰同时多用户干扰、多径传播和功率限制等也导致错误译码。
为了确保系统的误比特率指标通常采用信道编码。
信道编码是为了保证信息传输的可靠性、提高传输质量而设计的一种编码。
它是在信息码中增加一定数量的多余码元,使码字具有一定的抗干扰能力。
提高信息传输的有效性和可靠性始终是通信技术所追求的目标,而信道编码能够显著的提升信息传输的可靠性。
简述信道编码理论,详细说明分组码的编译原理、实现方法及检错纠错能力,用MATLAB仿真信道编码条不同信道下的影响。
学习卷积码的基本原理和编码方法。
学习基本分组码的原理和编码方法。
理解二进制对称信道BSC,二进制擦除信道BEC,高斯白噪声信道AWGN。
理解码率code rate和误码率bit error rate的意义。
利用(7,4)Hamming码对不同信道进行仿真。
自己设计一个卷积码,并利用Viterbi译码二进制对称信道BSC,高斯白噪声信道AWGN2个信道进行仿真,比较结果。
2.信道编码以及其运行环境MATLAB的介绍2.1 信道编码的概念及分类进行信道编码是为了提高信号传输的可靠性,改善通信系统的传输质量,研究信道编码的目标是寻找具体构造编码的理论与方法。
从原理上,构造信道码的基本思路是根据一定的规律在待发送的信息码元中人为的加入一定的多余码元,以引入最小的多余度为代价来换取最好的抗干扰性能。
信道编码是通过信道编码器和译码器实现的用于提高信道可靠性的理论和方法,是信息论的内容之一。
信道编码大致分为两类:?信道编码定理,从理论上解决理想编码器、译码器的存在性问题,也就是解决信道能传送的最大信息率的可能性和超过这个最大值时的传输问题。
?构造性的编码方法以及这些方法能达到的性能界限。
编码定理的证明,从离散信道发展到连续信道,从无记忆信道到有记忆信道,从单用户信道到多用户信道,从证明差错概率可接近于零到以指数规律逼近于零,正在不断完善。
编码方法,在离散信道中一般用代数码形式,其类型有较大发展,各种界限也不断有人提出,但尚未达到编码定理所启示的限度。
在连续信道中常采用正交函数系来代表消息,这在极限情况下可达到编码定理的限度,不是所有信道的编码定理都已被证明。
2.2 信道编码定理及信道编码中所包含的各种码类的简介1948年,信息论的奠基人C.E.Shannon在他的开创性论文“通信的数学理论”中,提出了著名的有噪信道编码定理。
他指出:对任何信道,只要信息传输速率R不大于信道容量C, 就一定存在这样的编码方法:在采用最大似然译码时,其误码率可以任意小。
该定理在理论上给出了对给定信道通过编码所能达到的编码增益的上限,并指出了为达到理论极限应采用的译码方法。
在信道编码定理中,香农提出了实现最佳编码的三个基本条件 :1采用随机编译码方式 ;2编码长度L?? ,即分组的码组长度无限;3译码采用最佳的最大似然译码算法。
2.2.1卷积码卷积码convolution code属于非分组码,它是一种小分组n ,k多码段相关、纠错能力较强的FEC码。
卷积码不同于n, k分组码,它将n, k变成很短的分组n, k,如2 ,1、3, 13, 2卷积码等。
每一个监督元不仅是由本码段n, k的k位信码所决定,而且与其前N-1个码段的信码有关,因此称为卷积码。
它适于串行传送,延时较小。
本码段n,k以及其前N-1段构成的N个分组码段称为约束长度:其码元数为Nn比特,而N称为约束度。
因此,各码段n, k不像n, k分组码是一个独立纠错码单元,其差错控制能力由N个码段来决定。
所以通常将卷积码写为n, k,N,其中Nm+1,m是编码电路的移位寄存器数目。
卷积码分为两种:1基本卷积码:基本卷积码编码效率为,η=1/2, 编码效率较低,优点是纠错能力强。
2收缩卷积码:如果传输信道质量较好,为提高编码效率,可以采样收缩截短卷积码。
有编码效率为:η=1/2、2/3、3/4、5/6、7/8这几种编码效率的收缩卷积码编码效率高,一定带宽内可传输的有效比特率增大,但纠错能力越减弱。
2.2.2线性分组码简单来说,所谓“分组码”就是指码字的生成只与当前的源数据有关,而与前后的数据无关相应地,与前后数据相关的码称为卷积码。