文档详情

无线通信信道编码matlab仿真.doc

发布:2017-08-13约8.4千字共11页下载文档
文本预览下载声明
现给出循环码及卷积码的编解码程序,理解各程序,完成以下习题。将程序运行结果及各题目的解答写入word中: 1.用matlab运行书上习题中的“clockcode.m” (a)说明(7,4)码的纠错检错方法 (b)在程序中标注“注释”处加上注释(英文或中文) (c)对于编码和未编码的情况,误比特率为1e-2、1e-3及1e-4时的Eb/N0分别是多少? (d)从物理意义上说明编码增益问题 (e)当采用(15,11)码时,观察与(7,4)码相比编码增益的变化。 解: clockcode.m程序运行结果如下: (a) 纠错方法:首先将接收且进行判决过后的值进行分组,每7个二进制码为一组,视为一个向量。用这一向量乘以一致校验矩阵H,得到生成伴随式矢量s。若s=0,则认认为没有错,直接输出。若s与HT的某一列相同,即有着相同的错误图样,则将收到的该位取反(即进行模二加),进行纠错,将纠错后的结果输出。 (b) clockcode.m程序: data1=rand(1,nd)0.5; % 注释:产生信源数据 x=encode(data1); %%注释:对信源数据进行信道编码 sigma=E/sqrt(2*SNR); %注释:能量归一化 sigma1=E/sqrt(2*SNR*code_rate); %注释: 能量归一化 data2(i)=-E+Gngauss(sigma); % 注释:对未编码的信号进行BPSK调制,同时加入加性高斯白噪声 data2(i)=E+Gngauss(sigma); % 注释:对未编码的信号进行BPSK调制,同时加入加性高斯白噪声 data3(i)=-E+Gngauss(sigma1); % 注释:对编码后的信号进行BPSK调制,同时加入加性高斯白噪声 data3(i)=E+Gngauss(sigma1); % 注释:对编码后的信号进行BPSK调制,同时加入加性高斯白噪声 demodata1=data2 0; % 注释:过零比较判决,大于零判为1码,反之判为0码 noe2=sum(abs(data1-demodata1)); % 注释:统计误码个数 nod2=length(data1); % 注释:统计发送的码的个数 ber(snr_num) = noe/nod; %注释:误码率=误码个数/发送个数 encode.m程序: temp=data1(4*i-3:4*i); %注释:从data1(信源)中取数,每次取4个 cyctemp=temp*G; %注释:结合下一条语句完成对4位二进制数的编码 cyctemp=mod(cyctemp,2); %注释:结合上一条语句完成对4位二进制数的编码;前一条完成了x=uG,本条将生成的x变成二进制的结果 encode(7*i-6:7*i)=cyctemp; %注释:将编出的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/N0总结如下表 Eb/N0(dB) 未编码 经过编码 1e-2 4.3 4.5 1e-3 6.5 6.8 1e-4 8.3 8.2 (d) 如下图: 图中的Gcode即为编码增益,它表示了在相同的误码率下,经过编码的信息需要更低的信噪比就可以被正确的接收。相比于没有编码的情况,接收端相当于获得了Gcode这样一个数量的增益。 (e) 2.针对题目1中的clockcode.m, (a)若信道使信号幅度呈瑞利衰落,画出编码与未编码的Eb/N0---误比特率曲线,说明与题目1观察结果的异同,并说明原因。 (b)若信道使信号幅度呈莱斯衰落,画出编码与未编码的Eb/N0---误比特率曲线,更改K值的大小,观察曲线的现象,能得出什么结论。 解: (a) 改写clockcode.m程序,另存为clockcode_reyleigh.m。主程序中将高斯信道的部分改为如下的瑞利信道: for i=1:nd n = 1/sqrt(2)*[randn(1,nd) + 1j*randn(1,nd)]; h = 1/sqrt(2)*[ra
显示全部
相似文档