通信原理实验报告
更新时间:2023-10-07 18:24:01 阅读量: 综合文库 文档下载
信息科学与工程学院
课程设计报告书
课 题: 通信原理 班 级: 学 号: 姓 名:
指导教师: 郭 丽 梅 二〇一〇 年 十 月
目 录
? 目录----------------------------------------------2 ? 一、课程设计目的----------------------------3 ? 二、课程设计题目----------------------------3 ? 三、课程设计实验原理-----------------------3
1 / 41
? 四、建立模型描述----------------------------6 ? 五、模块功能分析及源程序代码-----------6
? 六、调试过程及结论-------------------------22
? 七、调试分析----------------------------------34
? 八、基于MATLAB的MASK、MFSK、MPSK调制拓展 ? 九、心得体会----------------------------------40 ? 十、参考文献---------------------------------41 摘要: 通信原理是通信工程专业相当重要的学科,对日后就业和科研有重大的意义, 2 / 41 通过MATLAB,我们可以清晰地理解通信原理中难以理解的一面,对理论的知识加以深化。b5E2RGbCAP 关键字: MATLAB 通信原理 GUI 序列 频谱 相位 相干 非相干 一、 课程设计题目 1)、应用MATLAB编制信号生成程序,并对信号进行HDB3编码和译码。 2)、课程设计需要运用MATLAB编程实现2ASK,2FSK,2PSK,2DPSK调制解调过程,并且输出其源码,调制后码元以及解调后码元的波形。p1EanqFDPw 二、课程设计目的 通信原理是一门以算法为核心,理论和实践性较强的学科。是电子信息工程、通信工程专业、电子信息科学与技术专业的一门重要的专业技术基础课。通信原理课程设计是在学习完通信原理的相关理论后,进行的综合性训练课程,其目的是:DXDiTa9E3d 1.使学生进一步巩固通信原理的基本概念、理论、分析方法和实现方法; 2.增强学生应用Matlab语言编写数字信号处理的应用程序及分析、解决实际问 题的能力; 3.全面复习课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来; 4.提高综合运用所学知识独立分析和解决问题的能力; 5.熟练使用一种高级语言进行编程实现。 三、课程设计实验原理 1.HDB3编码解码原理 HDB3码:三阶高密度双极性码。 HDB3码与二进制序列的关系: (1>二进制信号序列中的“0”码在HDB3码中仍编为“0”码,二进制信号中“1”码,在HDB3码中应交替地成+1和-1码,但序列中出现四个连“0”码时应按特殊规律编码<引入传号交替反转码的“破坏点”V码);RTCrpUDGiT (2>二进制序列中四个连“0”按以下规则编码:信码中出现四个连“0”码时,要将这四个连“0”码用000V或B00V取代节来代替(B和V也是“1”码,可正、可负>。这两个取代节选取原则是,使任意两个相邻v脉冲间的传号数为奇数时选用000V取代节,偶数时则选用B00V取代节。5PCzVD7HxA 2.二进制数字调制技术原理 数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数 信道具有带通特性而不能直接传输基带信号。为了使数字信号在带通信道中传输,必须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。 3 / 41 这种用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。通常使用键控法来实现数字调制,比如对载波的振幅、频率和相位进行键控。jLBHrnAILg (1>2ASK信号的产生方法通常有两种:模拟调制和键控法。解调有相干解调和非相干解调。P=1时f(t>=Acoswt。p=0时f(t>=0。其功率谱密度是基带信号功率谱的线性搬移。xHAQX74J0X 解调原理图 图1 2ASK非相干解调接收系统 图2 2ASK相干解调接收系统 (2> 一个2FSK信号可以看成是两个不同载波的2ASK信号的叠加。其解调和解调方法和ASK差不多。2FSK信号的频谱可以看成是f1和f2的两个2ASK频谱的组合。LDAYtRyKfE 解调原理图 4 / 41 带通滤波器 相乘器 低通滤波器 抽样判决器 带通滤波器 相乘器 低通滤波器 图3 2FSK相干解调接收系统 带通滤波器 包络检波器 抽样判决器 带通滤波器 包络检波器 图4 2FSK非相干解调接收系统 (3> 2PSK以载波的相位变化作为参考基准的,当基带信号为0时相位相对于初始相位为0, 当基带信号为1时相对于初始相位为180°。Zzz6ZB2Ltk (4> 2DPSK调制原理方框图如下图: 载波 A(t> 移相??码变换 S(t> 图5 间接法信号调制器原理方框图 5 / 41 2DPSK信号的解调,主要有两种方法,即相位比较法和相干解调法。相干解调法原理方框图如下图: 带通滤波 相乘 低通滤波 抽样判决 逆码变换 本地载波 提取 图6 相干解调法原理方框图 四、建立模型描述 用MATLAB实现二进制振幅键控<2ASK)的调制和解调 在这里用MATLAB函数来对这个二进制振幅键控<2ASK)来实现调制与解调的仿真。二进制振幅键信号可以表示完成一个单极性矩形脉冲序列与一个正弦型载波的乘积。通常它的调制方法有两种,即模拟幅度调制方法和键控方法,在MATLAB里我们采用模拟幅度调制的方法,解调采用相干解调<包络检波法)的方式。我们用SOURCE函数来产生一个原始二进制基带信号,即一个单矩形脉冲序列。以askModu函数来进行模拟幅度调制,得到一个已调2ASK信号,并用此函数进行此2ASK信号的频谱分析。然后用gussian函数加入加性高斯白噪声,再用demoASK函数进行想干解调并分别输出各点的输出波形,最后经过抽样判决后得出输出波形。同时我们用CheckRatePe函数来得出误码率,最后运行主函数ASK_main可以看到各种波形。用MATLAB函数来对2FSK、2PSK、2DPSK实现调制与解调的仿真与2ASK的调制与解调过程的仿真类似。dvzfvkwMI1 五、模块功能分析及源程序代码 5.1 HDB3码的编码和译码 global x xn=x。 yn=xn。 num=0。 %计数器初始化 for k=1:length(xn> if xn(k>==1 %1的计数器 num=num+1。 6 / 41 if num/2==fix(num/2> %奇数个一时输出-1,进行记性交替 yn(k>=1。 else yn(k>=-1。 end end end %HDB3编码 num=0。 yh=yn。 sign=0。 v=zeros(1,length(yn>>。 B=zeros(1,length(yn>>。% B脉冲位置记录 for k=1:length(yn> if yn(k>==0 num=num+1。%连0个数计数 if num==4 %如果4连0 num=0。 %计数器清零 yh(k>=1*yh(k-4>。%最后一个0改变与前一个非零符号同极性 v(k>=yh(k>。 if yh(k>==sign%如果当前V与前一个极性相同 yh(k>=-1* yh(k>。%则当前V符号极性反转, yh(k-3>= yh(k>。%添加B脉冲 B(k-3>= yh(k>。%B脉冲位置 v(k>= yh(k>。%V脉冲位置 yh(k+1:length(yn>>=-1* yh(k+1:length(yn>>。 end sign=yh(k>。 %计算前一个V符号的极性 end else num=0。%当前输入为0,则计数器清零 end end re=[xn',yn',yh',v',B']。 %HDB3解码 input=yh。 decode=input。 sign=0。 %极性标志初始化 for k=1:length(yh> if input(k>~=0 if sign==yh(k>%如果当前码与前一个非零码的极性相同 decode(k-3:k>=[0 0 0 0]。 end sign=input(k>。%极性标志 7 / 41 end end decode=abs(decode>。 subplot(3,1,1>。stairs(xn>。axis([1 length(xn> -2 2]>。 rqyn14ZNXI grid。 ylabel('xn'>。 title('HDB3 码的编码前图形'>。 subplot(3,1,2>。stairs(yh>。axis([1 length(xn> -2 2]>。 EmxvxOtOco grid。 ylabel('HDB3 codes'>。 title('HDB3 码的编码后<解码前)图形'>。 subplot(3,1,3>。stairs(decode>。axis([1 length(xn> -2 2]>。 SixE2yXPq5 grid。 ylabel('decoded xn'>。 title('HDB3 码的解码后图形'>。 code1=yh。 decode1=decode。 5.2 ASK的调制与解调 5.2.1 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('发送端二进制波形'>,grid on。 axis([0,N*length(sendSignal>,-2,2]>。 end 5.2.2 askModu函数源程序 function transmittedSignal=askModu(signal,bitRate,fc,N>6ewMyirQFL 8 / 41 %signal=[1 0 1 0 1 0 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('ASK调制波形 '>。grid on。kavU42VRUs figure(3> m=0:length(transmittedSignal>-1。 F=fft(transmittedSignal>。 plot(m,abs(real(F>>>,title('ASK仿真频谱分析'>。 grid on。 %figure(4> %plot(m,imag(F>>。title('ASK_frequency-domain analysis imag'>。y6v3ALoS89 %grid on。 End 5.2.3 gussian函数源程序 function signal=gussian(transmittedSignal,noise> signal=sqrt(2>*transmittedSignal。 signal=awgn(signal,noise>。 figure(5> plot(1:length(signal>,signal>。 title('包含噪声的波形'>,grid on。 9 / 41 end 5.2.4 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 5.2.5 demoASK函数源程序 function bitstream=demoASK(receivedSignal,bitRate,fc,n,N> M2ub6vSTnP 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> 10 / 41 subplot(3,1,1>。 plot(1:length(signal1>,signal1>。title('接收端波形(包含噪声>'>。grid on。 0YujCfmUCw subplot(3,1,2>。 plot(1:length(signal2>,signal2>。title('整流之后的波形'>。grid on。eUts8ZQVRd subplot(3,1,3>。 plot(1:length(signal3>,signal3>。title('LPF滤波后的包络波形'>。grid on。 sQsAEJkW5T 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('接收端二进制波形'>,grid on。 axis([0,N*length(bitstream>,-2.5,2.5]>。 end 5.2.6 ASK_main函数源程序 close all clear all %{ ti=0。 fpeask=[]。 startn=-6。 endn=18。 11 / 41 for ti=startn:endn n=1000。 %} n=16。 fc=1000000。 ü>=bitRate fc/bitRate为每个包含sin周期个数GMsIasNXkA 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>。 %{ configueSignal。 P=CheckRatePe(signal,configueSignal,n> fpeask=[fpeask,P]。 end figure(8>。 semilogy(startn:length(fpeask>+startn-1,fpeask>。 grid on。 title('ASK—误码率 '>。 xlabel('r/dB'>。 ylabel('PeASK'>。 save PeRate.mat fpeask %} 5.3 FSK的调制与解调 5.3.1 source函数 function sendSignal=source(n,N> 12 / 41 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('发送端二进制波形'>,grid on。 axis([0,N*length(sendSignal>,-2.5,2.5]>。 end 5.3.2 FskModu函数源程序 function transmittedSignal=fskModu(signal,bitRate,f1,f2,N>TIrRGchYzg t=linspace(0,1/bitRate,N>。 c1=sin(2*pi*t*f1>。 c2=sin(2*pi*t*f2>。 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('FSK调制波形'>。grid on。7EqZcWLZNX figure(3> m=0:length(transmittedSignal>-1。 F=fft(transmittedSignal>。 plot(m,abs(real(F>>>,title('FSK仿真频谱分析'>。 grid on。 end 5.3.3 gussian函数源程序 function signal=gussian(transmittedSignal,noise> signal=sqrt(2>*transmittedSignal。 signal=awgn(signal,noise>。 figure(4> plot(1:length(signal>,signal>,title('包含噪声的波形'>。 grid on。 13 / 41 end 5.3.4 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 5.3.5 demoFSK函数源程序 function bitstream=demoFSK(receivedSignal,bitRate,f1,f2,N> lzq7IGf02E load FSKnum signal1=receivedSignal。 signal2=filter(gaotong,1,signal1>。 %通过HPF,得到高频分量 signal3=abs(signal2>。 %整流 signal3=filter(lowpass,1,signal3>。 %通过LPF,形成包络 bitstream=[]。 IN1=fix(length(lowpass>/2>+fix(length(gaotong>/2>。 %延迟时间zvpgeqJ1hk 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('接收端波形(包含噪声>'>。grid on。 NrpoJac3v1 subplot(3,1,2>。 plot(1:length(signal2>,signal2>。title('通过HPF得到的高频分量波形'>。grid on。 1nowfTG4KI subplot(3,1,3>。 plot(1:length(signal3>,signal3>。title('通过LPF后的包络波形'>。grid on。 fjnFLDa5Zo signal4=filter(daitong,1,signal1>。 %通过BPF,得到低频分量 signal5=abs(signal4>。 %整流 14 / 41 signal5=filter(lowpass,1,signal5>。 %通过LPF,形成包络 IN2=fix(length(lowpass>/2>+fix(length(daitong>/2>。 %延迟时间tfnNhnE6e5 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('接收端波形(包含噪声>'>。grid on。 HbmVN777sL subplot(3,1,2>。 plot(1:length(signal4>,signal4>。title('通过BPF得的低频分量波形'>。grid on。 V7l4jRB8Hs subplot(3,1,3>。 plot(1:length(signal5>,signal5>。title('通过LPF后的包络波形'>。grid on。 83lcPA59W9 for i=1:min(length(bitstream1>,length(bitstream2>> %判决mZkklkzaaP 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('接收端波形<解调后波形)'>,grid on。 axis([0,N*length(bitstream>,-2.5,2.5]>。 end 5.3.6 FSK_main函数源程序 close all clear all 15 / 41 figure subplot(2,1,1> plot ( t, dt >。 axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1>, - 3*(A / 2>, 3*(A / 2> ] >。 bR9C6TJscw title ( '相乘后的波形' >。 grid [N,Wn] = buttord( 2*pi*50, 2*pi*150,3,25,'s'>。 %临界频率采用角频率表示pN9LBDdtrd [b,a]=butter(N,Wn,'s'>。 [bz,az]=impinvar(b,a,fs>。 %映射为数字的 dt = filter(bz,az,dt>。 subplot(2,1,2> plot ( t, dt >。 axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1>, - 3*(A / 2>, 3*(A / 2> ] >。 DJ8T7nHuGT title ( '低通滤波后的波形' >。 grid for I = 1 : Lenth_Of_Sign if dt((2*I-1>*Num_Unit/2> < 0.25 sign_result( (I-1>*Num_Unit + 1 : I*Num_Unit> = High_Level。QF81D7bvUA else sign_result( (I-1>*Num_Unit + 1 : I*Num_Unit> = Low_Level。4B7a9QFw9h end end figure plot ( t, sign_result >。 axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1>, - 3*(A / 2>, 3*(A / 2> ] >。 ix6iFA8xoX title ( '逆码变换后的波形' >。 grid 六、调试过程及结论 6.1基于MATLAB的2ASK调制解调仿真过程及结论 6.1.1 仿真过程中的各点波形 21 / 41 图7 发送端二进制波形 图8 已调2ASK波形 22 / 41 图9 2ASK频谱分析 图10 加入高斯白噪声后的2ASK波形 23 / 41 图11 解调过程中各点的输出波形 图13 解调后的波形 24 / 41 6.2 基于MATLAB的2FSK调制解调仿真过程及结论 图14 发送端二进制波形 图15 已调 2FSK波形 25 / 41
正在阅读:
通信原理实验报告10-07
二九年农业行政执法责任制实施方案10-28
煤矿各岗位安全生产责任制06-27
基于plc的中央空调自动控制系统设计10-23
软件项目开发工作任务书模板05-30
微控制器系统设计复习题 - 图文12-25
学习习近平总书记在决战决胜脱贫攻坚座谈会上的讲话心得体会09-10
我爱夏天作文600字(5篇)08-01
全国中学生生物学联赛试题+答案及详细解析11-17
武东小学韵律操比赛活动方案04-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 原理
- 实验
- 通信
- 报告
- 2009年职称英语考试综合类B级试题及答案
- SQL复习题答案
- 《思想品德修养》推荐阅读书目
- 军转干部考试时政热点:产能过剩行业如何“凤凰涅盘”
- Delphi XE程式设计系列 2-开发DataSnap - REST伺服器
- 纪检监察业务知识题库
- 2016-2017学年度山东省宁津县育新中学第一学期八年级期中考试
- 弘扬铁人精神 共建和谐校园
- 数字图像处理
- 喷涂车间火灾爆炸事故案例分析
- 苏教版三年级语文上册《卧薪尝胆》第二课时教学设计
- 企业通用校企合作框架协议书范本
- 学雷锋活动先进集体事迹材料
- 计算机网络实验报告
- 长安大学导师了解信息
- 预防校园暴力的心得体会 篇一
- 农机考试员试题库
- PC吊装专项施工方案(1)
- 30、三水城际供电车间 接触网故障抢修应急抢预案 - 图文
- 优秀教研组工作经验交流汇报材料(精)