通信原理matlab课程设计(南昌大学)概要.doc

上传人:小飞机 文档编号:4297837 上传时间:2023-04-14 格式:DOC 页数:17 大小:296KB
返回 下载 相关 举报
通信原理matlab课程设计(南昌大学)概要.doc_第1页
第1页 / 共17页
通信原理matlab课程设计(南昌大学)概要.doc_第2页
第2页 / 共17页
通信原理matlab课程设计(南昌大学)概要.doc_第3页
第3页 / 共17页
通信原理matlab课程设计(南昌大学)概要.doc_第4页
第4页 / 共17页
通信原理matlab课程设计(南昌大学)概要.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《通信原理matlab课程设计(南昌大学)概要.doc》由会员分享,可在线阅读,更多相关《通信原理matlab课程设计(南昌大学)概要.doc(17页珍藏版)》请在三一办公上搜索。

1、南 昌 大 学通信原理课程设计报告 题 目: 2ASK、2FSK、2PSK、2DPSK调制解调matlab仿真 姓 名: 学 院: 信 工 学 院 专 业: 指导教师: 完成日期: 2013 年 5 月 5日一、设计要求课程设计需要运用MATLAB编程实现2ASK,2FSK,2PSK,2DPSK调制解调过程,并且输出其源码,调制后码元以及解调后码元的波形。二、基本原理二进制数字调制技术原理数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道具有带通特性而不能直接传输基带信号。为了使数字信号在带通信道中传输,必须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。这种用数字

2、基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。通常使用键控法来实现数字调制,比如对载波的振幅、频率和相位进行键控。(1) 振幅键控是利用载波的幅度变化来传递数字信息,而其频率和相位保持不变,在2ASK中,载波的幅度只有两种变化状态,分别对应二进制信息0和1。OOK(通断键控)是一种常用的二进制振幅键控式模拟调制器法 键控法包络检波法 同步检测法(2) 一个2FSK信号可以看成是两个不同载波的2ASK信号的叠加。其解调和解调方法和ASK差不多。2FSK信号的频谱可以看成是f1和f2的两个2ASK频谱的组合。2FSK信号的产生方法 采用模拟调频电路来实现:信号在相邻码元之间

3、的相位是连续变化的。采用键控法来实现:相邻码元之间的相位不一定连续。2FSK信号的解调方法相干解调非相干解调(3) 2PSK以载波的相位变化作为参考基准的,当基带信号为0时相位相对于初始相位为0, 当基带信号为1时相对于初始相位为180。调制器原理方框图如下:模拟调制法 检控法2PSK信号的解调器原理方框图(4) 2DPSK是利用前后相邻码元的载波相对相位变化传递数字信息,所以又称相对相移键控。2DPSK调制原理方框图如下图。 相干解调法。差分相干解调(相位比较)法 三、源代码s=menu(通信原理,2ASK,2PSK,2FSK,2DPSK)switch s case 1,scolor=2AS

4、K;n=8;N=100;K=4;a=randint(1,n);bita=;sl=;bitRate=1e3;fc=1e3;%载频1KHZt=linspace(0,1/bitRate,N);for i=1:length(a) if a(i)=0 bit1=zeros(1,N); else bit1=ones(1,N); end bita=bita,bit1; c=sin(2*pi*t*fc); sl=sl c;endfigure(1);subplot(K,1,1);plot(bita,LineWidth,1.5),title(基带信号),grid on;axis(0,N*length(a),-2.

5、5,2.5);tz=bita*6.*sl;subplot(K,1,2);plot(tz,LineWidth,1.5);title(ASK调制后信号);grid on;signal=awgn(tz,80,measured);subplot(K,1,3);plot(signal,LineWidth,1.5),grid on;title(信号+噪声)Fs=3e3;b,a=ellip(4,0.1,40,999.9,1000.1*2/Fs);%设计IIR带通滤波器,阶数为4,通带纹波0.1,阻带衰减40DBsf=filter(b,a,signal);%信号通过该滤波器figure(2);K1=4;sub

