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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于MATLAB的信道编码Word格式文档下载.docx

1、BERCR2-nR0,其中CR为某个常数,n为编码的约束长度。 对于等概二进码、AWGN信道,有:三、线性分组码的编译码原理1、 线性分组码的基本概念一个n ,k线性分组码, 是把信息划成k个码元为一段(称为信息组), 通过编码器变成长为n个 码元的一组, 作为n, k线性分组码的一个码字。 若每位码元的取值有q种(q为素数幂), 则共有qk个码字。 n长的数组共有qn组, 在二进制情况下, 有2n个数组。 显然, qn个n维数组(n重)组成一个GF(q)上的n维线性空间。 如果qk(或2k)个码字集合构成了一个k维线性子空间, 则称它是一个n ,k线性分组码。即将k维k重信息空间的元素线性映

2、射到n维n重矢量空间(接收矢量/收码) 的k维n重子空间(码空间)。如下图为7,3码 2、生成矩阵和校验矩阵 生成矩阵:G称为生成矩阵,因为可以用它产生整个码组A,即有生成矩阵的性质:具有IkQ形式的生成矩阵称为典型生成矩阵。由典型生成矩阵得出的码组A中,信息位的位置不变,监督位附加于其后。这种形式的码组称为系统码。 矩阵G的各行也必须是线性无关的。如果已有k个线性无关的码组,则可以将其用来作为生成矩阵G,并由它生成其余码组。【3】监督矩阵:监督矩阵可用来校验和纠错。四、MATLAB仿真源程序及说明采用模块化编程,力求把每个功能独立成各个模块,让程序更清晰。首先介绍各个子程序及其实现的基本功能

3、。运行环境为Matlab7.0版本通信过程的每个模块写成子程序函数: Channelcoding 为信道编码函数 Channeldecoding 为信道解码纠错子函数 Interwaving 为交积子函数 Deinterwaving 为解交积子函数 addfade为向信道加入衰落参数的子函数awgn 为库函数,向信源加高斯白噪声pskmod 为库函数,用于信号调制,输出为复数pskdemod 为库函数,用于信号解调脚本文件:file1:信道编码对通信系统性能的影响,有无信道编码的影响 file2:在周期性深衰落的信道条件下,交织对通信系统性能的影响 file3:在交织条件下,不同时长的周期性深

4、衰落对系统性能影响的比较信道编码子程序:%信道编码子函数,sym为编码码流,G为生成矩阵,k为编码方式的长度,如(7,4)码的4function bitcoded=channelcoding(sym,G,k)A=vec2mat(sym,k);U=A*G;U=mod(U,2);bitcoded=reshape(U,1,);信道解码子程序:function bitdecoded=channeldecoding(recode,Etab,Smatrix,H,n,k)% 前向纠错函数,实现纠错功能% bidecoded为纠错后返回的比特流% recode为输入的比特流% E为错误图样表,S为对应的伴随式

