




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信道编码MATLAB仿真作业王若闻思源0903 现给出循环码及卷积码的编解码程序,理解各程序,完成以下习题。将程序运行结果及各目的解答写入word中:运行结果如下1.用matlab运行书上习题中的“clockcode.m” (a)说明(7,4)码的纠错检错方法答:接收码字与伴随矩阵相乘,计算得伴随矢量,伴随矢量不为0说明发生错误,为0说明无单个或两个错(7,4)码最多可检测两个错误)。伴随式不为0时,通过查表法进行译码,对于Hamming码,伴随式组成的二进制数即为错码的位数。 (b)在程序中标注“注释”处加上注释(英文或中文)Encode:temp=data1(4*i-3:4*i); %注释
2、:将原始数据分成四个一组,每次循环调用其中一组 cyctemp=temp*G; %注释:将原码与生成矩阵G相乘 cyctemp=mod(cyctemp,2); %注释:每个数据模2encode(7*i-6:7*i)=cyctemp; %注释:7位一组,进行编码Decode:temp = x(7*j-6:7*j); %注释:将分组码数据分成七个一组,每次循环调用其中一组s=temp*Ht; %注释:将分组码与伴随矩阵相乘生成伴随矢量if(s = Ht(k,:) %注释:如果伴随矢量与伴随矩阵中的某一列相等temp(k)=mod(temp(k)+1,2);%注释:分组数据纠错:分组数据中第k个数据
3、加1(模2加)decode(1,4*i-3:4*i)=decode1(1,7*i-6:7*i-3);%注释:分组码每组前4位写入解码输出数据Clockcode:data1=rand(1,nd)0.5; %注释:生成1000个随机数数组,以0.5作为门限取0或1x=encode(data1); % 注释:对data1进行编码data1=rand(1,nd)0.5; % 注释:生成1000个随机数数组,以0.5作为门限取0或1x=encode(data1); % 注释:用之前声称的随机逻辑数组进行编码sigma=E/sqrt(2*SNR); %注释:计算未编码时高斯分布随机变量标准差,SNR未信噪
4、比sigma1=E/sqrt(2*SNR*code_rate); %注释: 计算编码后高斯分布随机变量标准差if (data1(i)=0),data2(i)=-E+Gngauss(sigma); % 注释:传0码时加入高斯分布白噪声干扰,双极性码elsedata2(i)=E+Gngauss(sigma); % 注释:传1码时加入高斯分布白噪声干扰,双极性码if (x(i)=0),data3(i)=-E+Gngauss(sigma1); % 注释:编码后数据在双极性传输时加入高斯分布白噪声干扰(空号)elsedata3(i)=E+Gngauss(sigma1); % 注释:编码后数据在双极性传输
5、时加入高斯分布白噪声干扰(传号)demodata1=data2 0; % 注释:双极性码硬判决noe2=sum(abs(data1-demodata1); % 错误的比特数nod2=length(data1); % 注释:总码元数ber(snr_num) = noe/nod; %注释:计算误比特率 (c)对于编码和未编码的情况,误比特率为1e-2、1e-3及1e-4时的Eb/N0分别是多少?BER未编码Eb/N0编码后Eb/N01e-24.28dB4.53dB1e-36.63dB6.61dB1e-48.17dB7.94dB (d)从物理意义上说明编码增益问题答:编码增益是编码信号相对于未编码信
6、号效率的提高。单位为分贝。在编码理论和相关的工程问题里,编码增益是一种度量,用来区别SNR(信噪比)级别在未编码的系统和编码的系统来达到相同的比特率(BER),应用在错误纠正编码(ECC)。 编码增益越高,纠错能力越强。 (e)当采用(15,11)码时,观察与(7,4)码相比编码增益的变化。 (7,4)码(15,11)码相同信噪比下,(15,11)码误比特率比(7,4)码低,编码增益增大2.针对题目1中的clockcode.m (a)若信道使信号幅度呈瑞利衰落,画出编码与未编码的Eb/N0-误比特率曲线,说明与题目1观察结果的异同,并说明原因。 未编码时信号幅度若成瑞利衰落,则误比特率会提高;
7、编码后则差别不大。 (b)若信道使信号幅度呈莱斯衰落,画出编码与未编码的Eb/N0-误比特率曲线,更改K值的大小,观察曲线的现象,能得出什么结论。 K=0.3dBK=10dB K=30dBK=100dB随着K值的增加,误比特率不断地提高,交点不断左移,说明在K值大的情况下,编码的可靠性要比未编码的可靠性高的多。3bpskh.m为(2,1,7)卷积码采用硬判决译码时在AWGN中的误比特性能的仿真主程序,用matlab运行主程序bpskh.m,将运行结果写入word文档中,并回答以下问题(tblen为回溯长度):运行结果为第一个图(a)在标识注释处注释(中文或英文)trellis = poly2t
8、rellis(constlen, codegen); %注释:卷积码多项式转换到网格形式dspec = distspec(trellis, 7); %注释:计算卷积码的距谱expVitBER = bercoding(EbNo, conv, soft, codeRate, dspec); %注释:生成已编码的AWGN信道的误码率rand(state, seed(1); randn(state, seed(2); %注释:将随机数生成器rand指定在seed1状态,randn指定在seed2状态,这样每次生成的随机值都是一样的msg_orig = randi(0 1, numSymb, 1); %
9、注释:生成1e6个二进制原始信息序列msg_enc = convenc(msg_orig, trellis); %注释:对其进行卷积编码hMod = modem.pskmod(M, M, PhaseOffset, 0, . SymbolOrder, Gray, InputType, Bit); %注释:建立PSK调制模型msg_tx = modulate(hMod, msg_enc); %注释:发送端调制信号msg_rx = awgn(msg_tx, EsN0-10*log10(1/codeRate); %注释:接收端在信号中添加高斯白噪声hDemod = modem.pskdemod(M,
10、M, PhaseOffset, 0, . SymbolOrder, Gray, OutputType, Bit); %注释:建立PSK解调模型msg_demod =real(msg_rx); %注释:调制后信号取实部% qcode = quantiz(msg_demod, -.5 0 .5 ,3:-1:0); %注释:产生量化指标和量化的输出值msg_dec = vitdec(qcode, trellis, tblen, cont, soft,3); %注释:用Viterbi算法进行卷积解码BE_count(i) = length(find(msg_orig(1:end-tblen)= msg
11、_dec(1+tblen:end); %注释:计算误码个数,如果原值与解码后值不等,误码个数+1(b)在误比特率Pb=10-5处,硬判决的编码增益(与未编码比较)编码后4.53dB 编码前9.58dB 编码增益5.05dB(c)详细的解释以下函数(包括函数用法,意义,参数设置等方面)trellis = poly2trellis(constlen, codegen)反馈编码(编码率为K / N)。ConsLen是1-K的向量, K为输入编码器的比特流的延迟。 CodeGen是一个八进制数的K-n矩阵,K为输入编码器的比特流的延迟,n个输出连接。expVitBER = bercoding(EbNo
12、, conv, hard, codeRate, dspec) 返回在加性高斯白噪声(AWGN)通道内传输的PSK调制的二进制卷积码的误码率上限。 EbNo是信噪比(dB)。hard代表硬判决。CodeRate代表卷积码码率。 dspec输入是一个结构,它包含有关代码的距离谱的信息。msg_rx = awgn(msg_tx, EsN0-10*log10(1/codeRate)添加高斯白噪声信号,msg_tx为原信号,EsN0-10*log10(1/codeRate)为误码率hMod = modem.pskmod(M, M, PhaseOffset, pi/4, SymbolOrder, Gray
13、, InputType, Bit)建设PSK调制模型,M为M进制信号,默认为2;PhaseOffset为理想星座信号的相位偏移;Gray为灰盒映射,输入为Bit流。msg_tx = modulate(hMod, msg_enc)以hMod模型调制msg_enc。hDemod=modem.pskdemod(M, M, PhaseOffset, pi/4, SymbolOrder, Gray, OutputType, Bit)建设PSK解调模型,M为M进制信号,默认为2;PhaseOffset为理想星座信号的相位偏移;Gray为灰盒映射,输入为Bit流。msg_demod = demodulate
14、(hDemod, msg_rx); 以hDemod模型解调msg_demod。(d)要保证性能没有显著下降,tblen至少应为多少; tblen=5 tblen=10tblen=15为了保证性能不变tblen应该至少154bpsks.m为(2,1,7)卷积码采用软判决译码时在AWGN中的误比特性能的仿真主程序,用matlab运行主程序bpsks.m,将运行结果写入word文档中,并回答以下问题(tblen为回溯长度):运行结果(a)在标识注释处注释(中文或英文)trellis = poly2trellis(constlen, codegen); %注释:卷积码多项式转换到网格形式dspec =
15、 distspec(trellis, 7); %注释:计算卷积码的距谱expVitBER = bercoding(EbNo, conv, soft, codeRate, dspec); %注释:生成已编码的AWGN信道的误码率rand(state, seed(1); randn(state, seed(2); %注释:将随机数生成器rand指定在seed1状态,randn指定在seed2状态,这样每次生成的随机值都是一样的msg_orig = randi(0 1, numSymb, 1); %注释:生成1e6个二进制原始信息序列msg_enc = convenc(msg_orig, trell
16、is); %注释:对其进行卷积编码hMod = modem.pskmod(M, M, PhaseOffset, 0, . SymbolOrder, Gray, InputType, Bit); %注释:建立PSK调制模型msg_tx = modulate(hMod, msg_enc); %注释:发送端调制信号msg_rx = awgn(msg_tx, EsN0-10*log10(1/codeRate); %注释:接收端在信号中添加高斯白噪声hDemod = modem.pskdemod(M, M, PhaseOffset, 0, . SymbolOrder, Gray, OutputType, Bit); %注释:建立PSK解调模型msg_demod =real(msg_rx); %注释:调制后信号取实部% qcode = quantiz(msg_demod, -.5 0 .5 ,3:-1:0); %注释:产生量化指标和量化的输出值msg_dec = vitdec(qcode, trellis, tblen, cont, soft,3); %注释:用Viterbi算法进行卷积解码,用软解码方式BE_count(i) = le
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临时离岗请假管理办法
- 交易风险安全管理办法
- 中级教师工位管理办法
- 企业安全标示管理办法
- 乱倒建筑垃圾管理办法
- 产权分割销售管理办法
- 企业涉农投资管理办法
- 小学生的课件抖音视频
- 临时用电拆除管理办法
- 乌鲁木齐保健管理办法
- 太阳能热水系统设计
- 中小学生汉语考试(yct)一级语法大纲
- 高速公路路基施工作业标准化宣贯
- GB 19079.20-2013体育场所开放条件与技术要求第20部分:冰球场所
- 运输供应商年度评价表
- 化学品安全技术说明书MSDS(液氨)
- 北京中考英语词汇表(1600词汇)
- BWD3K130干式变压器温控器说明书
- 公司引进战略投资者计划书课件
- 六西格玛黑带C阶段考试题
- HoloSens IVS3800智能视频存储介绍
评论
0/150
提交评论