6、plot(K1,1,1);plot(sf,LineWidth,1.5),grid on;title(BPF)signal2=abs(sf); %乘同频同相sinsubplot(K1,1,2);plot(signal2,LineWidth,1.5),grid on;title(全波整流器); Fs=3e3;%抽样频率400HZb,a=ellip(4,0.1,40,50*2/Fs);%设计IIR低通滤波器sf1=filter(b,a,signal2);%信号通过该滤波器,输出信号sfsubplot(K1,1,3);plot(sf1,LineWidth,1.5),grid on;title(LPF)

7、; sf2=;LL=fc/bitRate*N;i=LL/2;bitb=;while (i=0.001; i=i+LL; end for i=1:length(sf2) if sf2(i)=0 bit1=zeros(1,N); else bit1=ones(1,N); end bitb=bitb,bit1;endfigure(1);subplot(K,1,4); plot(bitb,LineWidth,1.5),grid on;title(解调后信号); axis(0,N*length(sf2),-2.5,2.5); case 2,scolor=2PSK; l=linspace(0,pi,50)

8、;% 数据初始化t=linspace(0,9*pi,450);b=1:1:9;out=1:1:450;f=1:1:450;g=1:1:450;w1=2 %正弦波f1的频率,可以根据自己想要的频率在此改写 %正弦波f2的频率,可以根据自己想要的频率在此改写f1=sin(w1*l);figure(1);f2=sin(w1*l+pi);figure(1);subplot(2,1,1),plot(l,f1),axis(0 pi -1.2 1.2),xlabel(t),ylabel(f1);%画出f1信号波形subplot(2,1,2),plot(l,f2),axis(0 pi -1.2 1.2),xl

9、abel(t),ylabel(f2);%画出f2信号波形a=0 1 0 0 0 1 1 0 1for i=1:9 %2pSK编码 if a(i)=0 for k=1:50 %如果二进制原码为0则输出f1波形 out(k+50*(i-1)=f1(k); end else for j=1:50 out(j+50*(i-1)=f2(j); %r如果二进制原码为1则输出f2波形 end endendfor i=1:9 %2PSK解码 n=0;m=0; for j=1:50 if out(j+50*(i-1)-f1(j)=0 n=n+1; else if out(j+50*(i-1)-f2(j)=0 m

10、=m+1; end end end if nm b(i)=0; else b(i)=1; endend bfor i=1:9 %画出解码后的波形 ,包括原码和解码出的码,进行对比 for j=1+50*(i-1):50*i f(j)=a(i); g(j)=b(i); endendfigure(2);subplot(3,1,1),plot(t,f),axis(0 9*pi -0.2 1.2),xlabel(t),ylabel(数字基带调制原码);subplot(3,1,2),plot(t,out),axis(0 9*pi -1.2 1.2),xlabel(t),ylabel(调制好的波形);su

11、bplot(3,1,3),plot(t,g),axis(0 9*pi -0.2 1.2),xlabel(t),ylabel(解码得到的码);Num,Rat=biterr(f,g) case 3,scolor=2FSK;%=生成随机码元、基带信号、调制=%n=8;%随机码元个数N=100;%模拟一个码元的点数K=4;%figure1画四个小图a=randint(1,n)%码元生成bita=;%定义空数组,存放基带信号for i=1:length(a) if a(i)=0 bit1=zeros(1,N); else bit1=ones(1,N); end bita=bita,bit1;%基带信号e

12、ndfigure(1);subplot(K,1,1);plot(bita,LineWidth,1.5),title(基带信号),grid on;axis(0,N*length(a),-2.5,2.5);bitRate=1e3;%每一个码元中采样点的间隔宽度0.001sfc=1e3;%载频1KHZt=linspace(0,1/bitRate,N);tz=; c1=sin(2*pi*t*fc);%载波 c2=sin(2*pi*t*fc*2);%载波 for i=1:length(a) if a(i)=1 tz=tz,c1; else tz=tz,c2; end endsubplot(K,1,2);

13、plot(tz,LineWidth,1.5);title(2FSK已调信号);grid on;signal=awgn(tz,20,measured);%加噪subplot(K,1,3);plot(signal,LineWidth,1.5),grid on;title(信号+噪声)%=解调=%Fs=5e3;%采样频率b1,a1=ellip(4,0.1,40,999.9,1000.1*2/Fs);%设计IIR带通滤波器,阶数为4,通带纹波0.1,阻带衰减40DBb2,a2=ellip(4,0.1,40,1999.9,2000.1*2/Fs);sa=filter(b1,a1,signal);%信号通

14、过该滤波器sb=filter(b2,a2,signal);figure(2);K1=3;%figure2画(3*2)幅图表示解调过程subplot(K1,2,1);plot(sa,LineWidth,1.5),grid on;title(BPF)subplot(K1,2,2);plot(sb,LineWidth,1.5),grid on;title(BPF)%=相乘器=%t=linspace(0,1/bitRate,N);c1=sin(2*pi*t*fc);c2=sin(2*pi*t*fc*2);sia=;sib=; for i=1:n sia=sia,c1; sib=sib,c2; end

15、siga=sa.*sia;%乘同频同相sia sigb=sb.*sib;%乘同频同相sibsubplot(K1,2,3);plot(siga,LineWidth,1.5),grid on;title(相乘器); subplot(K1,2,4);plot(sigb,LineWidth,1.5),grid on;title(相乘器); %=LPF=%Fs=5e3;%抽样频率400HZb1,a1=ellip(4,0.1,40,50*2/Fs);%设计IIR低通滤波器b2,a2=ellip(4,0.1,40,50*2/Fs);%设计IIR低通滤波器sfa=filter(b1,a1,siga);%信号通

16、过该滤波器,输出信号sfasfb=filter(b2,a2,sigb);%信号通过该滤波器,输出信号sfbsubplot(K1,2,5);plot(sfa,LineWidth,1.5),grid on;title(LPF); subplot(K1,2,6);plot(sfb,LineWidth,1.5),grid on;title(LPF);%=抽样判决=%s2a=;s2b=;LL=fc/bitRate*N;i1=LL/2;i2=LL;bitb=;while (i1=0; i1=i1+LL;endwhile (i2=length(sfb) s2b=s2b,sfb(i2)s2b(i) bit1=

17、zeros(1,N); else bit1=ones(1,N); end bitb=bitb,bit1;endfigure(1);subplot(K,1,4); plot(bitb,LineWidth,1.5),grid on;title(解调后信号); axis(0,length(bitb),-2.5,2.5); case 4,scolor=2DPSK; %- 2DPSK 调制与解调%-%Initial_Part%-fs = 30000;Time_Hold_On = 0.1;Num_Unit = fs * Time_Hold_On;High_Level = ones ( 1, Num_Uni

18、t );Low_Level = zeros ( 1, Num_Unit );w = 300;A = 1;%-%Initial_The_Signal%-Sign_Set = 0,1,1,0,1,0,0,1Lenth_Of_Sign = length ( Sign_Set );st = zeros ( 1, Num_Unit * Lenth_Of_Sign );sign_orign = zeros ( 1, Num_Unit * Lenth_Of_Sign );sign_result = zeros ( 1, Num_Unit * Lenth_Of_Sign );t = 0 : 1/fs : Ti

19、me_Hold_On * Lenth_Of_Sign - 1/fs;%-%产生基带信号%-for I = 1 : Lenth_Of_Sign if Sign_Set(I) = 1 sign_orign( (I-1)*Num_Unit + 1 : I*Num_Unit) = High_Level; else sign_orign( (I-1)*Num_Unit + 1 : I*Num_Unit) = Low_Level; endend%-%调制部分%-for I = 1 : Lenth_Of_Sign if Sign_Set(I) = 1 st( (I-1)*Num_Unit + 1 : I*N

20、um_Unit) = A * cos ( 2 * pi * w * t( (I-1)*Num_Unit + 1 : I*Num_Unit ) + ( pi / 2 ) ); else st( (I-1)*Num_Unit + 1 : I*Num_Unit) = A * cos ( 2 * pi * w * t( (I-1)*Num_Unit + 1 : I*Num_Unit ) ); endendfiguresubplot ( 2,1,1 )plot(t, sign_orign);axis( 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - (A / 2),

21、A + (A / 2) );title ( 原始信号 );gridsubplot ( 2, 1, 2 );plot ( t, st );axis( 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) );title ( 调制后的信号 );grid%-%相乘%-dt = st .* cos ( 2 * pi * w * t );figureplot ( t, dt );axis( 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) );title (

22、 相乘后的波形 );grid%-%低通滤波部分%-N,Wn = buttord( 2*pi*50, 2*pi*150,3,25,s); %临界频率采用角频率表示b,a=butter(N,Wn,s);bz,az=impinvar(b,a,fs); %映射为数字的dt = filter(bz,az,dt);figureplot ( t, dt );axis( 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) );title ( 低通滤波后的波形 );grid%-%抽样判决 & 逆码变换部分%-for I = 1 : Len

23、th_Of_Sign if dt(2*I-1)*Num_Unit/2) 0.25 sign_result( (I-1)*Num_Unit + 1 : I*Num_Unit) = High_Level; else sign_result( (I-1)*Num_Unit + 1 : I*Num_Unit) = Low_Level; endendfigureplot ( t, sign_result );axis( 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) );title ( 解调后信号 );grid end四、仿真

24、现象运行程序还会出现调制解调得选择窗口,来进行选择调制解调方式 如下在选择窗口中可以看到有四种调制解调方式选择2ASK进行调制解调可以看到随机得基带信号,2ASK调制后的信号以及2ASK解调后的信号进入菜单 从新选择2PSK可以看到随机产生得2PSK基带信号,2PSK调制后的信号以及2PSK解调后的信号进入菜单栏重新选择2FSK调制解调可以看到随机产生得基带信号,使用2FSK调制后的信号以及使用2FSK解调后的信号进入菜单栏从新选择2DPSK调制解调以上为随机产生得二进制原始信号以及2DPSK调制之后得信号使用2DPSK解调之后的信号五、调试分析1、调试方法:根据自己的设计内容运行程序,仔细检

25、查MATLAB运行出来的图片中的数据是否符合自己的设计要求。如果不符合就应该调整程序内容,继续运行,直到达到自己设计要求。2、问题分析与解决措施.在调试过程中遇到了(1)程序不能正常运行错误:程序命名保存时用了2SK(2)输出提示语句未显示错误:提示语与程序中设置显示语言发生冲突。(3)使用menu模块时未能成功连接错误:连接语使用不一致,不能正常连接六、参考文献通信原理(第六版) 樊昌信 曹丽娜编国防工业出版社通信原理-基于MATLAB的仿真 - 郭文彬七、心得体会经过这次通信原理课程设计,我复习了MATLAB编程语言的基本概念、语法、语义和数据类型的使用特点,加深了对通信原理课程的理解,了

26、解了运用结构化程序设计的基本思想和方法,更重要的是培养了自己的自学能力。 以下是我的几点切身感受: (一)读程序需要一个清醒的头脑,明确的思路,同时也要有耐心毅力。刚拿到程序设计课题时,我感觉一片茫然,因为在之前的信号处理学习中,只是在一些例题中接触过MATLAB语言,对MATLAB的基本语句一无所知,不过通过原有程序,了解了首先要设计guide目录,再根据用户输入,执行swtich语句,在每个case后调用一个函数,来实现要求的功能。至此,我真真体会到清晰地思路对成功编写一个程序的重要性。(二)我们在大学需要学习的不仅是基础知识、专业知识,更重要的是一种学习能力。由于课堂时间有限,MATLAB课程只能靠我们自学,了解了MATLAB软件的应用,较为熟练的掌握了软件的功能应用。(三)要学会向他人请教,与他人合作。在阅读程序过程中,我遇到了许多问题,还好大部分通过查找资料能找到原因,在阅读程序的过程中,我与我组成员共同讨论,为对方查找错误,提示建议,在这个过程中我收获甚多,也培养了自己的合作精神。 (四)要学会总结,提高。在使用figure分图显示的时候,我尽量选择部分图,都在一个figure中显示,使整个设计的显得干净利落。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号