5、表% H为监督矩阵,n,k为码的类型,如(7,4)码,n=7,k=4 row=length(recode)/n; %行数 E=zeros(row,n); %错误图样 RM=zeros(row,n); %纠错之后的矩阵 R=vec2mat(recode,n); S=R*H; %伴随矩阵 S=mod(S,2); for i=1:row for j=1:2(n-k) %查表纠错 if(S(i,:)=Smatrix(j,:) E(i,:)=Etab(j,:); RM(i,:)=R(i,:)+E(i,:)=mod(RM(i,:),2); break; end bitdecoded=reshape(RM

6、%转化为比特流交织子程序:function retbit=interweaving(bitstream,row,col)%功能:实现对输入比特的交积% retbit为交积后返回的比特流向量% bitstream 为需要交积的比特流向量% row 和 col为交积器的行和列,% 通过改变col就可以改变交积深度 retbit=zeros(1,length(bitstream); bitarr=vec2mat(bitstream,row); bitarr=bitarrlength(bitstream)/(row*col) temp=bitarr(:,(i-1)*col+1):i*col); ret

7、bit(1,(i-1)*(row*col)+1):(i*(row*col)=reshape(temp解交织子程序:function retbits=deinterweaving(bitstream,row,col)实现对输入比特的解交积%rebits为解交积后返回的比特流% bitstream输入的比特流%row 和 col为交积器的行和列,通过改变col就可以改变交积器的长度 retbits=zeros(1,length(bitstream); bitarr=vec2mat(bitstream,col); temp=bitarr(i-1)*row+1:i*row,: retbits(1,(i

8、-1)*row*col+1:i*row*col)=reshape(temp,1,);信道衰落子程序:function code=addfade(modcode,Tf,isperiod,isfade)向传输序列modcode叠加衰落性信道的衰落参数k(t)%code为加入衰减参数之后返回的序列。% modcode为调制之后的序列% Tf 为衰落时间,以ms为单位,小于10ms,% Tf=1,表示衰落1ms% isperiod 周期衰落和一次性衰落的标志,% isperiod=1表示周期性衰落,0表示一次性衰落% isfade表示是否存在衰落,1存在,0不存在衰落直接返回modcodeif(isf

9、ade=1) if(isperiod=1) %周期性衰落 for k=1:length(modcode)/(100*Tf) a=(k-1)*100*Tf+31; b=(k-1)*100*Tf+30+10*Tf; modcode(1,a:b)=0.1*modcode(1,a:b); else %一次衰落 a=31; b=30+10*Tf; code=modcode;elseend1、 file1:执行时间:Elapsed time is 355.023518 seconds.ticclc有无信道编码性能比较M=2; %进制b=log2(M) ; %每符号比特数n=128*10000 ; %符号数

10、G=1 1 1 1 0 0 0;1 0 1 0 1 0 0;0 1 1 0 0 1 0;1 1 0 0 0 0 1 ; %生成矩阵H=1 0 0 1 1 0 1;0 1 0 1 0 1 1;0 0 1 1 1 1 0 ; %监督矩阵Etab= 0 0 0 0 0 0 0;0 0 0 0 0 0 1; 0 0 0 0 0 1 0;0 0 0 0 1 0 0; 0 0 0 1 0 0 0;0 0 1 0 0 0 0; 0 1 0 0 0 0 0;1 0 0 0 0 0 0;Smatrix=Etab*H %对应的伴随式sym=randint(n,1,M);sym=de2bi(sym,left-msb

11、 %模拟信源编码bitcoded=channelcoding(sym,G,4); %信道编码,(7,4)码modbit=pskmod(bitcoded,M);%在传输序列modbit加入AWGN噪声snr=0:0.2:15; %噪声为0到15dL=length(snr)ser=zeros(1,L);ser2=zeros(1,L);for k=1:L y=awgn(modbit,10*log10(b)+snr(k),measured zsym=pskdemod(y,M); %复数解调 zbit=de2bi(zsym, recode=reshape(zbit Rstream=recode; err

12、=(Rstream=bitcoded); errnum=sum(err); ser(k)=log10(errnum/length(bitcoded); %纠错 bitdecoded=channeldecoding(Rstream,Etab,Smatrix,H,7,4); err=(bitdecoded=bitcoded); errbits=sum(err); ser2(k)=log10(errbits/(length(bitcoded);plot(snr,ser,b-*)hold onplot(snr,ser2,r-ogrid onlegend(没有信道编码,信道编码xlabel(Eb/No(

13、dB)ylabel(SERtitle(2PSK有无信道编码性能比较toc % Elapsed time is 278.288819 seconds.程序运行时间结论:由上图在较高信噪比的时候编码增益很明显大大提高了误码性能,但是在低信噪被的时候编码增益较小甚至可能是负值,则是因为编码后信息比特能量扩散到多个编码比特上,每个编码比特能量有所降低,如果信噪比低的话,编码冗余带来的性能增益可能弥补不了编码比特的能量的降低,因此信道中信噪比的波动会显著降低编码性能2、 file2:interrow=8;intercol=10;%交积矩阵的行和列interv=interweaving(bitcoded,

14、interrow,intercol); %交积向量modbit2=pskmod(interv,M);%向传输序列modcode叠加衰落性信道的衰落参数k(t)modbitfade=addfade(modbit,1,1,1);modbitfade2=addfade(modbit2,1,1,1);%1ms周期性衰落modbitfade3=addfade(modbit2,2,1,1);%衰落时长2ms25; %噪声为0到25d y=awgn(modbitfade,10*log10(b)+snr(k), y2=awgn(modbitfade2,10*log10(b)+snr(k), y3=awgn(m

15、odbitfade3,10*log10(b)+snr(k), zsym2=pskdemod(y2,M); zsym3=pskdemod(y3,M); zbit2=de2bi(zsym2, zbit3=de2bi(zsym3, recode2=reshape(zbit2 recode3=reshape(zbit3 deinterv=deinterweaving(recode2,interrow,intercol);%解交积向量 deinterv3=deinterweaving(recode3,interrow,intercol); Rstream2=deinterv; Rstream3=dein

16、terv3; bitdecoded2=channeldecoding(Rstream2,Etab,Smatrix,H,7,4); bitdecoded3=channeldecoding(Rstream3,Etab,Smatrix,H,7,4); ser(k)=log10(errbits/(length(bitcoded); err2=(bitdecoded2=bitcoded); errbits2=sum(err2); ser2(k)=log10(errbits2/(length(bitcoded); err3=(bitdecoded3=bitcoded); errbits3=sum(err3

17、); ser3(k)=log10(errbits3/(length(bitcoded);plot(snr,ser3,k-+有信道编码没有交织1ms衰落有信道编码有交织1ms衰落有信道编码有交织2ms衰落2PSK衰落信道有无交织性能比较toc %Elapsed time is 1504.524053 seconds.%该程序运行时间衰落信道使系统的误码性能大大的降低,尤其是时延扩展远大于码元宽度的衰落,如瑞利衰落信道,此时信道属于慢深衰落,容易使得传输的信息出现连续的错误,当出现的错误大于信道编码的纠错能力时,就无法产生编码增益,甚至可能是性能恶化。此时必须使用交织把连续的错误打破分到不同的编解

18、码分组中,尽量使没组只有少量甚至一个错误,此时编码增益将会大大提高,就如上图所示。3、 file3:图表在下一页,程序由file2中修改参数即可。程序只需在file2的基础上修改加衰落函数addfade的参数即可改变衰落时长:File2中信道是1ms的周期性衰落,信息传输速率是10kbps,所以会出现周期性的连续10个比特出现深衰落,此时交织深度为10,可以解决深衰落带来的影响。但在file3中信道变为2ms的周期性衰落,交织深度依旧为10,此时每个分组中可能有两个以上的错误,超出了汉明码的纠错能力,误码性能将会恶化。此时的SNR-SER曲线如下图中间那条所示,性能介于没有交织的1ms深衰落和交织的1ms深衰落之间。如果要改善系统的误码性能,就只能增加交织深度,知道满足信道编码的纠错能力,但是交织深度加深的话,会加大编译码的时延,不适合实时通信,所以应该根据实际通信系统的需求在两者之间取一个平衡。参考文献:【1】傅祖芸, 赵建中.信息论与编码.电子工业出版社,2006【2】田宝玉,信息论基础,人民邮电出版社【3】Andrea Goldsmith,无线通信,人民邮电出版社

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

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