版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、现给出循环码及卷积码的编解码程序,理解各程序,完成以下习题。将程序运行结果及各题目的解答写入 word中:1. 用matlab运行书上习题中的"clockcode.m ”(a)说明(7, 4)码的纠错检错方法(b)在程序中标注“注释”处加上注释(英文或中文)(c) 对于编码和未编码的情况,误比特率为1e-2、1e-3及1e-4时的Eb/NO分别是多少?(d)从物理意义上说明编码增益问题(e)当采用(15,11)码时,观察与(7,4)码相比编码增益的变化。解:clockcode.m程序运行结果如下:010uncodedjed5Eb/N0【dB】10101010-110(a)纠错方法:首
2、先将接收且进行判决过后的值进行分组,每7个二进制码为一组,视为一个向量。用这一向量乘以一致校验矩阵H,得到生成伴随式矢量s。若s=0,则认认为没有错,直接输出。若s与HT的某一列相同,即有着相同的错误图样,则将收到的该位取反(即进行模二加),进行纠错,将纠错后的结果输出。(b)clockcode.m 程序:data仁ra nd(1, nd)>0.5;%注释:产生信源数据x=en code(data1); %注释:对信源数据进行信道编码sigma=E/sqrt(2*SNR);%注释:能量归一化sigma仁E/sqrt(2*SNR*code_rate);%注释:能量归一化data2(i)=-
3、E+Gngauss(sigma);%注释:对未编码的信号进行 BPSK调制,同时加入加性高斯白噪声data2(i)=E+Gngauss(sigma);%注释:对未编码的信号进行 BPSK调制,同时加入加性高斯白噪声data3(i)=-E+Gngauss(sigma1);%注释:对编码后的信号进行 BPSK调制,同时加入加性高斯白噪声data3(i)=E+Gngauss(sigma1);%注释:对编码后的信号进行 BPSK调制,同时加入加性高斯白噪声demodata仁data2 > 0; % 注释:过零比较判决,大于零判为1码,反之判为0码noe2=sum(abs(data1-demoda
4、ta1); % 注释:统计误码个数nod2=le ngth(data1);%注释:统计发送的码的个数ber(snr_num) = noe/nod; %注释:误码率=误码个数/发送个数en code.m 程序:temp=data1(4*i-3:4*i); % 注释:从data1 (信源)中取数,每次取 4个cyctemp=temp*G; %注释:结合下一条语句完成对 4位二进制数的编码cyctemp=mod(cyctemp,2); %4释:结合上一条语句完成对4位二进制数的编码;前一条完成了 x=uG,本条将生成的x变成二进制的结果encode(7*i-6:7*i)=cyctemp; %注释:将
5、编出的7位码存放到输出数组中decode.m 程序:temp = x(7*j-6:7*j); %注释:从待译码的序列中取出 7个数s=temp*Ht; %注释:利用一致校验矩阵生成生成伴随式矢量if(s = Ht(k,:) %注释:若S和Ht中的某一行相同,即有着相同的“错误图样” temp(k)=mod(temp(k)+1,2); %注释:就将收到的某一位进行模 2加,进行纠错 decode(1,4*i-3:4*i)=decode1(1,7*i-6:7*i-3);% 注释:将完成译码的值输出(c) 将Eb/NO总结如下表Eb/N0(dB)未编码经过编码1e-24.34.51e-36.56.8
6、1e-48.38.2(d)如下图:图中的Gcode即为编码增益,它表示了在相同的误码率下,经过编码的信息需要更 低的信噪比就可以被正确的接收。相比于没有编码的情况,接收端相当于获得了Gcode这样一个数量的增益。(e)2. 针对题目1中的clockcode.m,(a) 若信道使信号幅度呈瑞利衰落,画出编码与未编码的Eb/NO-误比特率曲线,说明与题目1观察结果的异同,并说明原因。(b) 若信道使信号幅度呈莱斯衰落,画出编码与未编码的Eb/NO-误比特率曲线,更改K值的大小,观察曲线的现象,能得出什么结论。解:(a) 改写clockcode.m程序,另存为 clockcode_reyleigh.
7、m。主程序中将高斯信道的部分 改为如下的瑞利信道:for i=1:ndn = 1/sqrt(2)*randn(1,nd) + 1j*randn(1,nd);h = 1/sqrt(2)*randn(1,nd) + 1j*randn(1,nd); % Rayleigh channelif (data1(i)=O),data2(i)=-E.*h(i)+ sigma.*n(i);data2(i)=data2(i)./h(i);%注释:对未编码的信号进行 BPSK调制,同时通过瑞利信道else%注释:对未编码的信号进行BPSK调制,同时通过瑞利信道data2(i)=E.*h(i) + sigma.*n(
8、i); data2(i)=data2(i)./h(i);end;end;n=zeros(1,nd);h=n;%清空h与nfor i=1:length(x)n = 1/sqrt(2)*randn(1,i) + 1j*randn(1,i);h = 1/sqrt(2)*randn(1,i) + 1j*randn(1,i); % Rayleigh channelif (x(i)=0),data3(i)=-E.*h(i)+ sigma.*n(i); data3(i)=data3(i)./h(i);elsedata3(i)=E.*h(i) + sigma.*n(i);%注释:对编码后的信号进行%注释:对编
9、码后的信号进行BPSK调制,同时通过瑞利信道BPSK调制,同时通过瑞利信道data3(i)=data3(i)./h(i);end;end;仿真结果如下(k=10)K=5 时:-1RUJCOuncodedcoded,1r*E, /Nc dBREBK=20 时:10可以得到两点结论:(1) 和高斯信道相比,经历瑞利衰落的信道在相同的信噪比下误码率会高很多。(2) 和高斯信道相比,经历瑞利衰落的信道经过编码会获得更高的编码增益。(b) 改写clockcode.m程序,另存为 clockcode_rician.m。主程序中将高斯信道的部分改 为如下的瑞利信道:n = 1/sqrt(2)*randn(1
10、,nd) + 1j*randn(1,nd);h = 1/sqrt(2)*randn(1,nd) + 1j*randn(1,nd); % Rayleigh channel h1=sqrt(K/(K+1) + sqrt(1/(K+1).*h;for i=1:ndif (data1(i)=0),data2(i)=-E.*h1(i)+sigma.*n(i);%注释:对未编码的信号进行 BPSK调制,同时经历赖斯信道data2(1)=data2(1)./h1(i);elsedata2(i)=E.*h1(i)+sigma.*n(i); %注释:对未编码的信号进行BPSK调制,同时经历赖斯信道data2(1
11、)=data2(1)./h1(i);end;end;n = 1/sqrt(2)*randn(1,length(x) + 1j*randn(1,length(x);h = 1/sqrt(2)*randn(1,length(x) + 1j*randn(1,length(x); % Rayleigh channelh1=sqrt(K/(K+1) + sqrt(1/(K+1).*h;for i=1:length(x)if (x(i)=0),data3(i)=-E.*h1(i)+sigma.*n(i);%注释:对编码后的信号进行BPSK调制,同时经历赖斯信道data3(i)=data3(i)./h1(i
12、);elsedata3(i)=E.*h1(i)+sigma.*n(i); %注释:对编码后的信号进行 BPSK调制,同时经历赖斯信道 data3(i)=data3(i)./h1(i);end;end;仿真结果如下:10可以发现,与瑞利信道相比,在信噪比下,赖斯信道中的误码率更低,这是因为在赖斯信道中存在一个直射分量(本例中,K=10 )。同时,与瑞利信道类似的,经历赖斯信道的通信经过编码后也会获得更高的编码增益。3. bpskh.m为(2, 1, 7)卷积码采用硬判决译码时在AWGN中的误比特性能的仿真主程序,用matlab运行主程序bpskh.m ,将运行结果写入 word文档中,并回答以下
13、问题 (tblen 为回溯长度):(a) 在标识注释处注释(中文或英文)(b) 在误比特率Pb=10-5处,硬判决的编码增益(与未编码比较)(c) 详细的解释以下函数(包括函数用法,意义,参数设置等方面)trellis = poly2trellis(c on stle n, codege n)expVitBER = bercoding(EbNo, 'conv', 'hard', codeRate, dspec) 、msg_rx = awgn(msg_tx, EsN0-10*log10(1/codeRate)hMod = modem.pskmod('M
14、39;, M, 'PhaseOffset', pi/4, 'SymbolOrder', 'Gray', 'In putType', 'Bit')msg_tx = modulate(hMod, msg_e nc)hDemod = modem.pskdemod('M', M, 'PhaseOffset', pi/4, 'SymbolOrder', 'Gray', 'OutputType', 'Bit')msg_demod =
15、 demodulate(hDemod, msg_rx);(d) 要保证性能没有显著下降,tblen至少应为多少; 解:程序运行结果如下图:(a)trellis = poly2trellis(constlen, codegen); % 注释:生成一个包含有编码器信息结构体dspec = distspec(trellis, 7); %注释:由上一语句的结果计算编码器的最小距离等信息,同样也会生成 一个结构体depecexpVitBER = bercoding(EbNo, 'conv', 'hard', codeRate, dspec); % 注释:得到在 Eb/No
16、 的信噪比下,采 用卷积码编码,硬判决,在加性高斯白噪声信道中%的误码率的上界或者 是估计值。rand('state', seed(1); randn('state', seed(2); %注释:使用种子数生成一个均匀分布的随机数,一个正态分布的随机数msg_enc = convenc(msg_orig, trellis); %注释:将信源序列进行卷积码的编码,编码器的参数由第二 个函数参数trellis决定。hMod = modem.pskmod('M', M, 'PhaseOffset', 0,.'SymbolOrde
17、r','Gray','InputType','Bit'); % 注释:生成一个调制的“模型"hMod,该模型可供后面的modulate函数调用。%具体的,生成模型为二进制的, 不带相位偏%移,符号顺序米用格雷码,输入 按照比特来%处理的PSK调制器msg_tx = modulate(hMod, msg_enc); %注释:对卷积码编码后的序列进行PSK调制。msg_rx = awgn(msg_tx, EsN0-10*log10(1/codeRate); % 注释:对调制后的信号加入高斯白噪声。hDemod = modem.psk
18、demod('M', M, ' PhaseOffset', 0,.'SymbolOrder', 'Gray', 'OutputType', 'Bit'); % 注释:生成一个解调的"模型” hDemod,该模 型可供后面的modulate函数调用。%具体的,生成一个二进制的,不 带相位偏移%,符号顺序采用格雷码,输入按照比特来处%理的PSK解调器。msg_demod = demodulate(hDemod, msg_rx); %注释:用 hDemod 对收到的信号 msg_rx 解调。 m
19、sg_dec = vitdec(msg_demod, trellis, tblen, 'cont', 'hard'); % 注释:对解调的信号进行维特比硬译码 BE_count(i) = length(find(msg_orig(1:end-tblen)= msg_dec(1+tblen:end); %注释:统计误码BE_rate_count(i)=BE_count(i)/numSymb; % 注释:计算误码率(b) 由于程序中未编码的情况下无法达到10-5的误码率,故仅能观察到在10-4情况下的编码增益,在10-4情况下,可以获得大约2.5dB的编码增益。(c
20、) 函数解释:trellis = poly2trellis(co nstle n, codege n)函数将用于描述卷积码的多项式转化成为。输入参数:con stlen :约束长度,说明了编码器内存储的信息的长度,这个长度包含了当前的输入比特codegen:成为卷积码的生成多项式,描述了卷积码编码器的输入输出关系,该参数为八进制。输出参数:该函数返回一个结构体(该例中结构体名称为trellis ),结构体中描述了编码器的输入参数的个数,输出参数的个数,可能有的状态数,当前状态-下一个状态的组合,当前状态 -当前输入的组合。本例中,通过实际编码器的参数我们可以得知该编码器的结构为:IFirst
21、bit output ISecond bit outputexpVitBER = bercoding(EbNo, 'conv', 'hard', codeRate, dspec)、msg_rx = awgn(msg_tx, EsN0-10*log10(1/codeRate)函数返回了在使用 PSK 调制的二进 制卷积码在加性高斯白噪声信道中指定的信噪比下传输的误码率的上限或者 是估计值。输入参数:EbNo以dB形式表示的信噪比conv '表明使用的是卷积码hard '表示使用硬判决codeRate 为卷积码的码率dspec是一个结构体,其中包含了
22、码的距离等信息hMod = modem.pskmod('M', M, 'PhaseOffset', pi/4, 'SymbolOrder', 'Gray', 'InputType', 'Bit') 此函数生成一个调制器的模型, 该模型可以被 modulate函数 调用。输入参数:M', M,设定了调制的进制,M值在程序中设定为 2,设定的调制器为二进制调制'PhaseOffset', pi/4 :调制器的星座图有Pi/4的相位偏移。'SymbolOrder',
23、 'Gray':符号顺序采用格雷码'InputType', 'Bit':调制器的输入是按照比特来处理的。msg_tx = modulate(hMod, msg_enc) 将 msg_enc按照 hMod 模型的参数进行调 制。输入参数hMod :为一个调制器的模型,由上一条语句"hMod :modem.pskmod”生成msg_e nc:待调制的基带信号,对于一路信号,需要的是一个列向量。hDemod = modem.pskdemod('M', M, 'PhaseOffset', pi/4, 'S
24、ymbolOrder', 'Gray', 'OutputType', 'Bit')此函数生成一个 PSK解调器的模型,该模型可以被modulate函数调用。输入参数:M', M,设定了解调的进制, M值在程序中设定为 2,设定的 调制器为二进制调制'PhaseOffset', pi/4 :解调器的星座图有Pi/4的相位偏移。'SymbolOrder', 'Gray':符号顺序采用格雷码'InputType', 'Bit':解调器的输入是按照比特来处理的
25、。msg_demod = demodulate(hDemod, msg_rx); 将 msg_rx 按照 hDemod 模型中 给出的参数进行解调。输入参数msg_rx :待解调的列向量。hDemod :解调器模型。(d) tblen=16 的情况:Performa nee for R=1/2, K=7 Conv. Code and BPSK with Hard Decisi on可以看到仿真结果与理论值有着较大偏移。tblen=24 时:tblen=20 :REB-1Performance for R=1/2, K=7 Conv. Code and BPSK with Hard Decisi
26、onUnion Bound10.1 J -210Simulati on Resultsun code code-310cha nnel results4-5-O - OREB7-O-810 1111t111-J44.555.566.577.58Eb/No (dB)故需要回溯长度tblen至少为24。4. bpsks.m为(2, 1, 7)卷积码采用软判决译码时在AWGN中的误比特性能的仿真主程序,用matlab运行主程序bpsks.m,将运行结果写入 word文档中,并回答以下问题 (tblen 为回溯长度):(a)在标识注释处注释(中文或英文)(b)在SNR=4dB时,要保证仿真精度,大概需
27、要至少仿真多少个码字?(c) 在误比特率Pb=10'5处,2比特软判决的编码增益(与未编码比较)?(d) 在误比特率Pb=10'5处,3比特软判决的编码增益(与未编码比较)? 解:程序运行结果:Performance for R=1/2, K=7 Conv. Code and BPSK with Soft Decision1(a) 程序注释如下:trellis = poly2trellis(constlen, codegen); % 注释:生成一个包含有编码器信息结构体dspec = distspec(trellis, 7); %注释:由上一语句的结果计算编码器的最小距离等信息
28、,同样也会 生成一个结构体depecexpVitBER = bercoding(EbNo, 'conv', 'soft', codeRate, dspec); % 注释:%注释:得到在 Eb/No 的信噪 比下,采用卷积码编码,软判决,在加性高斯白噪声信道中的误码率的上界或者是估计值。rand('state', seed(1); randn('state', seed(2); %注释:使用种子数生成一个均匀分布的随机数,一 个正态分布的随机数msg_orig = randi(0 1, numSymb, 1); % 注释:生成信源,一个列向量。msg_enc = convenc(msg_orig, trellis); %注释:使用trellis对信源进行卷积码的编码。 hMod = modem.pskmod('M', M, ' PhaseOffset', 0,.'SymbolOrder', 'Gray', 'InputType', 'Bit');%注释:生成一个调制的“模型"hMod,该模型可供后面的modulate函数调用。具体的,生成模型为二进制的,不带相位偏,符号顺序采用格 雷码,输入按照比特来处理的PSK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年农家乐承包经营合同
- 2026年科研设施与仪器开放共享服务合同
- 2026年建筑医院古太空合同
- 干细胞研究合作协议
- 2025年社区共享经济服务项目可行性研究报告
- 2025年全自动洗衣机技术升级项目可行性研究报告
- 2025年在线医疗健康管理平台项目可行性研究报告
- 2025年AI读书机器人开发项目可行性研究报告
- 2025年水产品智能仓储物流项目可行性研究报告
- 美工制作合同范本
- 云南民族大学附属高级中学2026届高三联考卷(四)语文+答案
- 期末综合测试卷一(试卷)2025-2026学年二年级语文上册(统编版)
- 2025山东青岛上合控股发展集团有限公司社会招聘31人参考笔试试题及答案解析
- 2025年大学康复治疗学(运动疗法学)试题及答案
- 胎膜早破的诊断与处理指南
- 进出口货物报关单的填制教案
- 被压迫者的教育学
- 2025年科研伦理与学术规范期末考试试题及参考答案
- 上市公司财务舞弊问题研究-以国美通讯为例
- 2025年国家开放电大行管本科《公共政策概论》期末考试试题及答案
- 2024年广东省春季高考(学考)语文真题(试题+解析)
评论
0/150
提交评论