收藏 分销(赏)

基于MATLAB的数字调制.doc

上传人:人****来 文档编号:3930938 上传时间:2024-07-23 格式:DOC 页数:22 大小:63.54KB 下载积分:10 金币
下载 相关
基于MATLAB的数字调制.doc_第1页
第1页 / 共22页
基于MATLAB的数字调制.doc_第2页
第2页 / 共22页


点击查看更多>>
资源描述
word文档整理分享 2ASK、2FSK、2PSK数字调制系统的Matlab实现及性能分析与比较 引言:数字带通传输系统为了进行长距离传输,克服传输失真,传输损耗,同时保证带内特性.必须对数字信号进行载波调制,将信号频谱搬移到高频段才能在信道中传输,因而现代通信系统采取数字调制技术。通过数字基带信号对载波某些参量进行控制,使之随机带信号的变化而变化。根据控制载波参量大的不同,数字调制有调幅(ASK),调频(FSK),调相(PSK)三种基本形式.Matlab用于仿真,分析和修改,还可以应用图形界面功能GUI能为仿真系统生成一个人机交互界面,便于仿真系统的操作,因此采用matlab对数字系统进行仿真。通过对系统的仿真,我们可以更加直观的了解数字调制系统的性能()及影响性能的因素,从而便于改进系统,获得更佳的传输性能。 关键词:数字。系统。 性能. ASK。 FSK。 PSK. Matlab. 仿真. 一.数字调制与解调原理 1。1 2ASK (1)2ASK 2ASK就是把频率、相位作为常量,而把振幅作为变量,信息比特是通过载波的幅度来传递的。由于调制信号只有0或1两个电平,相乘的结果相当于将载频或者关断,或者接通,它的实际意义是当调制的数字信号"1时,传输载波;当调制的数字信号为"0”时,不传输载波。 公式为: 1。2 2FSK 2FSK可以看做是2个不同频率的2ASK的叠加,其调制与解调方法与2ASK差不多,主要频率F1和F2,不同的组合产生所要求的2FSK调制信号. 公式如下: 1。3 2PSK 2PSK以载波的相位变化为基准,载波的相位随数字基带序列信号的1或者0而改变,通常用已经调制完的载波的0或者π表示数据1或者0,每种相位与之一一对应。 二.数字调制技术的仿真实现 本课程设计需要借助MATLAB的M文件编程功能,对2ASK.。2PSK。2FSK进行调制与解调的设计,并绘制出调制与解调后的波形,误码率的情况分析,软件仿真可在已有平台上实现。 1.2ASK代码主函数 close all clear all n=16; fc=1000000; bitRate=1000000; N=50; %noise=ti; noise=10; signal=source(n,N); %生成二进制代码 transmittedSignal=askModu(signal,bitRate,fc,N);%调制后信号 signal1=gussian(transmittedSignal,noise);%加噪声 configueSignal=demoASK(signal1,bitRate,fc,n,N); source代码 function sendSignal=source(n,N) sendSignal=randint(1,n) bit=[]; for i=1:length(sendSignal) if sendSignal(i)==0 bit1=zeros(1,N); else bit1=ones(1,N); end bit=[bit,bit1]; end figure(1) plot(1:length(bit),bit),title('transmitting of binary'),grid on; axis([0,N*length(sendSignal),-2,2]); end askModu代码 function transmittedSignal=askModu(signal,bitRate,fc,N)%signal为输入信号,bitrate为bit速率,fc调制信号频率,N %signal=[0 0 1 0 1 1 0 1]; % bitRate=1000000; % fc=1000000; % N=32; t=linspace(0,1/bitRate,N); c=sin(2*pi*t*fc); transmittedSignal=[]; for i=1:length(signal) transmittedSignal=[transmittedSignal,signal(i)*c]; end figure(2) %画调制图 plot(1:length(transmittedSignal),transmittedSignal);title(’Modulation of ASK');gridon; figure(3)%画频谱实部 m=0:length(transmittedSignal)—1; F=fft(transmittedSignal); plot(m,abs(real(F))),title(’ASK_frequency—domain analysis real'); grid on; %figure(4) 画频谱虚部 %plot(m,imag(F));title(’ASK_frequency-domain analysis imag’); %grid on; end CheckRatePe代码 function PeWrong=CheckRatePe(signal1,signal2,s) rights=0; wrongs=0; for ki=1:s-2 if(signal1(ki)==signal2(ki)) rights=rights+1; else wrongs=wrongs+1; end end PeWrong=wrongs/(wrongs+rights); end demoASK代码 function bitstream=demoASK(receivedSignal,bitRate,fc,n,N) load num signal1=receivedSignal; signal2=abs(signal1); %ÕûÁ÷ signal3=filter(num1,1,signal2); %LPF,°üÂç¼ì²¨ IN=fix(length(num1)/2); %ÑÓ³Ùʱ¼ä bitstream=[]; LL=fc/bitRate*N; i=IN+LL/2; while (i〈=length(signal3)) %Åоö bitstream=[bitstream,signal3(i)〉=0.5]; i=i+LL; end figure(6) subplot(3,1,1); %接收波形 plot(1:length(signal1),signal1);title(’Wave of receiving terminal(including noise)’);grid on; subplot(3,1,2);%接收整流后波形 plot(1:length(signal2),signal2);title('Wave of commutate’);grid on; subplot(3,1,3);%包络检波波形 plot(1:length(signal3),signal3);title('Wave of LPF');grid on; bit=[]; for i=1:length(bitstream) if bitstream(i)==0 bit1=zeros(1,N); else bit1=ones(1,N); end bit=[bit,bit1]; end figure(7)%解调后的二进制波形 plot(bit),title(’binary of receiving terminal’),grid on; axis([0,N*length(bitstream),—2。5,2.5]); end gussian代码 %加高斯白噪声 function signal=gussian(transmittedSignal,noise) signal=sqrt(2)*transmittedSignal; signal=awgn(signal,noise); figure(5) plot(1:length(signal),signal); title('Wave including noise'),grid on; end ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// fsk主函数代码 close all clear all n=16;%二进制代码长度 f1=18000000;%频率1 f2=6000000;%频率2 bitRate=1000000;%bit速率 N=50;%码元宽度 %noise=ti; noise=10;%家性噪声大小 signal=source(n,N);%产生二进制代码 transmittedSignal=fskModu(signal,bitRate,f1,f2,N);%调制 signal1=gussian(transmittedSignal,noise);%加噪声 configueSignal=demoFSK(signal1,bitRate,f1,f2,N);%解调 source代码%二进制信号产生函数 function sendSignal=source(n,N) sendSignal=randint(1,n) bit=[]; for i=1:length(sendSignal) if sendSignal(i)==0 bit1=zeros(1,N); else bit1=ones(1,N); end bit=[bit,bit1]; end figure(1) plot(bit),title(’transmitting of binary'),grid on; axis([0,N*length(sendSignal),-2.5,2。5]); end fskModu代码%频率调制函数 function transmittedSignal=fskModu(signal,bitRate,f1,f2,N) t=linspace(0,1/bitRate,N); c1=sin(2*pi*t*f1);%调制信号1 c2=sin(2*pi*t*f2);%调制信号2 transmittedSignal=[]; for i=1:length(signal)%调制 if signal(i)==1 transmittedSignal=[transmittedSignal,c1]; else transmittedSignal=[transmittedSignal,c2]; end end figure(2) %画调制后波形图 plot(1:length(transmittedSignal),transmittedSignal);title('Modulation of FSK’);grid on; figure(3) %画调制后频谱图 m=0:length(transmittedSignal)-1; F=fft(transmittedSignal); plot(m,abs(real(F))),title(’ASK_frequency-domain analysis real’); grid on; end demoFSK代码 function bitstream=demoFSK(receivedSignal,bitRate,f1,f2,N) load num signal1=receivedSignal; signal2=filter(gaotong,1,signal1); %通过HPF,得到高通分量 signal3=abs(signal2); %整流 signal3=filter(lowpass,1,signal3);%通过低通,形成包络 bitstream=[]; IN1=fix(length(lowpass)/2)+fix(length(gaotong)/2); %延迟时间 bitstream1=[]; LL=N; %每个bit的抽样点数 i=IN1 +LL/2; while (i〈=length(signal3)) %判决 bitstream1=[bitstream1,signal3(i)〉=0。5]; i=i+LL; end bitstream1 figure(5) subplot(3,1,1); plot(1:length(signal1),signal1);title('Wave of receiving terminal(including noise)’);grid on; subplot(3,1,2); plot(1:length(signal2),signal2);title(’After Passing HPF’);grid on; subplot(3,1,3); plot(1:length(signal3),signal3);title('After Passing LPF’);grid on; signal4=filter(daitong,1,signal1); %通过BPF得到低频分量 signal5=abs(signal4); %整流 signal5=filter(lowpass,1,signal5); %通过LPF,形成包络 IN2=fix(length(lowpass)/2)+fix(length(daitong)/2); %延迟时间 bitstream2=[]; LL=N; %每个bit的的抽样点数 i=IN2 +LL/2; while (i<=length(signal5)) %判决 bitstream2=[bitstream2,signal5(i)〉=0。5]; i=i+LL; end bitstream2 figure(6) subplot(3,1,1); plot(1:length(signal1),signal1);title(’Wave of receiving terminal(including noise)');grid on; subplot(3,1,2); plot(1:length(signal4),signal4);title('After Passing BPF’);grid on; subplot(3,1,3); plot(1:length(signal5),signal5);title('After Passing LPF’);grid on; for i=1:min(length(bitstream1),length(bitstream2)) %判决 if(bitstream1(i)>bitstream2(i)) bitstream(i)=1; else bitstream(i)=0; end end bitstream bit=[]; %接收端波形 for i=1:length(bitstream) if bitstream(i)==0 bit1=zeros(1,N); else bit1=ones(1,N); end bit=[bit,bit1]; end figure(7) plot(bit),title(’binary of receiving terminal’),grid on; axis([0,N*length(bitstream),—2。5,2。5]); end CheckRatePe代码 function PeWrong=CheckRatePe(signal1,signal2,s) rights=0; wrongs=0; for ki=1:s—2 if(signal1(ki)==signal2(ki)) rights=rights+1; else wrongs=wrongs+1; end end PeWrong=wrongs/(wrongs+rights); end gussian代码 function signal=gussian(transmittedSignal,noise) signal=sqrt(2)*transmittedSignal; signal=awgn(signal,noise); figure(4) plot(1:length(signal),signal),title(’Adding Noise’); grid on; end 2psk主函数代码 close all clear all n=16;%二进制码长 fc=1000000;%载波频率 bitRate=1000000;%信息频率 N=50;%码宽 noise=10;%信道加性噪声大小 signal=source(n,N);%生成二进制代码 transmittedSignal=bpskModu(signal,bitRate,fc,N);%对信号进行调制并进行频 %谱分析 signal1=gussian(transmittedSignal,noise)%加信道噪声 configueSignal=demoBPSK(signal1,bitRate,fc,n,N);%信号解调 source代码 function sendSignal=source(n,N) sendSignal=randint(1,n) bit=[]; for i=1:length(sendSignal) if sendSignal(i)==0 bit1=zeros(1,N); else bit1=ones(1,N); end bit=[bit,bit1]; end figure(1) plot(bit),title(’transmitting of binary'),grid on; axis([0,N*length(sendSignal),-2。5,2。5]); end bpskModu代码 function transmittedSignal=bpskModu(signal,bitRate,fc,N) t=linspace(0,1/bitRate,N); c1=sin(2*pi*t*fc); c2=sin(2*pi*t*fc + pi); transmittedSignal=[]; for i=1:length(signal) if signal(i)==1 transmittedSignal=[transmittedSignal,c1]; else transmittedSignal=[transmittedSignal,c2]; end end figure(2) %画调制图 plot(1:length(transmittedSignal),transmittedSignal);title('Modulation of BPSK’);grid on; figure(3)%画频谱图 m=0:length(transmittedSignal)—1; F=fft(transmittedSignal); plot(m,abs(real(F))),title(’BPSK_frequency-domain analysis real’); grid on; end CheckRatePe代码 function PeWrong=CheckRatePe(signal1,signal2,s) rights=0; wrongs=0; for ki=1:s—2 if(signal1(ki)==signal2(ki)) rights=rights+1; else wrongs=wrongs+1; end end PeWrong=wrongs/(wrongs+rights); end demoBPSK代码 function bitstream=demoBPSK(receivedSignal,bitRate,fc,n,N) load num%读取num存储的低通滤波用的数据 signal1=receivedSignal; t=linspace(0,1/bitRate,N); c=sin(2*pi*t*fc); signal=[]; for i=1:n signal=[signal,c]; end signal2=signal1.*signal; %乘同频同相sin signal3=filter(num1,1,signal2); %LPF,包络检波3 IN=fix(length(num1)/2); %Ñ延迟时间 bitstream=[]; LL=fc/bitRate*N; i=IN+LL/2; while (i<=length(signal3)) %判决 bitstream=[bitstream,signal3(i)〉=0]; i=i+LL; end figure(5) subplot(3,1,1);%画接收的包含噪声的波形 plot(1:length(signal1),signal1);title('Wave of receiving terminal(including noise)’);grid on; subplot(3,1,2);%相干解调波形 plot(1:length(signal2),signal2);title('After Multipling sin Fuction’);grid on; subplot(3,1,3);%包络检波波形 plot(1:length(signal3),signal3);title(’Wave of LPF’);grid on; bit=[]; for i=1:length(bitstream) if bitstream(i)==0 bit1=zeros(1,N); else bit1=ones(1,N); end bit=[bit,bit1]; end figure(6)二进制接收信号波形 plot(bit);title(’binary of receiving terminal’);grid on; axis([0,N*length(bitstream),—2.5,2。5]); end gussian代码 function signal=gussian(transmittedSignal,noise) signal=sqrt(2)*transmittedSignal; signal=awgn(signal,noise); figure(4) plot(1:length(signal),signal),grid on; title('Adding noise’) end 三种调制方式的性能比较: load PeRate; load PeRatep; %补偿误差 fpeask(15)=1e-3; fpefsk(9)=1e-3; fpepsk(24)=0。002; fpepsk(26)=1e—3; figure(1) semilogy(-6:length(fpeask)—7,fpeask,-6:length(fpefsk)-7,fpefsk,-30:length(fpepsk)-31,fpepsk),grid on; title(’Analysis Of Bit Error Rate’); legend(’ASK','FSK’,’PSK’); xlabel('r/dB’); ylabel(’Pe'); figure(2) semilogy(—6:length(fpefsk)-7,fpeask);grid on; title(’Bit Error Rate Of ASK’); xlabel(’r/dB’); ylabel(’PeASK’); figure(3) semilogy(-6:length(fpefsk)-7,fpefsk);grid on; title(’Bit Error Rate Of FSK’); xlabel(’r/dB'); ylabel(’PeFSK’); figure(4) semilogy(—16:length(fpepsk)-17,fpepsk);grid on; title(’Bit Error Rate Of PSK’); axis([-16,10,1e—3,1]); xlabel(’r/dB’); ylabel('PePSK'); 三.程序与调制解调波形 3。1 2ASK波形 1随机信号产生 2ASK信号调制 3信号噪声附加 4接受信号解调 5解调出的基带信号 3。2.FSK 1随机信号产生 2FSK信号调制 3信号噪声附加 4接受信号解调 5解调出的基带信号 3。3PSK 1.随机信号产生 2.FSK信号调制 3信号噪声附加 4接受信号解调 5解调出的基带信号 3。4误码率分析 1。2ASK误码率分析 2。2FSK误码率分析 3.2PSK误码率分析 4性能比较 4课程设计心得体会 经过紧张而有辛苦的一周的通信原理课程设计,当辛苦的汗水换来的是成功的喜悦时,感觉自己又完成了对自己的一个新的超越,这大大增加了我的自信心,也是对自己的能力的肯定.但更重要的时课程设计是理论与实践的结合,在此过程中可谓收获颇丰,这一点远比结果重要,不仅提高了分析问题和解决问题的能力, 坦白说在此过程中困难重重首先是对matlab的重新认识, 5。参考文献 [1]樊昌信。 通信原理(第6版)。国防工业出版社,2006,09 [2] 黎洪松. 数字通信原理。西安电子系科技大学出版社,2005,07 [3] 任嘉伟.数字频带通信系统计算机仿真[J]。电脑知识与技术,2008,07 [4] 吕跃广 通信系统仿真。电子工业出版社,2010。03 [5]席在芳等 基于SIMULINK 的现代通信系统仿真分析[J].系统仿真学报 2006,18(10) [6]孙学军等。 通信原理 电子工业出版社,2001年 [7]宫锦文. 通信原理实验指导书 电子工业出版社,2007年 [8]孙学军等。 通信原理 电子工业出版社,2001年 [9]季飞。 通信系统仿真与建模 电子工业出版社,2007年 [10]刘卫国。 MATLAB程序设计教程 中国水利水电出版社,2005年 [11] 张德丰。 MATLAB通信工程仿真 机械工业出版社,20010年 一. 课程设计任务 1、 系统建模 2、 确定仿真算法 3、 建立仿真模型 4、 设计仿真程序 5、 运行仿真程序 6、 输出仿真结果并进行分析 1。2 课程设计目的 通信系统的计算机仿真是利用计算机对所研究的通信系统结构、功能和行为进行动态模拟, 本设计要求利用MATLAB程序的运行来模拟通信系统的动态工作过程。加强学生对通信系统专业知识的理解和掌握,训练并提高其在通信系统建模、通信系统设计、资料文献查阅、通信系统仿真、通信系统性能分析等方面的能力。 1。3 课程设计要求 运用matlab的M文件编程实现2ASK。2PSK.2FSK调制解调过程,并输出调制后的波形,比较其误码率,并分析比较其调制效果。 参考资料
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服