北京邮电大学课程设计任务书 指导单位: 信息工程学院信息论教研室 指导教师: 邵志嘉 专业和班级 信息工程专业97601班 学生姓名: 陈鹏 设计题目 信道编码的仿真 主要技术指标 要求完成项目 阐明该系统的原理及抗噪声性能 该系统的仿真设计和程序实现 仿真测试该系统的抗噪声性能 主要参考文献 樊昌信等《通信原理(第四版)》 国防工业出版社 王立宁等《 MATLAB与通信仿真》 人民邮电出版社 计算机仿真课程教学笔记 吴伟陵《信息处理与编码》 北京邮电大学出版社 要求完成报告的时间: 2000年7月16日
北京邮电大学课程设计任务书 指导单位: 信息工程学院信息论教研室 指导教师: 邵志嘉 专业和班级: 信息工程专业 97601 班 学生姓名: 陈 鹏 设计题目: 信道编码的仿真 主要技术指标: 要求完成项目: 阐明该系统的原理及抗噪声性能 该系统的仿真设计和程序实现 仿真测试该系统的抗噪声性能 主要参考文献: 樊昌信等《通信原理(第四版)》 国防工业出版社 王立宁等《MATLAB 与通信仿真》 人民邮电出版社 计算机仿真课程教学笔记 吴伟陵《信息处理与编码》 北京邮电大学出版社 要求完成报告的时间: 2000 年 7 月 16 日
ee0b2ed9dd2e45a5980204cael fb6d54 doc 目录 摘要 信道 信道 信道模型 噪声 信号 进制双极性通信系统的蒙特卡罗仿真 二进制双极性通信系统的特卡罗仿真模型… 信道编码 信道编码 信道编码性能测试的蒙特卡罗仿真模型 l124 线性分组码 卷积码 交织码 级联码 标准级联码系统框图.32 信道编码与扩频通信 二进制双极性扩频通信系统的蒙特卡罗仿真 级联码对双用户二进制双极性扩频系统误码性能的改善. 结束语 57 主要参考文献 信道编码的仿真 97601班陈鹏 第2页共59页
ee0b2ed9dd2e45a5980204cae1fb6d54.doc 信道编码的仿真 97601 班 陈鹏 第 2 页 共 59 页 目 录 摘 要...............................................................................................3 信 道...............................................................................................4 信道........................................................................................................................ 4 信道模型.....................................................................................................................................................4 噪声........................................................................................................................ 5 信号........................................................................................................................ 6 二进制双极性通信系统的蒙特卡罗仿真................................................................... 6 二进制双极性通信系统的蒙特卡罗仿真模型.........................................................................................6 信道编码.............................................................................................11 信道编码................................................................................................................11 信道编码性能测试的蒙特卡罗仿真模型................................................................. 12 线性分组码........................................................................................................... 14 卷积码.................................................................................................................. 20 交织码.................................................................................................................. 29 级联码.................................................................................................................. 32 标准级联码系统框图...............................................................................................................................32 信道编码与扩频通信..................................................40 二进制双极性扩频通信系统的蒙特卡罗仿真.......................................................... 40 级联码对双用户二进制双极性扩频系统误码性能的改善......................................... 46 结 束 语.............................................................................................57 主要参考文献............................................................................58
ee0b2ed9dd2e45a5980204cael fb6d54 doc 摘要 本文采用蒙特卡罗计算机仿真方法,使用 MATLAB软件对二进 制双极性通信系统中的几种基本信道编码进行了仿真性能测试和讨 论,并从实际角度出发,对扩频通信中的信道编码进行了初步仿真。 首先本文阐述了对二进制双极性通信系统进行蒙特卡罗计算机 仿真的具体方法給出了二进制双极性通信系统的蒙特卡罗仿真模型 以及仿真流程图。接着本文对几种基本信道编码(7 4 HAMMING 码、(2,1,3)卷积码、级联码(外编码采用(7,4) HAMMING 码,交织编码采用(7,4)卷积交织编码,内编码采用(2,1,3) 卷积码),分别进行了仿真性能测试,根据仿真结果得岀了三种编 码纠错性能依次增强,级联码为最佳编码方案的结论。并且,还分别 对级联码中的两种交织方式:卷积交织和循环等差交织进行仿真,依 照仿真结果对两种具体的交织方式进行了性能比较。最后,从仿真为 际应用服务的角度出发,仿真测试了级联码(外编码采用(7,4) HAMMING码,交织编码采用(7,4)卷积交织编码,内编码采用 (2,1,3)卷积码)对双用户二进制双极性扩频通信系统误码性 能改善凊况,得出了在二进制双极性扩频通信系统中采用级联码,能 够实现信道复用和误码性能双赢的结论。 信道编码的仿真 97601班陈鹏 第3页共59页
ee0b2ed9dd2e45a5980204cae1fb6d54.doc 信道编码的仿真 97601 班 陈鹏 第 3 页 共 59 页 摘 要 本文采用蒙特卡罗计算机仿真方法,使用 MATLAB 软件对二进 制双极性通信系统中的几种基本信道编码进行了仿真性能测试和讨 论,并从实际角度出发,对扩频通信中的信道编码进行了初步仿真。 首先,本文阐述了对二进制双极性通信系统进行蒙特卡罗计算机 仿真的具体方法,给出了二进制双极性通信系统的蒙特卡罗仿真模型 以及仿真流程图。接着,本文对几种基本信道编码:(7,4)HAMMING 码、(2,1,3)卷积码、级联码 ( 外编码采用(7,4)HAMMING 码,交织编码采用(7,4)卷积交织编码,内编码采用(2,1,3) 卷积码 ) ,分别进行了仿真性能测试,根据仿真结果得出了三种编 码纠错性能依次增强,级联码为最佳编码方案的结论。并且,还分别 对级联码中的两种交织方式:卷积交织和循环等差交织进行仿真,依 照仿真结果对两种具体的交织方式进行了性能比较。最后,从仿真为 实际应用服务的角度出发,仿真测试了级联码 ( 外编码采用(7,4) HAMMING 码,交织编码采用(7,4)卷积交织编码,内编码采用 (2,1,3)卷积码 ) 对双用户二进制双极性扩频通信系统误码性 能改善情况,得出了在二进制双极性扩频通信系统中采用级联码,能 够实现信道复用和误码性能双赢的结论
ee0b2ed9dd2e45a5980204cael fb6d54 doc 信道 信道是通信系统三大组成部分(信源、信道、信宿)之一,而信道中的噪声又 是不可避免的,因此对信道和噪声的研究乃是研究通信问题的基础 信道 对于广义上的信道,按功能分,可分为调制信道和编码信道,其关系可见下图 信道模型 编码器输出调 媒质 转 译码器输入 换 换 调制信道 编码信道 在进行二进制数字基带传输信道编码仿真时,我们通常基于编码信道的概念分 析建模,对于调制信道则仅考虑每一抽样判决时刻判决器输入端情形,这样做大大 信道编码的仿真 97601班陈鹏 第4页共59页
ee0b2ed9dd2e45a5980204cae1fb6d54.doc 信道编码的仿真 97601 班 陈鹏 第 4 页 共 59 页 信 道 信道是通信系统三大组成部分(信源、信道、信宿)之一,而信道中的噪声又 是不可避免的,因此对信道和噪声的研究乃是研究通信问题的基础。 信道 对于广义上的信道,按功能分,可分为调制信道和编码信道,其关系可见下图 信道模型 在进行二进制数字基带传输信道编码仿真时,我们通常基于编码信道的概念分 析建模,对于调制信道则仅考虑每一抽样判决时刻判决器输入端情形,这样做大大 调 制 器 发 转 换 器 媒 质 收 转 换 器 解 调 器 编码器输出 译码器输入 调制信道 编码信道
ee0b2ed9dd2e45a5980204cael fb6d54 doc 简化了仿真模型,使我们把主要精力真正集中于编码仿真本身。 噪声 本次数字基带传输信道编码仿真,研究干扰为加性高斯白噪声的情况。此类情 况称为AWGN信道,属于加性干扰 噪声性能指标: 信噪比SNR: SNR= Iolog ps 声平均功率 P =wO (其中δ为功率谱密度,w为带宽) 仿真时,我们视抽样判决时刻判决器输入端噪声为高斯白噪声序列, 产生高斯白噪声序列的方法: 1.利用 MATLAB提供的函数得到(0,1)上的均匀分布随机数: 2.利用函数变换法 若71,12为相互独立的(0.)区间均匀分布的随机变量,则变量 2n n, cos(2in, In n, sin( 2in, 为N(O,1)独立的高斯随机数。之后利用线性变换按要求调整均值方差。 MATLAB源程序 function [gsrvl, gsrv2]=gngaus s(m, sgma 8 [gsrvl, gsrv2]=gngauss(m, sgma) g[gsrvl, gsrv2]=gngauss(sgma) g [gsrvl, gsrv2]=gngauss if nargin==0 elseif nargin==l sgma=m; m=0i 2=sgma*(sqrt(2*1og(1/(1-u)))); gsrvl=m+z*cos(2 gsrv2=m+z*sin(2*pi*u)i 信道编码的仿真 97601班陈鹏 第5页共59页
ee0b2ed9dd2e45a5980204cae1fb6d54.doc 信道编码的仿真 97601 班 陈鹏 第 5 页 共 59 页 简化了仿真模型,使我们把主要精力真正集中于编码仿真本身。 噪声 本次数字基带传输信道编码仿真,研究干扰为加性高斯白噪声的情况。此类情 况称为 AWGN 信道,属于加性干扰。 噪声性能指标: 信噪比 SNR: p p N S SNR = 10log (dB) 噪声平均功率: 2 p w N = (其中 2 为功率谱密度, w 为带宽) 仿真时,我们视抽样判决时刻判决器输入端噪声为高斯白噪声序列。 产生高斯白噪声序列的方法: 1. 利用 MATLAB 提供的函数得到(0,1)上的均匀分布随机数; 2. 利用函数变换法: 若 1 2 , 为相互独立的(0,1)区间均匀分布的随机变量,则变量: = − = − 2 ln sin( 2 ) 2 ln cos(2 ) 2 1 2 1 1 2 为 N(0,1)独立的高斯随机数。之后利用线性变换按要求调整均值方差。 MATLAB 源程序 function [gsrv1,gsrv2]=gngauss(m,sgma) %[gsrv1,gsrv2]=gngauss(m,sgma) %[gsrv1,gsrv2]=gngauss(sgma) %[gsrv1,gsrv2]=gngauss if nargin==0 m=0;sgma=1; elseif nargin==1 sgma=m;m=0; end u=rand; z=sgma*(sqrt(2*log(1/(1-u)))); gsrv1=m+z*cos(2*pi*u); gsrv2=m+z*sin(2*pi*u);
ee0b2ed9dd2e45a5980204cael fb6d54 doc 信号 本次数字基带传输信道编码仿真,输入信道信号采用BSK信号,二进制信源 序列的1,0符号分别被映射为两个持续时间t∈[0,相位差为x的正弦波,即 5()=2E, [0,7 S0(1) 信号性能指标: E:信号功率 T:确知信号周期 相关系数p=-1; 归一化信噪比: (N。为输入信道的噪声功率谱密度) N 仿真时,我们视抽样判决时刻判决器输入(即相关器或匹配滤波器输出)为 r:判决器输入序列 士E:信号序列 n:高斯白噪声序列 二进制双极性通信系统的蒙特卡罗仿真 蒙特卡罗计算机仿真用于估算数字通信系统的误码率,特别适用于难于对判决 器的性能进行分析的情况。利用蒙特卡罗仿真估算二进制双极性通信系统的误码率 具体方法可以用下图表示 二进制双极性通信系统的蒙特卡罗仿真模型 均匀随机数 高斯随机数 发生器 发生器 ±E 二进制数据源 判输出数据 决 器 信道编码的仿真 97601班陈鹏 第6页共59页
ee0b2ed9dd2e45a5980204cae1fb6d54.doc 信道编码的仿真 97601 班 陈鹏 第 6 页 共 59 页 信号 本次数字基带传输信道编码仿真,输入信道信号采用 BPSK 信号,二进制信源 序列的 1,0 符号分别被映射为两个持续时间 t [0,T] 相位差为 的正弦波,即 ~ ( ) ~ ( ) s t E T e s t E T e j f t j f t 1 2 0 2 2 2 0 0 = = − t [0,T] 信号性能指标: E:信号功率; T:确知信号周期; 相关系数 = −1 ; 归一化信噪比: D E N 2 0 = (N0 为输入信道的噪声功率谱密度) 。 仿真时,我们视抽样判决时刻判决器输入(即相关器或匹配滤波器输出)为 r = ±E + n r : 判决器输入序列 ±E : 信号序列 n : 高斯白噪声序列 二进制双极性通信系统的蒙特卡罗仿真 蒙特卡罗计算机仿真用于估算数字通信系统的误码率,特别适用于难于对判决 器的性能进行分析的情况。利用蒙特卡罗仿真估算二进制双极性通信系统的误码率 具体方法可以用下图表示: 二进制双极性通信系统的蒙特卡罗仿真模型 n ±E r 输出数据 D D’ 均匀随机数 发生器 二进制数据源 高斯随机数 发生器 判 决 器
ee0b2ed9dd2e45a5980204cael fb6d54 doc 比较 差错计数器 如图,首先仿真产生判决器的输入随机变量。使用均匀分布随机数发生器产生 来自于二进制数据源的二进制01信息序列,该01序列被映射为±E的序列,E代 表信号能量,且可归一化为1。使用高斯噪声发生器产生均值为0,方差为的高斯 随机数序列n。判决器将随机变量和判决电平0相比较。如果大于0,判决发送比 特是0,否则判决发送比特是1。该判决输出与所发送的信息比特序列相比较,并 计算误比特数和误码率 进行编码仿真时,该模型应在D和D处加上相应的编码器和译码器。 下面绘制了蒙特卡罗计算机仿真的基本流程图 蒙特卡罗计算机仿真的基本流程图 开始 外部输入:信噪比(dB) 初始化变量:信噪比、发送接收信号变量、噪声变量 仿真序列长度、循环步长、临时变量、 清零 循环计数器和差错计数器 循环计数器置1 生成发送比特模块 生成叠加噪声信号模块 接收判决模块 生成接受比特 信道编码的仿真 97601班陈鹏 第7页共59页
ee0b2ed9dd2e45a5980204cae1fb6d54.doc 信道编码的仿真 97601 班 陈鹏 第 7 页 共 59 页 如图,首先仿真产生判决器的输入随机变量。使用均匀分布随机数发生器产生 来自于二进制数据源的二进制 01 信息序列,该 01 序列被映射为±E 的序列,E 代 表信号能量,且可归一化为 1。使用高斯噪声发生器产生均值为 0,方差为的高斯 随机数序列 n。判决器将随机变量和判决电平 0 相比较。如果大于 0,判决发送比 特是 0,否则判决发送比特是 1。该判决输出与所发送的信息比特序列相比较,并 计算误比特数和误码率。 进行编码仿真时,该模型应在 D 和 D’ 处加上相应的编码器和译码器。 下面绘制了蒙特卡罗计算机仿真的基本流程图。 蒙特卡罗计算机仿真的基本流程图 比 较 差 错 计 数 器 开始 外部输入:信噪比(dB) 初始化变量:信噪比、发送接收信号变量、噪声变量 仿真序列长度、循环步长、临时变量、 清零: 循环计数器和差错计数器 循环计数器置 1 生成发送比特模块 生成叠加噪声信号模块 接收判决模块 生成接受比特
ee0b2ed9dd2e45a5980204cael fb6d54 doc 差错计数模块 循环计数器加 循环计数器 次数口满? 显示差错计数器数值,计算误码率 结束 返回值:误码率 绘制蒙特卡罗仿真曲线的一般流程图 开始 初始化变量:仿真信噪比采样序列、仿真循环步长、 理论计算信噪比采样序列、理论计算循环步长 清零 仿真循环计数器i、仿真误码率数组 理论计算循环计数器j、理论误码率数组 仿真循环计数器i置 蒙特卡罗仿真模块: 计算第i个仿真信噪比下的对应仿真误码率数组元素值 循环计数器次数已满? Y 理论计算循环计数器j置1 信道编码的仿真 97601班陈鹏 第8页共59页
ee0b2ed9dd2e45a5980204cae1fb6d54.doc 信道编码的仿真 97601 班 陈鹏 第 8 页 共 59 页 N Y 绘制蒙特卡罗仿真曲线的一般流程图 N Y 差错计数模块 循环计数器加 1 循环计数器 次数已满? 显示差错计数器数值,计算误码率 结束 返回值:误码率 开始 初始化变量:仿真信噪比采样序列、仿真循环步长、 理论计算信噪比采样序列、理论计算循环步长 清零: 仿真循环计数器 i、仿真误码率数组、 理论计算循环计数器 j、理论误码率数组 仿真循环计数器 i 置 1 循环计数器次数已满? 理论计算循环计数器 j 置 1 蒙特卡罗仿真模块: 计算第 i 个仿真信噪比下的对应仿真误码率数组元素值 i++
ee0b2ed9dd2e45a5980204cael fb6d54 doc 理论计算模块: 算第j个理论信噪比下的对应理论误码率数组元素值 理论计算循环计数器次数已满? Y 绘图模块: 设置绘图窗口参数 绘制仿真误码率曲线 理论误码率曲线 结束 MATLAB源程序 function [p]=smldPe55(snr in dB sm1dPe55.m二进制双极性通信系统的蒙特卡罗仿真 8 snr in dB信噪比 8p误码率 SNR=exp(snr in db*log(10)/10); Eb/NO sgma=E/sgrt(2*SNR) N=10^5;8仿真序列长度10~5,运行时间约1分钟 for i=1: N temp=rand if (temp<0. 5) dsource=o dsource=l if(dsource==0) e⊥se r=E+gngauss ( sgma 信道编码的仿真 97601班陈鹏 第9页共59页
ee0b2ed9dd2e45a5980204cae1fb6d54.doc 信道编码的仿真 97601 班 陈鹏 第 9 页 共 59 页 N Y MATLAB 源程序 function [p]=smldPe55(snr_in_dB) %smldPe55.m 二进制双极性通信系统的蒙特卡罗仿真 %snr_in_dB 信噪比 %p 误码率 E=1; SNR=exp(snr_in_dB*log(10)/10);%Eb/N0 sgma=E/sqrt(2*SNR); N=10^5;%仿真序列长度10^5,运行时间约1分钟 temp=0; dsource=0; decis=0; numoferr=0; p=numoferr/N; for i=1:N temp=rand; if (temp<0.5) dsource=0; else dsource=1; end if(dsource==0) r=-E+gngauss(sgma); else r=E+gngauss(sgma); 理论计算循环计数器次数已满? 理论计算模块: 计算第 j 个理论信噪比下的对应理论误码率数组元素值 绘图模块: 设置绘图窗口参数 绘制仿真误码率曲线 理论误码率曲线 结 束 j++
ee0b2ed9dd2e45a5980204cael fb6d54 doc if(r<o) if (decis=dsource) numoferr=numoferr+1 end 8sm⊥dPe55.m二进制双极性通信系统的蒙特卡罗仿真 ce55.m仿真绘图语句 8仿真序列长度10~5,运行时间约15分钟 echo on SNRindB551=0: 16 SNRindB552=0:0.1:16 smld err prb55=zeros (1, length(SNRindB551))i theo err prb55=zeros(l, length(sNRindB552))i for i=l: length(SNRindB551 smld err prb55(i)= solde55( SNRindB551(i);8计算仿真误码率 for i=l: length(SNRindB552 SNR55=exp(SNRindB552(i)*log(10)/10) theo err prb55(i)=Funct (sqrt (2*SNR55))i 8 Funct y=(1/2)*erfc(x/sqrt(2));理论误码率公式 fiqure semilog(sNRindb55l, smld err prb55,r*-) axis([0,16,1e-5,1]); xlabel('Eb/No in dB)i ylabel('Pe')i title('二进制双极性通信系统的蒙特卡罗仿真结果与理论值比较') hold on semilog (SNRindB552, theo err prb55, 'b: ')i 8ce55.m仿真绘图语句 信道编码的仿真 97601班陈鹏 第10页共59页
ee0b2ed9dd2e45a5980204cae1fb6d54.doc 信道编码的仿真 97601 班 陈鹏 第 10 页 共 59 页 end if (r<0) decis=0; else decis=1; end if (decis~=dsource) numoferr=numoferr+1; end end numoferr, p=numoferr/N; % smldPe55.m 二进制双极性通信系统的蒙特卡罗仿真 %ce55.m 仿真绘图语句 %仿真序列长度 10^5,运行时间约 15 分钟 echo on SNRindB551=0:16; SNRindB552=0:0.1:16; smld_err_prb55=zeros(1,length(SNRindB551)); theo_err_prb55=zeros(1,length(SNRindB552)); for i=1:length(SNRindB551) smld_err_prb55(i)=smldPe55(SNRindB551(i)); %计算仿真误码率 end for i=1:length(SNRindB552) SNR55=exp(SNRindB552(i)*log(10)/10); theo_err_prb55(i)=Qfunct(sqrt(2*SNR55)); %Qfunct y=(1/2)*erfc(x/sqrt(2));理论误码率公式 end figure; semilogy(SNRindB551,smld_err_prb55,'r*-'); axis([0,16,1e-5,1]); xlabel('Eb/N0 in dB'); ylabel('Pe'); title('二进制双极性通信系统的蒙特卡罗仿真结果与理论值比较'); hold on semilogy (SNRindB552,theo_err_prb55,'b:'); %ce55.m 仿真绘图语句