《通信原理课程设计循环码(共17页).doc》由会员分享,可在线阅读,更多相关《通信原理课程设计循环码(共17页).doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上目 录 1、课程设计目的本次课程设计我们所做的课题是一个以(7,4)循环码为信道编码的2PSK信号调制解调的CDIO项目,这就要求我们需要完成信道编码、信号的调制解调以及误码率分析等问题。通过我们对这次CDIO二级项目的学习和理解,综合运用课本中所学到的理论知识完成一个以香农编码为信源编码、(7,4)循环码为信道编码的2PSK信号调制解调的课程设计。以及锻炼我们查阅资料、方案比较、团结合作的能力。学会了运用MATLAB编程来实现2PSK调制解调过程,并且输出其调制及解调过程中的波形,并且讨论了其调制和解调效果,增强了我们的动手能力,为以后学习和工作打下了基础。2、课程
2、设计原理2.1通信原理通信技术,特别是数字通信技术近年来发展非常迅速,它的应用越来越广泛。通信从本质上来讲就是实现信息传递功能的一门科学技术,它要将大量有用的信息无失真,高效率地进行传输,同时还要在传输过程中将无用信息和有害信息抑制掉。当今的通信不仅要有效地传递信息,而且还有储存、处理、采集及显示等功能,通信已成为信息科学技术的一个重要组成部分。通信系统就是传递信息所需要的一切技术设备和传输媒质的总和,包括信息源、发送设备、信道、接收设备和信宿(受信者) ,它的一般模型如图1所示。信息源调制器信道解调器受信者噪声源 图2-1通信系统一般模型从消息传输角度看,数字通信系统包括了两个重要交换,即消
3、息与数字基带信号之间的交换,数字基带信号与信道信号之间的交换.通常前一种交换由发收端设备完成.而后一种交换则由调制和解调完成.图2-2数字通信系统模型 数字通信系统较模拟通信系统而言,具有抗干扰能力强、便于加密、易于实现集成化、便于与计算机连接等优点。数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道具有带通特性而不能直接传输基带信号。为了使数字信号在带通信道中传输,必须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。这种用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。数字调制技术的两种方法:利用模拟调制的方法去实现数字式调制,即把数字调
4、制看成是模拟调制的一个特例,把数字基带信号当作模拟信号的特殊情况处理;利用数字信号的离散取值特点通过开关键控载波,从而实现数字调制。这种方法通常称为键控法,一般包括振幅键控(ASK)、频移键控(FSK)、相移键控(PSK)。本次课程设计采用的是相移键控(PSK)基本的调制方式。 图2-3 相应的信号波形的示例2.2二进制相移键控(2PSK)调制原理数字调相:如果两个频率相同的载波同时开始振荡,这两个频率同时达到正最大值,同时达到零值,同时达到负最大值,它们应处于同相状态;如果其中一个开始得迟了一点,就可能不同相了。如果一个达到正最大值时,另一个达到负最大值,则称为反相。一般把信号振荡一次(一周
5、)作为360度。如果一个波比另一个波相差半个周期,我们说两个波的相位差180度,也就是反相。当传输数字信号时,1码控制发0度相位,0码控制发180度相位。载波的初始相位就有了移动,也就带上了信息。相移键控是利用载波的相位变化来传递数字信息,而振幅和频率保持不变。在2PSK中,通常用初始相位0和分别表示二进制“1”和“0”。因此,2PSK信号的时域表达式为(t)=Acost+) 其中,表示第n个符号的绝对相位:= 因此,上式可以改写为 图2-4 2PSK信号的时间波形下图为2PSK调制原理框图,s(t)为双极性码。码形变换乘法器双极性不归零e2psk(t)coscts(t)图a模拟调制法180移
6、相cosct开关电路e2psk(t)图b 键控法图2-5 2PSK信号的调制原理框图2.3 解调原理2PSK信号的解调方法是相干解调法。由于PSK信号本身就是利用相位传递信息的,所以在接收端必须利用信号的相位信息来解调信号。下图给出了一种2PSK信号相干接收设备的原理,首先经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,在进行抽样判决。判决器是按极性来判决的。即正抽样值判为1,负抽样值判为0.2PSK信号相干解调各点时间波形如图 4 所示. 当恢复的相干载波产生180倒相时,解调出的数字基带信号将与发送的数字基带信号正好是相反,解调器输出数字基带信号全部出错。这种现象
7、通常称为倒现象或“反相工作”.由于在2PSK信号的载波恢复过程中存在着180的相位模糊,所以2PSK信号的相干解调存在随机的倒现象,从而使得2PSK方式在实际中很少采用.图2-6 2PSK的相干解调原理图图2-7 相干解调中各点波形图由最佳判决门限分析可知,在发送“1”符号和发送“0”符号概率相等时,最佳判决门限b* = 0。此时,发“1”而错判为“0”的概率为同理,发送“0”而错判为“1”的概率为 故2PSK信号相干解调时系统的总误码率为在大信噪比条件下,上式可近似为2.4循环码编码原理由信息码构成信息多项式,其中最高幂次为k-1;用乘以信息多项式m(x),得到的,最高幂次为n-1,该过程相
8、当于把信息码(,)移位到了码字的前k个信息位,其后是r个全为零的监督位;用g(x)除得到余式r(x),其次数必小于g(x)的次数,即小于(n-k),将此r(x)加于信息位后做监督位,即将r(x)与相加,得到的多项式必为一个码多项式。2.4.1循环编码步骤简述如下1)由信息码构成信息多项式 ,其中高幂次为k-1。2)用乘上信息多项式m(x),得最高幂次为n-1,做移位。3)用g(x)除得到余式r(x)。4)用加r(x),得到一个码多项式。2.4.2编码过程流程图图2-8编码流程图2.5译码原理:2.5.1译码步骤简述1) 由接收到的码组y(x)计算伴随式s(x)。2) 根据伴随式s(x)找出对应
9、的估值错误图样。3) 计算c(x)=y(x)+e(x),得估计码字。若c(x)= c(x),则译码正确,否则错误。由于g(x) 的次数为n - k 次,g(x) 除E(x) 后得余式(即伴随式)的最高次数为n-k-1次,故S(x) 共有2n-k 个可能的表达式,每一个表达式对应一个错误格式。可以知道(7,4)循环码的S(x) 共有2(7-4) = 8个可能的表达式,可根据错误图样表来纠正(7,4)循环码中的一位错误。2.5.2解码流程图初始化由R(x)确定S(x):S(x)=0,无误码误码由S(x)确定错误图样E(x)纠错存储c(x)图2-9解码流程图2.6纠检错能力由于循环码是一种线性分组码
10、,所以其纠检错能力与线性分组码相当。而线性分组码的最小距离可用来衡量码的抗干扰能力,那么一个码的最小距离就与它的纠检错能力有关。定理: 对于任一个线性分组码,若要在码字内(1) 检测个错误,要求码的最小距离;(2) 纠正个错误,要求码的最小距离;(3) 纠正个错误同时检测个错误,则要求;循环码的译码分检错译码与纠错译码两类。在无记忆信道上,对码字c,差错图案和接收向量的多项式描述为 定义的伴随多项式为 由于所以 由此可见,则一定有差错产生,或说满足的差错图样产生,它满足。循环码的检错译码即是计算并判断是否为02.7高斯信道高斯信道是一个射频通信信道,其包含了各种频率的特定噪声频谱密度的的特征,
11、从而导致了信道中错误的任意分布。常指加权高斯白噪声(AWGN)信道。这种噪声假设为在整个信道带宽下功率谱密度(PDF)为常数,并且振幅符合高斯概率分布。信号经过高斯信道会受到加性干扰的影响。2.8程序调用函数介绍MATLAB中提供了循环码的编解码、2PSK调制解调函数和不同通信信道模型函数,本程序直接调用进行编程。1、Randint 函数功能:用于产生基质的均匀分布的随机整数语法:Randint(M,N)说明: 生成的(M,N)矩阵的随机二进制数字,”0”和”1”出现的概率相等。2、encode函数功能:编码函数语法:code=encode(msg,N,K,hamming)说明:该函数对二进制
12、信息msg进行汉明编码,K为信息位长度,N为码字长度。msg是一个K列矩阵。3、decode函数功能:译码函数语法:rcvcode=decode(code,N,K,hamming)说明:该函数对接受码字进行译码,恢复出原始信息,译码参数及方式必须和编码时采用的完全相同。4、dmod函数功能:调制函数语法:fskout=dmod(signal,Fc,Fd,Fs,psk,M)说明:该函数可以对输入的数字信号进行2PSK调制,Fs为系统的采样频率,Fc为载波频率,Fd为码元速率。5、ddemod函数功能:调制函数语法:y=ddemod(signal,Fc,Fd,Fs,psk,M)说明:该函数可以对输
13、入的2PSK信号进行解调,Fs为系统的采样频率,Fc为载波频率,Fd为码元速率。6、awgn函数功能:高斯白噪声信道模型语法:y = awgn(x,SNR,SIGPOWER)说明:在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为measured,则函数将在加入噪声之前测定信号强度。7. Figure函数功能:使编号为N的图形窗口成为当前图形窗口,即图形窗口处于可视状态。如果窗口N不存在,则将创建一个句柄为N的图形窗口。语法:Figure(N)8. Titl
14、e 函数功能:用于标注所画图形等,在当前坐标系顶部加一个文本串string,作为该图形的标题。语法:Title(string)9. Subplot函数功能:该函数是将多个图画到一的平面上的工具。其中,m表示是图排列成m行,n表示是图排列成n列,p表示图所在的位置,p=1表示从左到右,从上到下的第一个图。语法:Subplot(m,n,p)或者Subplot(m n p)10. Stem函数功能:stem该函数用于绘制离散序列11. Snr函数功能:信噪比12. Semilogy函数语法:Semilogy()功能:X轴为线性刻度,Y轴为对数刻度13. Symerr功能:计算符号误差数和符号误差率1
15、4. hold on功能:是当前轴及图形保持而不被刷新,准备接受此后将绘制15.Xlabel(text) Ylabel(text)功能:给当前X轴或Y轴标注文本标志16.axis(xmin,xmax,ymin,ymax)功能:对当前二维图形对象的X轴Y轴进行标定。3、仿真结果及分析图3-1 仿真结果.图形分析:码元总长为7,信息位数为4图3.1中(1)为随机产生的二进制信源序列【0 0 1 0】;(2)为经过(7,4)循环编码后得到的图形,编码为【0 0 1 0 1 1 0】和验证结果相符;(3)为载波频率fc=50HZ,码元频率fd=25HZ,抽样频率fs=500HZ的编码序列经2PSK调制
16、后得到的图形;(4)为经信道加入高斯白噪声后的调制信号图形,其中信噪比为4;(5)为2PSK相干解调后的图形,与调制前的图形相同;(6)为经循环译码后的图形,与信源序列相同。由此证明建立的模型是正确的。图3-2理论值与仿真值的比较图形分析:该图为信噪比范围为-620dB,信号幅度为0.001的仿真值与理论值的比较图,其中,纵轴为误码率,横轴为信噪比,由图可知,信噪比越大,误码率越小。仿真值经过多次的循环编码,误码率最终变为零。 图3-3 加循环编码前后比较图形图形分析:由两图比较,加循环编码编译的仿真值比未加循环编码的仿真值的误码率小。4、课程设计总结本次课程设计我做的课题是以(7,4)循环码
17、为信道编码的2PSK信号的调制解调,并且通过运用Matlab语言进行实现,通过这次CDIO课程设计,让我重新复习了2PSK的调制与解调技术,并通过(7,4)循环码的实现让我也加深了对信道编码的理解,与此同时,在程序的运行和实现的一遍又一遍的重复中,也让我基本熟悉掌握了Matlab的使用方法。通过这次的练习,不仅让我加深了对课本内容的理解,让课本内容与实践相结合,更重要的是又让我提高了动手与思考的能力。这也是我在以后的的学习和生活中所需要和慢慢培养的。通过这次课程设计,我们学会了很多,收获了很多,并且加强了我们的自主能力、动手能力和独立思考、团结协作的能力。5、参考文献1 樊昌信 曹丽娜通信原理
18、(第六版)国防工业出版社,2006.22 曹雪红 张宗橙信息论与编码?(第二版)清华大学出版社,2009.23 李 环 任 波 华宇宁通信系统仿真设计与应用电子工业出版社,2009.34 陈 萍现代通信实验系统的计算机仿真国防工业出版社,2003.45 唐向宏等 MATLAB及在电子信息类 电子工业出版社,2010.6、附录1、2PSK及循环码编译代码clearclcclose Alln=7; % 码长7位,信息位4位k=4; p=cyclpoly(n,k,all); %产生生成码多项式H,G=cyclgen(n,p(1,:); %产生监督矩阵H,生成矩阵max=4;MSG=randint(1
19、,max); %长度为max的随机二进制序列subplot(3,2,1);stem(MSG);title(信源序列);C=rem(MSG*G,2) %信道编码后的码字subplot(3,2,2);stem(C);title(循环编码序列);Fc=50;Fd=25;Fs=500;y=dmod(C,Fc,Fd,Fs,psk,2);subplot(3,2,3);stem(y);title(2PSK调制后信号);snr=4;s=awgn(y,4,measured)subplot(3,2,4);stem(s);title(2PSK加入噪声后信号)Y=ddemod(s,Fc,Fd,Fs,psk,2); %
20、解调subplot(3,2,5);stem(Y);title(2PSK解调后信号);gg=decode(Y,7,4, cyclic code /fmt); %译码subplot(3,2,6);stem(gg);title(循环码译码后信号);2、真实值与仿真值比较snrdB_min=-6;snrdB_max=20; %设置信噪比取值的上下限:dB为单位A=0.001; %信号幅度snr_dB=-6:20; %信噪比范围(单位分贝)snr=10.(snr_dB./10); %信噪比(由分贝转化而来 10lg(SNR)=SNR_dB)snr2=A.2./(2*snr); %信号幅度为a时的噪声功率
21、%计算理论值for i=1:length(snr_dB) psk_pe=0.5*erfc(sqrt(0.5*A.2./snr2); %PSK解调时的误码率endsemilogy(snr_dB,psk_pe,.m);hold on;for j=snrdB_min:1:snrdB_maxmax=10000;x=randint(1,max); %随机生成一个二进制序列n=max/4;z=zeros(n,4);for i=1:nt=x(4*i-3:4*i) ;%把信号分成4个一组,4个进行编码a(i,:)=t;endcc=encode(a,7,4, cyclic code /fmt) %循环码Fc=4
22、0;Fd=20;Fs=100; %Fs为系统的采样频率,Fc为载波频率,Fd为码元速率fsfcfd.y=dmod(cc,Fc,Fd,Fs,psk,2); %2psk调制s=awgn(y,j,measured); %噪声Y=ddemod(s,Fc,Fd,Fs,psk,2); %解调gg=decode(Y,7,4, cyclic code /fmt); %循环译码errornum,error_ratio=symerr(a,gg);errornumerror_ratiosemilogy(j,error_ratio,.);hold on;axis(-6,20,1/1e7,1);endxlabel(SN
23、R_dB);ylabel(BER); legend(理论值,仿真值); %End of script file.3、加循环码编译前后的比较%未加循环码编译代码snrdB_min=-6;snrdB_max=20; %设置信噪比取值的上下限:dB为单位for j=snrdB_min:1:snrdB_maxmax=10000;x=randint(1,max);%随机生成一个二进制序列n=max/4;Fc=50;Fd=25;Fs=100;%Fs为系统的采样频率,Fc为载波频率,Fd为码元速率fsfcfd.y=dmod(x,Fc,Fd,Fs,psk,2);%2psk调制s=awgn(y,j,measur
24、ed);%噪声Y=ddemod(s,Fc,Fd,Fs,psk,2);%解调errornum,error_ratio=symerr(x,Y);errornumerror_ratiosemilogy(j,error_ratio,.m);hold on;axis(-6,20,1/1e7,1);endxlabel(SNR_dB);ylabel(BER); legend(未加循环码编译码的仿真值); %End of script file.%加循环码编译代码snrdB_min=-6;snrdB_max=20; %设置信噪比取值的上下限:dB为单位for j=snrdB_min:1:snrdB_maxma
25、x=10000;x=randint(1,max);%随机生成一个二进制序列n=max/4;z=zeros(n,4);for i=1:nt=x(4*i-3:4*i);%把信号分成4个一组,4个进行编码a(i,:)=t;endcc=encode(a,7,4,cyclic/fmt) %循环编码Fc=50;Fd=25;Fs=100;%Fs为系统的采样频率,Fc为载波频率,Fd为码元速率fsfcfd.y=dmod(cc,Fc,Fd,Fs,psk,2);%2psk调制s=awgn(y,j,measured);%噪声Y=ddemod(s,Fc,Fd,Fs,psk,2);%解调gg=decode(Y,7,4,cyclic code/fmt);%循环译码errornum,error_ratio=symerr(a,gg);errornumerror_ratiosemilogy(j,error_ratio,.);hold on;axis(-6,20,1/1e7,1);endxlabel(SNR_dB);ylabel(BER); legend(加循环码编译码仿真值); %End of script file.课程设计评 语课程设计成 绩指导教师(签字) 年 月 日专心-专注-专业