第一篇:通信原理课程设计报告
《通信原理》 课程设计报告
题目:AM超外差收音机的设计及仿真
班 级: 姓 名: 学 号: 指导老师:
2011年6月 引言
课程设计目的 综合运用信号与系统、数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现从而加深对所学知识的理解,建立概念。系统介绍(本部分包括对系统的分析,系统仿真结构等)3 系统仿真(本部分包括系统仿真的各种图形分析,波形,功率谱图形等分析)系统各模块的参数及调整参数后的各波形对比 5 心得体会 6 参考文献引言
超外差式是与直放式相对而言的一种接收方式,超外差式收音机能把接收到的频率不同的电台信号都变成固定的中频信号(465kHz),再由放大器对这个固定的中频信号进行放大。它的优点是灵敏度高,选择性好,音质好(通频带宽)工作稳定(不容易自激),它的缺点是镜像干扰(比接收频率高两个中频的干扰信号)较大,存在假响应(变频电路的非线性),但这并不影响它的广泛应用,现在大部分的收音机都是超外差的。
2系统介绍
无线广播的接收仪器为收音机。在晶体管收音机中,多采用磁性天线作为接收信号的天线。某台载频电磁波在LC回路中产生并联谐振,次级线圈中感生出高频调幅信号,收到信号,磁性天线回路,作用是选台,并将信号通过绕在磁棒上的次级线圈耦合到变频级,收音机原理框图:
收音机的原理框图
超外差式收音机利用混频电路使本机振荡信号与接收到的电台信号进行非线性混频,使二者的差值始终为465KHZ,这样就降低了放大电路的信号频率,可以有效克服直接放大式收音机的缺点。由于本机振荡信号的频率始终比接收到的电台信号频率超出465KHZ,故把这种收音机叫做超外差式收音机。电路如图
超外差接收机原理图 AM超外差收音机系统的设计框图及仿真
广播发射端使用三不同的扫频信号源,分别用925KHZ,965KHZ,1005KHZ的载波进行AM
调制本振频率为1430KHZ时,可将965KHz载波信号解调,经过处理可以还原出原始信号。
它包括了AM调制部分,三路AM调制信号的混合,混频部分,中放部分,解调检波部分。仿真结果频谱图:
.(1)中频信号频谱图如图
心得体会
通过这次课程设计,我更加深刻地学会了用仿真软件systemview仿真一般的简单的通信电路,掌握了初步的电路分析技巧及波形分析能力。通过仿真通信电路,我学习到的理论知识得到了一次切实的应用,也更加深层次的了解了这些通信电路的产生原理及过程,我的学习热情也也得到了提
高。
参考文献
1《通信原理》(2006年第6版)樊昌信、曹丽娜编著 2《数字信号处理教程》(2006年第3版)程佩青
第二篇:通信原理课程设计报告
通信原理课程设计报告
电信0802 3080503031 王婉婉
题一:QPSK误码率性能研究以及QPSK和DQPSK调制信号性能的比较
(一):QPSK误码率性能
1:目的:本题是设计一个QPSK仿真模型,以衡量QPSK在高斯白噪声信道中的性能。
2:原理图解析 图中Bernoulli binary generator产生一个二进制向量,向量的长度等于2,分别代表QPSK Modulator baseband的两个输入信号。QPSK调制器产生的调制信号首先经过一个AWGN Channel然后进入QPSK Dodulator baseband进行解调;由于贝努力二进制序列产生器的输出信号是长度为2的二进制向量,而QPSK基带解调器模块的输出信号则是一个二进制序列,因此在对它们进行比较之前首先通过两个数值转换模块(Bit to integer Converter和Bit to integer Converter1),把它们转化成四进制数;最后两个数值转换的输出信号进入一个误码率统计模块(Error Rate Calculation),以统计QPSK解调信号的误码率。QPSK调制解调原理图如下图所示:
3:为了得到QPSK调制信号误码率与信号的信噪比之间的关系,所需m文件代码如下:
xSampleTime=1/100000;xSimulationTime=10;xInitialSeed=[61 71];xPhaseOffset=pi/4;x=0:10;y=x;hold off;for index=1:4 xSamplesPerSymbol=index;switch index case 1 xReceiveDelay=0;color='r';case 2 xReceiveDelay=1;color='g';case 3 xReceiveDelay=1;color='b';case 4 xReceiveDelay=1;color='m';end for i=1:length(x)xSNR=x(i);sim('QPSK');y(i)=xErrorRate(1);end semilogy(x,y,color);hold on;end
4:将仿真截止时间设为0.1秒,可得如下图示仿真结果:
图中:4条曲线分别表示当QPSK调制器和解调器的Samples per symbol参数等于1,2,3,4时QPSK信号的误码率性能从图中可以看出Samples per symbol参数的设置在很大程度上影响着QPSK信号的解调性能。
(二)DQPSK和QPSK调制信号性能的比较
1:在DQPSK调制的仿真模型中,Bernoulli binary generator产生一个二进制向量,向量的长度等于2,分别代表DQPSK两个支路的输入信号。我们采用DQPSK Modulator baseband对这个信号进行调制产生DQPSK基带调制信号;
基带调制信号首先经过一个AWGN Channel然后进入DPSK Dodulator baseband进行解调;由于贝努力二进制序列产生器的输出信号在通过Bit to integer Converter转换成整数后,与DPSK解调信号一起进入一个误码率统计模块(Error Rate Calculation),以统计DPSK的误码率。DQPSK 调制解调原理图如下图所示:
2:将DQPSK和QPSK的误码率性能曲线绘出的m文件如下所示:
xSampleTime=1/100000;xSimulationTime=10;xInitialSeed=[61 71];xPhaseOffset=pi/4;xSamplesPerSymbol=1;xReceiveDelay=0;x=0:10;y1=x;y2=x;for i=1:length(x)xSNR=x(i);sim('DQPSK');y1(i)=xErrorRate(1);sim('QPSK');y2(i)=xErrorRate(1);end semilogy(x,y1,'r');gtext('DQPSK');hold on;semilogy(x,y2,'g');gtext('QPSK');
3:将仿真截止时间设为2秒,可得如下图示仿真结果:
图中紫红色曲线表示DQPSK调制信号的误码率,而绿色曲线表示QPSK调制信号的误码率,从图中可见在相同条件下(相同的数据源、相同的信噪比以及相同的调制信号抽样数),QPSK调制信号的性能优于DQPSK。
题二:SSB信号的调制与解调
1:其调制解调原理图如下图所示:
单边带调制系统中,发送端只传输频带幅度调制信号的上边带或下边带,它使用的带宽只是双边带调制信号的一半,因此具有更高的频带利用率,下图中,将输入信号进行SSB调制,然后将其解调回复原波形。图中示波器用以观察信号调制解调各个阶段的波形。
2:仿真结果如下所示:
示波器显示结果
注:第一个和第六个是输入信号波形,第二个是下边带调制信号,第三个是已调制是的信号波形,第四个是已解调的信号波形,第五个是下边带信号波形。
三:参考资料
【1】MATLAB通信仿真及应用实例详解 邓华等编著 人民邮电出版社
【2】MATLAB仿真在通信与电子工程中的应用 徐明远 邵玉斌编著 西安电子科技大学出版社
第三篇:通信原理课程设计报告
课 题 学 院 专 业 学生姓名学 号 班级 指导教师
通信原理 课程设计报告
基于MATLAB的2FSK仿真 电子信息工程学院 通信工程
二〇一五年一月
基于MATLAB的基带传输系统的研究与仿真
—— 码型变换
摘 要
HDB3码编码规则
首先将消息代码变换成AMI码;然后检查AMI码中的连0情况,当无4个或4个以上的连0串时,则保持AMI的形式不变;若出现4个或4个以上连0串时,则将1后的第4个0变为与前一非0符号(+1或-1)同极性的符号,用V表示(+1记为+V,-1记为-V);最后检查相邻V符号间的非0符号的个数是否为偶数,若为偶数,则再将当前的V符号的前一非0符号后的第1个0变为+B或-B符号,且B的极性与前一非0符号的极性相反,并使后面的非0符号从V符号开始再交替变化
关键词: HDB3码 MATLAB编码原则 V码 B码
目
一、背景知识
二、MATLAB仿真软件介绍
三、仿真的系统的模型框图
四、使用MATLAB编程(m文件)完成系统的仿真
五、仿真结果
六、结果分析
七、心得、参考文献
录
正文部分
一、背景知识
在实际的传输系统中,并不是所有的代码电气波形都可以信道中传输。含有直流分量和较丰富的单极性基带波形就不适宜在低频传输特性差的信道中传输,因为它有可能造成信号的严重的畸变。
在传输码(或称线路吗)的结构将取决于实际信道特性和系统的工作条件。通常,传输码的结构应具有以下的特性:
(1)相应的基带信号无直流分理,且低频分量少(2)便于从信号中提取定时信息
(3)信号中高频分应尽量少以节省传输频带并减少码间串扰(4)不受信号源统计特性影响,即能适应于信息源变化
(5)具有内在的检错能力,传输的码型应具有一定的规律性,以便利用这一规律性进行宏观监测
(6)编译码设备要尽可能简单
满足以上特性的传输码型种类繁多,这里使用HDB3。
要了解HDB3码的编码规则,首先要知道AMI码的构成规则,AMI码就是把单极性脉冲序列中相邻的“1”码(即正脉冲)变为极性交替的正、负脉冲。将“0”码保持不变,把“1”码变为+
1、-1交替的脉冲。如: NRZ码:1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 AMI码:-1 0 0 0 0 +1 0 0 0 0-1 +1 0 0 0 0-1 +1 HBD3码(3nd Order High Density Bipolar)的全称是三阶高密度双极性码,它是AMI码的一种改进型,改进目的是为了保持AMI码的优点而克服其缺点,使连“0”个数不超过3个。其编码规则:
(1)检查消息码中连“0”的个数。当连“0”数目小于等于3时,HBD3码与AMI码一样(“1”交替的变换为“+1”和“-1”,“0”保持不变)。
(2)当连“0”数目超过3时,将每4个连“0”化作一小节,定义为“B00V"称为破坏节,其中V称为破坏脉冲,而B称为调节脉冲;
(3)V与前一个相邻的非“0”脉冲的极性相同(这破坏了极性交替的规则,所以V称破坏脉冲),并且要求相邻的V码之间极性必须交替。V的取值为“+1”或“-1”;
(4)B的取值可选0、+1或-1,以使V同时满足(3)中的两个要求;(5)V码后面的传号码极性也要交替。例如:
消息码: 1 000 0 1 000 0 1 1 000 0 000 0 1 1 AMI码:-1 000 0 +1 000 0-1+1 000 0 000 0-1+1 HDB3码:-1 000-V +1 000+V-1+1-B00-V +B00+V-1+1 其中的±B脉冲和±V脉冲与±1脉冲波形相同,用V或B表示的目的是为了示意其中的该非“0”码是由原信码的“0”变换而来的。
当相邻两个V码之间有奇数个“1”码时,能保证V码满足(3)的要求,B取“0”;当相邻两个V码之间有偶数个“1”码时,不能保证V码极性交替,B取“+1”或“-1”,B码的符号与前相邻“1”相反,而其后面的V码与B码极性相同。
二、MATLAB简介
美国MATHWORK公司于1967年推出了“Matrix Laboratory”(缩写为MATLAB)软件包,不断更新和扩充。它是一种功能强、效率高便于进行科学和工程计算的交互式软件包。其中包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。在新的版本中也加入了对C,FORTRAN,c++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用,非常的方便。
MATLAB的基础是矩阵计算,但是由于他的开放性,并且mathwork也吸收了像maple等软件的优点,使MATLAB成为一个强大的数学软件。
当前流行的MATLAB 6.5/7.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox)。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。
开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。
Matlab的优势和特点:
(1)友好的工作平台和编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
(2)简单易用的程序语言
Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
(3)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如距阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
(4)出色的图形处理功能
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和距阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使他不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(5)应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,他们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(6)实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。
MATLAB的一个重要特色就是他有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
(7)应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5。
三、仿真的系统的模型框图
(1)实验编码原理框图如下所示 :
(2)以下是V码以及B码产生的框图:
(3)V码产生单元的工作流程图
(4)B码产生单元的工作流程图 译码规则: 在接收端,将接收到的HDB3码序列恢复为原输入二进制数字信息序列的过程称为译码。
对HDB3码而言,译码就是找到编码时插入的特殊序列并将它恢复为0000。根据编码原则,HDB3的译码可分为三个步骤:
(1)根据“V”的极性特点,找出特殊序列。由于编码时,每个“V”的极性 都与其前一个“1”码的极性相同,所以,在接收序列中一旦出现连续两个同极性码时,两个同极性码的后一个即为“V”,此“V”与其前的三位码就是一个特殊序列;
(2)将所有的特殊序列都恢复为“0000”;
(3)将正、负脉冲都恢复为“1”码,零电平恢复为“0”码。下图是译码的框图:
四、使用MATLAB编程(m文件)完成系统的仿真
程序源代码
global dt df t f N close all
N=2^13;
%采样点数
L=8;
%每码元的采样点数
M=N/L;
%码元数
Rb=2;Ts=0.5;
%码元宽度是0.5us dt=Ts/L;
df=1/(N*dt);
%MHz RT=0.5;
%占空比 T=N*dt;
%截短
Bs=N*df/2;
%系统带宽
t=[-T/2+dt/2:dt:T/2];
%时域横坐标
f=[-Bs+df/2:df:Bs];
%频域横坐标 figure(1)
set(1,'Position',[10,50,300,200])
%设定窗口位置及大小
figure(2)
set(2,'Position',[350,50,300,200])
%设定窗口位置及大小
EPAMI=zeros(size(f));EPHDB=zeros(size(f));for ii=1:8 ami=zeros(1,M);hdb=zeros(1,M);a=round(rand(1,M));
b=3;
%表示0000之间循环个数
c=-1;
%记载相邻V之间的1元素个数
sign1=-1;
%标志前一个信号
sign2=-1;
%标志前一个信号
for ii=1:M
if a(ii)==1
sign1=0-sign1;ami(ii)=sign1;
end End for ii=1:M
if b==3
%表示非0000
if a(ii)==1
sign2=0-sign2;hdb(ii)=sign2;
if c>=0
%表示不是第一个0000
c=c+1;
%用来计算相邻v之间的非0元素个数
end
elseif ii<=M-3 & a(ii)+a(ii+1)+a(ii+2)+a(ii+3)==0
if mod(c,2)==1
%000V hdb(ii+3)=sign2;
else
%B00V
sign2=0-sign2;hdb(ii)=sign2;
hdb(ii+3)=sign2;
end
c=0;
b=0;
end
elseif b<3
%对0000的循环
b=b+1;
End end
for i=[1:L] ami1(i+[0:M-1]*L)=ami;hdb1(i+[0:M-1]*L)=hdb;end
AMI=T2F*(ami1);
PAMI=AMI.*conj(AMI)/T;HDB=T2F*(hdb1);
PHDB=HDB.*conj(HDB)/T;EPAMI=(EPAMI*(ii-1)+PAMI)/ii;EPHDB=(EPHDB*(ii-1)+PHDB)/ii;figure(1)
aa=30+10*log10(EPAMI+eps);
%加eps以避免除以零
bb=30+10*log10(EPHDB+eps);plot(f,aa,'g');grid
axis([-8,+8,-80,80])xlabel('f(MHz)')
ylabel('AMIPs(f)
(dBm/MHz)')figure(2)plot(f,bb,'b');grid
axis([-8,+8,-80,80])xlabel('f(MHz)')
ylabel('HDBPs(f)
(dBm/MHz)')figure(3)subplot(3,1,1)tt=[1:40];
stem(tt,a(1:40),'g')title('原始RNZ信号')s ubplot(3,1,2)
stem(tt,ami(1:40),'g')title('AMI信号')subplot(3,1,3)
stem(tt,hdb(1:40),'g')title('HDB码')end
%将下面的代码保存在t2f.m文件中
function X=t2f(x)global dt df N t f T
%X=t2f(x)
%x为时域的取样值矢量 %X为x的傅氏变换
%X与x长度相同,并为2的整幂。
%本函数需要一个全局变量dt(时域取样间隔)H=fft(x);
X=[H(N/2+1:N),H(1:N/2)]*dt;end
五、仿真结果
六、结果分析和心得
HDB3(High DensityBinary-3)码的全称是3阶高密度双极性码。它是AMI码的一种改进型,主要是为了克服AMI码中连“0”时所带来的提取定时信息的困难。HDB3编码规则是:先把消息代码中的“1”交替变成“+1”和“-1”,“0”仍然保持“0”不变的AMI码,然后去检查AMI码的连“0”的情况 ,当没有4个和4个以上连“0”串时 ,这样的AMI码就是HDB3码 ;当出现4个和4个以上连“0”串时,则将每4个连“0”的小段的第4个“0”变换成与其前一个非零符号相同极型的符号,并用“+V”和“-V”表示.若此“V”使后面的序列破坏了“极性交替反转” 的原则,则将出现直流分量。故需要保证相邻“V”的符号也是极性相反,所以,当不满足V也极性相反时,将这个连“0” 码无串的等一个“0” 变成“-B”和“+B”。“B”的符号与前一个非“0”码的符号相反,并且让后面的非“0” 码元符号从“V” 码开始再交替变化。
HDB3码译码比较容易,从收到的符号序列中可以容易地找到破坏点V,于是也断定V符号及其前面3 个符号必是连0 符号,从而恢复4个连0码,再将所有的-1变成+1后便得到原消息代码。
下面用例题来进一步说明编码与译码的原理: 例:求序列***000对应的HDB3码。编码译码步骤如下: 找出四连0序列;用特殊序列代替连0序列,第一个特殊序列可任意选择如选择100V。
将“1”和“V”标上极性“+1”或“-1”。输入数据中的“1”和特殊序列中的“1”作为一个整体极性交替,第一个“1”的极性可任意选择如选择“-1”。第一个特殊序列中的“V“与其前第一个“1”的极性相同,后面的“V”依次极性交替。
根据上面步骤列出系列各式以及画图,实现HDB3码的编码。
通过译码原理可知:V码与B码的极性相同,我们可以对这个输出码从后开始译码,自然而然的可以得到原输入的序列,此时,编码与译码就完成了。
另外说明:1.由于第一个特殊序和第一个“1”的极性均可任意选择,所以同一数字信息序列的HDB3可有四种不同的形式。2.当编码的序列足够长时,我们的编码与译码过程中更容易得到规律。
以上的程序便是综合了HDB3的编码译码以及对于其仿真的全部过程,此是经过了本组成员的反复修改最终制作而成,对于HDB3的编译码有了更加深入的了解。
七、参考文献
1.郭文彬,桑林编著,通信原理-基于Matlab的计算机仿真,北京邮电大学出版社,2006 2.曹志刚,钱亚生,现代通信原理,清华大学出版社,2002年
3.郭仕剑等,《MATLAB 7.x数字信号处理》,人民邮电出版社,2006年
4.樊昌信,曹丽娜编著,通信原理学习指导,西安电子科技大学,2003
第四篇:通信原理课程设计报告
通信系统课程设计报告
单边带电台仿真
院(系): 专业年级(班): 学 生: 学 号: 指 导 教 师: 完 成 时 间:
摘 要
这篇文章介绍了使用MATLAB软件编制程序,以实现单边带信号的调制和解调。首先,利用相移法从语音信号的双边带信号得到单边带信号,再编写MATLAB程序,使单边带信号得到调制和调解。分析调制前后的时域和频域波形图,以更加深入理解单边带信号的调制和解调的原理。
关键词:单边带;调制和解调;MATLAB
Single sideband radio simulation
Abstract:
This article introduces the way to modulate and demodulate the single side band with the soft program from MATLAB.First, get the single side band signal from the speech signal`s couple sides band , then wright the MATLAB program to modulate and demodulate the signal.Analyze the pictures ,and understand the theory furtherly.Keywords:single side band , modulation and demodulation , MATLAB
目录
一.设计任务与要求............................................................................................................二.开发环境........................................................................................................................三.电台设计原理及方案................................................3.1发送模块的设计方案.......................................................3.2信道模块的设计方案.......................................................3.3接收模块的设计方案.......................................................四.电台详细设计......................................................4.1对音频输入与调制的仿真...................................................4.2对指定信噪比信道的仿真...................................................4.3话音信号的解调...........................................................4.3.1 载频9.8KHz解调...................................................4.3.2 载频9.9KHz解调...................................................4.3.3 载频10KHz解调....................................................4.4 原信号和解调后的信号对比................................................4.4.1 原信号和解调后信号波形对比........................................4.4.2 原信号和解调后信号频率对比........................................五.设计总结..........................................................参考文献:............................................................附录:...............................................................一.设计任务与要求
一.设计任务与要求
这个仿真以真实的音频信号作为输入,设计一个单边带发信机。将基带信号调制为SSB信号后送入带通型高斯噪声信道,加入给定功率的噪声之后,再送入单边带接收机。单边带接收机将型号解调下来,通过计算机声卡将解调信号播放出来试听效果,从而对信道信噪比与解调音质之间的关系进行主观测试。现设计一个单边带发信机、带通信道和相应的接收机,参数定位如下值。
1.输入信号为一个话音信号,采样率为 8000Hz。话音输入后首先进行预滤波,滤波器是一个频率范围在[300, 3400]Hz的带通滤波器,其目的是将话音频频谱限制在3400Hz以下。单边带调制的载波频率设计为 10kHz,调制输出上边带。要求观测单边带调制前后的信号功率谱。
2.信道是一个带限高斯噪声信道,其通带频率范围是[10000, 13500]Hz。能够根据信噪比 SNR 的要求加入高斯噪声。
3.接收机采用相干解调方式。为了模拟载波频率误差对解调话音音质的影响,相干解调,设本地载波频率分别为为 9.8kHz,9.9kHz,10kHz。解调滤波器设计为 300~3400Hz的带通滤波器。
二.开发环境
操作系统:Microsoft Windows 7 Ultimate(64位)交互工具:键盘/鼠标 开发工具:MATLAB2010a
三.电台设计原理及方案
3.1发送模块的设计方案
有限语音信号可以采用直接用程序读取,当读取一次之后,可以把音频文件保存起来,当用到没有麦克风的电脑时可以备用,发送的语音信号首先进行希尔比特变化,然后用函数可以进行单边带调制,保存单边带语音信号。3.2信道模块的设计方案
单边带电台仿真
读取发送模块保存的语音信号,然后加入高斯白噪声,然后改变信噪比,通常情况下加入的信噪比为20,然后滤波,模拟现实当中的信道传输,并保存得到的语音信号。
3.3接收模块的设计方案
首先读取信道传输过来的语音信号,加入不同频率的载波,然后解调,并观察分析不同载波解调出来的语音信号和原语音信号的区别,分析失真度。
四.电台详细设计
4.1对音频输入与调制的仿真
根据设置的参数,系统中信号最高频率约为 14kHz。为了较好地显示调制波形,系统仿真采样率设为 50kHz,满足取样定理。由于话音信号的采样率为 8000Hz,与系统仿真采样率不等,因此,在进行信号处理之前,必须将话音的采样率提高到 50kHz,用插值函数来做这一任务。
先编写程序将基带音频信号读入,进行[300,3400]Hz的带通滤波,并将信号采样率提高到 50kHz,进行单边带调制之后,将调制输出结果保存为 wav 文件,文件名为 SSB_OUT.wav。
图1 基带信号和SSB的波形、功率谱
分析调制前后的波形频率,可以得到SSB调制只是把原来波形搬移到10KHz位置,并
四.电台详细设计错误!未指定书签。
没有改变原来波形的形状和频率范围,说明调制的效果很好。4.2对指定信噪比信道的仿真
信道是一个带限高斯噪声信道,其带通频率范围是[10000,13500]Hz.,目前输入的信噪比SNR为20。仿真指定信噪比信道计算信噪比为20dB时的信道输出,将结果保存为 Chanel_out.wav 文件。方便以后的实用。
运行结束:计算出的信噪比结果SNR_dB=19.9126
4.3话音信号的解调
4.3.1 载频9.8KHz解调
接收机采用想干解调方式。为了模拟载波频率误差对解调话音音质的影响,社本地载波的频率为9.8KHz,与发信机载波频率相差200Hz。解调滤波器设计为300Hz到3400Hz。
图2 9.8KHz解调后波形和功率谱
解调输出信号被保存为音频文件 SSBDemo_OUT9.8KHz.wav,并由 sound 函数播放。聆听播放解调输出信号的声音可知,在20dB信道信噪比条件下,即使解调本地载波频
四.电台详细设计错误!未指定书签。
图4 9.9KHz解调后波形和功率谱
解调输出信号被保存为音频文件 SSBDemo_OUT9.9KHz.wav,并由 sound 函数播放。聆听播放解调输出信号的声音可知,在20dB信道信噪比条件下,即使解调本地载波频率误差达到 100Hz,声音仍然是清晰可懂的。
四.电台详细设计错误!未指定书签。
图7 10KHz解调后波形和功率谱
解调输出信号被保存为音频文件 SSBDemo_OUT10KHz.wav,并由 sound 函数播放。聆听播放解调输出信号的声音可知,在解调波和载波频率相同,10dB信道信噪比条件下,声音是很清晰的,并且和信噪比为20dB基本没有差别,耳朵几乎分辨不出。4.4 原信号和解调后的信号对比 4.4.1 原信号和解调后信号波形对比
单边带电台仿真
图8 原信号波形与解调后信号波形对比
从波形上来看,三个频率解调出来的音频信号波形整体差别不大,要是要仔细看,在低频部分最后一个频率解调出来的波形效果最好。4.4.2 原信号和解调后信号频率对比
图9 原信号波形与解调后信号频谱对比
从频率上来看,三个频率解调出来的音频信号波形整体差别不大,在细微处还是有差别的,尤其是在高频和低频处,有部分的失真,但是对音频的整体效果影响不大,最后一个借条出来的频谱和原信号的频谱最接近,因此也是最好的解调频率。
五.设计总结
通过这门实验使我学习掌握了许多知识。首先是对matlab有了一个全新的认识,其次是对matlab的更多操作和命令的使用有了更高的掌握,最重要的事对matlab的处理能力有了一个更高的飞跃尤其是对相关函数的使用及相关问题的处理。
就对matlab相关的命令操作而言,通过这次实验的亲身操作和实践,学习掌握了
参考文献:错误!未指定书签。
许多原本不知道的或者不太熟悉的命令。比如说相关m文件的建立,画图用到的标注,配色,坐标控制,同一张图里画几幅不同的图像,相关参数的设置以及相关函数的调用格式等等。就拿建立一个数学方程而言,通过设置不同的参数达到所需要的要求和结果,而且还可以在不同的窗口建立不同的函数而达到相同的效果。而自己对于矩阵及闭环传递函数的建立原本所掌握的知识几乎为零,而通过这次实验使我彻底的掌握了相关的命令操作和处理的方法,在这里我们不仅可以通过建立函数和参数来达到目标效果,而且还可以通过可视化的编程达到更快更方便,更简洁的效果。就拿可视化编程而言原本根本就只是听说而已罢了,从来就没有亲身去尝试过,然而现在自己却可以和容易的通过搭建不同功能木块来实现相关的函数及功能。这些在原本根本就不敢相信,然而通过学习和实验亲身操作这些原本看似不可能的操作在此就变的轻而易举的事了。
通过对同一个模块分析其对应的不同的参数分析图的建立去分析和解释其对应的相关功能和技术指标和性能分析是非常重要的,我们不可能只需要建立相关的模块和功能就说自己掌握了所有的相关知识和技术,真正的技术和知识是怎么去分析和解释相关的技术指标和功能参数才是重中之重。就此而言,我坦诚的说自己所掌握的还是十分的有限的,但是老师给我们介绍的相关方法和技巧还是十分有效果的,如果自己真的想在这方面有什么建树对自己以后的要求还是需要更改的要求的,万不可以就此止步不前,自命不凡,我们还需掌握和了解还有许多许多,我们真正所掌握的只是皮毛,要想取得更大的成绩就得不断的去努力学习和汲取相关的知识和技巧。万不可自以为傲,裹足不前,matlab真的是个非常强大和有用的工具我们真正的能把它学懂学透的话还是需要下非常大的功夫和努力的。
参考文献:
[1]张渭滨,陈方,苏武浔等.Chen-Mobius多路数字通信系统的Matlab仿真[J].系统仿真学报,2007,19(8):1886-1889.DOI:10.3969/j.issn.1004-731X.2007.08.058.[2]刘素心,王汝芳,张广森等.基于Matlab的通信系统的实验仿真设计[J].实验室科学,2008,(3):101-103,105.DOI:10.3969/j.issn.1672-4305.2008.03.043.[3]王峰,丁金林.基于MATLAB/GUI的数字通信系统虚拟实验平台的设计[J].南通职业大学学报,2013,27(1):96-100.DOI:10.3969/j.issn.1008-5327.2013.01.026.[4]陈蕾,姚远程,秦明伟等.自适应抗干扰通信系统中频谱感知技术研究[J].电视技术,2014,38(5):101-104.单边带电台仿真
[5]梅志红,邓文华.基于Matlab与VB集成技术的通信系统仿真软件的开发[J].计算机仿真,2004,21(6):195-199.DOI:10.3969/j.issn.1006-9348.2004.06.056.[6]范伟,翟传润,战兴群等.基于MATLAB的扩频通信系统仿真研究[J].微计算机信息,2006,22(19):242-244.DOI:10.3969/j.issn.1008-0570.2006.19.086.[7]周晓兰,张杰.MATLAB在通信系统仿真中的应用[J].计算机技术与发展,2006,16(9):166-168.DOI:10.3969/j.issn.1673-629X.2006.09.057.[8]解伟俊,胡修林,张蕴玉等.基于MATLAB的仿真通信语音库实现[J].华中理工大学学报,2000,28(2):77-79.DOI:10.3321/j.issn:1671-4512.2000.02.027.附录:
%FileName:ForSSB.m clc;clear all;%功能,采样点数40000,采样率为8000
%jilu = wavrecord(5*8000, 8000, 'double');%wavwrite(jilu, 'GDGvoice8000.wav');[wav, fs] = wavread('GDGvoice8000.wav');%计算声音时间长度
t_end = 1/fs * length(wav);%仿真系统采样时间点 Fs = 50000;t = 1/Fs:1/Fs:t_end;%设计300~3400hz的带通滤波器
[fenzi, fenmu] = butter(3, [300 3400]/(fs/2));%对音频信号进行滤波
wav = filter(fenzi, fenmu, wav);%输出滤波后的声音
wavwrite(wav, 'LVBO_OUT.wav');%利用插值函数将音频的采样率提升为50khz
wav = interp1([1/fs:1/fs:t_end], wav, t, 'spline');%音频信号的希尔伯特变换
wav_hilbert = imag(hilbert(wav));%载波频率 fc = 10000;%单边带调制
附录:错误!未指定书签。
SSB_OUT = wav.*cos(2*pi*fc*t)10000;% 噪声功率谱密度值 W/Hz NO = Power_of_noise/bandwidth;Gause_noise = sqrt(NO*Fs/2).* randn(size(in));% 噪声通道 10~13.5kHz
[num, den] = butter(4, [10000 13500]/(Fs/2));signal_of_filter_out = filter(num, den, in);noise_of_filter_out = filter(num, den, Gause_noise);
单边带电台仿真
SNR_dB = 10*log10(var(signal_of_filter_out)/var(noise_of_filter_out));% 测量得出信噪比 % 信道输出
out = signal_of_filter_out + noise_of_filter_out;SNR_dB
% FileName:Forjietiao 9.8K.m % clear;Fs=50000;% 读入信道输出信号数据
[recvsignal, Fs] = wavread('Chanel_OUT.wav');t =(1/Fs:1/Fs:length(recvsignal)/Fs)';% 本地载波频率
fc_local1 = 10000-200;% fc_local = 10000-100;% fc_local = 10000;% 本地载波
local_carrier1 = cos(2*pi*fc_local1.*t);% 相干解调
xianggan_out1 = recvsignal.*local_carrier1;% 设计 300~3400Hz 的带通滤波器
[fenzi, fenmu] = butter(3, [300 3400]/(Fs/2));demod_out1 = filter(fenzi, fenmu, xianggan_out1);%sound(demod_out1/max(demod_out1), Fs);
wavwrite(demod_out1, Fs, 'SSBDemod_OUT_9.8k.wav');figure(2);subplot(1, 2, 1);plot(5*demod_out1(53550:53750));axis([0 200-0.3 0.3]);title('解调信号波形');xlabel('时间(样值数)');subplot(1, 2, 2);psd(5*demod_out1, 10000, Fs);axis([0 2500-20 10]);title('解调信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)');
%FileName:Forjietiao 9.9K.m %clear;Fs=50000;% 读入信道输出信号数据
[recvsignal, Fs] = wavread('Chanel_OUT.wav');t =(1/Fs:1/Fs:length(recvsignal)/Fs)';% 本地载波频率
%fc_local = 10000-200;fc_local2 = 10000-100;
附录:错误!未指定书签。
%fc_local = 10000;% 本地载波
local_carrier2 = cos(2*pi*fc_local2.*t);% 相干解调
xianggan_out2 = recvsignal.*local_carrier2;% 设计 300~3400Hz 的带通滤波器
[fenzi, fenmu] = butter(3, [300 3400]/(Fs/2));demod_out2 = filter(fenzi, fenmu, xianggan_out2);%sound(demod_out2/max(demod_out2), Fs);
wavwrite(demod_out2, Fs, 'SSBDemod_OUT_9.9k.wav');figure(3);subplot(1, 2, 1);plot(5*demod_out2(53550:53750));axis([0 200-0.3 0.3]);title('解调信号波形');xlabel('时间(样值数)');subplot(1, 2, 2);psd(5*demod_out2, 10000, Fs);axis([0 2500-20 10]);title('解调信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)');
%FileName:Forjietiao 10K.m %clear;Fs=50000;% 读入信道输出信号数据
[recvsignal, Fs] = wavread('Chanel_OUT.wav');t =(1/Fs:1/Fs:length(recvsignal)/Fs)';% 本地载波频率
%fc_local = 10000-200;%fc_local = 10000-100;fc_local3 = 10000;% 本地载波
local_carrier3 = cos(2*pi*fc_local3.*t);% 相干解调
xianggan_out3 = recvsignal.*local_carrier3;% 设计 300~3400Hz 的带通滤波器
[fenzi, fenmu] = butter(3, [300 3400]/(Fs/2));demod_out3 = filter(fenzi, fenmu, xianggan_out3);%sound(demod_out/max(demod_out), Fs);
wavwrite(demod_out3, Fs, 'SSBDemod_OUT_10k.wav');figure(4);subplot(1, 2, 1);plot(5*demod_out3(53550:53750));axis([0 200-0.3 0.3]);title('解调信号波形');xlabel('时间(样值数)');subplot(1, 2, 2);psd(5*demod_out3, 10000, Fs);axis([0 2500-20 10]);title('解调信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)');
单边带电台仿真
%插值函数interp1的用法 hours=1:12;temps=[5 8 9 15 25 29 31 30 22 25 27 24];h=1:0.1:12;t=interp1(hours,temps,h,'spline');%(直接输出将是很多的,spline三次样条插值)plot(hours,temps,'+',h,t,hours,temps,'r');%作图 xlabel('hour'),ylabel('degrees celsius');
%filename:Forduibi.m
%将原来信号的频谱和三次解调出来的频谱结果作对比,并分析结果 figure(5);subplot(2, 2, 1);psd(wav, 10000, Fs);axis([0 2500-20 10]);title('基带信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)');subplot(2, 2, 2);psd(5*demod_out1, 10000, Fs);axis([0 2500-20 10]);title('9.8KHz解调信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)');subplot(2, 2, 3);psd(5*demod_out2, 10000, Fs);axis([0 2500-20 10]);title('9.9KHz解调信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)');subplot(2, 2, 4);psd(5*demod_out3, 10000, Fs);axis([0 2500-20 10]);title('10KHz解调信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)');%将原来信号的波形和三次解调出来的信号波形结果作对比,并分析结果 figure(6);subplot(2, 2, 1);plot(wav(53550:53750));axis([0 200-0.3 0.3]);title('基带信号波形');xlabel('时间(样值数)');subplot(2, 2, 2);plot(5*demod_out1(53550:53750));axis([0 200-0.3 0.3]);title('9.8KHz解调信号波形');xlabel('时间(样值数)');subplot(2, 2, 3);plot(5*demod_out2(53550:53750));axis([0 200-0.3 0.3]);title('9.9KHz解调信号波形');xlabel('时间(样值数)');subplot(2, 2, 4);plot(5*demod_out3(53550:53750));axis([0 200-0.3 0.3]);title('10KHz解调信号波形');xlabel('时间(样值数)');
第五篇:通信原理课程设计报告
目录
一、摘要 „„„„„„„„„„„„„„„„„„„„3
二、课程设计的目的与要求 „„„„„„„„„„„„4(1)课程设计的目的(2)课程设计的要求
三、FM调制解调系统的设计 „„„„„„„„„„„4(1)FM调制模型的建立(2)调制过程的分析
(3)高斯白噪声信道统计特性(4)FM解调模型的建立(5)解调过程的分析
(6)调频系统的抗噪声性能分析
四、系统的仿真实现 „„„„„„„„„„„„„„„14
(1)程序源代码(2)仿真图
五、总结及心得体会 „„„„„„„„„„„„„„„18
六、参考文献 „„„„„„„„„„„„„„„„„„18
七、评分表 „„„„„„„„„„„„„„„„„„„19
一、摘要
我们习惯上用 FM 来指一般的调频广播(76~108MHz,在我国87.5~108MHz、日本为76~90MHz),事实上 FM 也是一种调制方式,即使在短波范围的 27~30MHz 之间,做为业余电台、太空、人造卫星通讯应用的波段,也有采用调频(FM)方式的。FM的频率单位是 MHz(百万赫兹),FM广播的频率较高,能量较大。
频率调制(FM)在电子音乐合成技术中,是最有效的合成技术之一,它最早由美国斯坦福大学约翰.卓宁(JohnChowning)博士提出。20世纪60年代,卓宁在斯坦福大学开始尝试使用不同类型的颤音,他发现当调制信号的频率增加并超过某个点的时候,颤音效果就在调制过的声音里消失了,取而代之的是一个新的更复杂的声音。
今天看来,卓宁当时只是在完成无线电广播发射中最常用的调频技术(也就是FM广播)。但卓宁的偶然发现,却使这种传统的调频技术在声音合成方面有了新的用武之地。当卓宁领悟了FM调制的基本原理后,他立即开始着手研究FM理论合成技术,并在1966年成为使用FM技术制作音乐的第一人。
基本原理
音频信号的改变往往是周期性的,一个最容易理解音频调制技术的范例是小提琴和揉弦,揉弦通过手指和手腕在琴弦上快速颤动,使琴弦的长度发生快速变化,从而最终影响小提琴声音的柔和度。与“FM无线电波”相同,“FM合成理论”同样也有着发音体(载体)和调制体两个元素。发音体或称载波体,是实际发出声音的频率振荡器;调制体或称调制器,负责调整变化载波所产生出来的声音。载波频率、调制体频率以及调制数值大小,是影响FM合成理论的重要因素。
最基本的FMinstrument包括两个正弦曲线振荡器,一个是稳定不变的载波频率fc(CarrierFrequnecy)振荡器;一个是调制频率fm(ModulationFrequency)振荡器。载波频率被加在调制振荡器的输出上。载波振荡器是一个带有fc频率的简单的正弦波频率,当调制器发生时,来自调制振荡器的信号,即带有fm频率的正弦波,驱使载波振荡器的频率向上或向下变动,比如,一个250Hz正弦波的调制波,调制一个1000Hz正弦波的载波,那么意味着载波所产生的1000Hz的频率,每秒要接受250次的影响产生的调制。制体和载波体都是有频率、振幅、波形的周期性或准周期性振荡器。
在频率调制技术中,调制体的振幅同样对频率调制起关关键作用,调制体振幅影响着载波频率调制后变化的深度,假如调制信号的振幅是0,就不会出现任何调制,因此说,就像在振幅调制(AM)中,调制体的频率对载波体的振幅有影响一样,在频率调制(FM)中,载波的频率变化同样受调制体振幅大小变化的影响。
因此,在频率调制过程中,我们可以发现:1.调制体的频率影响载波体的频率的速度变化。2.调制体的振幅影响载波频率的深度变化。3.调制体的波形(或音色)影响载波频率的波形变化。4.载波体的振幅在频率调制过程中保持不变。
二、课程设计的目的与要求
(1)课程设计的目的
通过本课程设计的开展,使学生能够掌握通信原理中模拟信号的调制和解调、数字基带信号的传输、数字信号的调制和解调,模拟信号的抽样、量化和编码与信号的最佳接收等原理。
(2)课程设计的要求
要求能够熟练地用matlab语言编写基本的通信系统的的应用程序,进行模拟调制系统,数字基带信号的传输系统的建模、设计与仿真。
所有的仿真用matlab程序实现(即只能用代码的形式,不能用simulink实现)系统经过的信道都假设为高斯白噪声信道。模拟调制要求用程序画出调制信号,载波,已调信号、解调信号的波形。
三、FM调制解调系统的设计
(1)FM调制模型的建立
图1 调制模型
其中,m(t)为基带调制信号,设调制信号为
m(t)Acos(2fmt)
设正弦载波为
c(t)cos(2fct)
信号传输信道为高斯白噪声信道,其功率为2。
(2)调制过程的分析
所谓频率调制(FM),是指瞬时频率偏移随调制信号m(t)成比例变化,即
d(t)Kfm(t)dt式中,Kf为调频灵敏度(rad)。
(sV)这时相位偏移为
(t)Kfm()d
将之带入 Sm(t)=Acos[ωc+ψ(t)] 则可得到调频信号为
sFM(t)AcosctKfm()d
%*********产生调制信号(已调信号)的M文件************ clear %初始化 close all %****************************************************************** dt=0.001;%设定时间步长 t=0:dt:1;%产生时间向量 am=5;%设定调制信号幅度 fm=5;%设定调制信号频率 mt=am*cos(2*pi*fm*t);%生成调制信号 fc=50;%设定载波频率 ct=cos(2*pi*fc*t);%生成载波 kf=10;%设定调频指数 int_mt(1)=0;for i=1:length(t)-1 int_mt(i+1)=int_mt(i)+mt(i)*dt;end %调制,产生已调信号 sfm=am*cos(2*pi*fc*t+2*pi*kf*int_mt);%****************************************************************** sn=20;%设定信躁比
db=am^2/(2*(10^(sn/10)));%计算对应的高斯白躁声的方差
n=sqrt(db)*randn(size(t));%生成高斯白躁声 nsfm=n+sfm;%生成含高斯白躁声的已调信号(信号通过信道传输)
%****************************************************************** for i=1:length(t)-1 %接受信号通过微
分器处理
diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;end diff_nsfmn = abs(hilbert(diff_nsfm));%hilbert变换,求绝对值得到瞬时幅度(包络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;diff_nsfmn1=diff_nsfmn-zero;
%******************************************************************
disp('按任意键可以看到原调制信号.载波信号和已调信号的时域图')pause
figure(1)
subplot(3,1,1);plot(t,mt);
%绘制调制信号的时图
xlabel('时间t');title('调制信号的时域图');subplot(3,1,2);plot(t,ct);
%绘制载波的时域图
xlabel('时间t');title('载波的时域图');subplot(3,1,3);plot(t,sfm);
%绘制已调信号的时域图
xlabel('时间t');title('已调信号的时域图');5
调制信号的时域图50-500.10.20.30.40.50.6时间t载波的时域图0.70.80.9110-100.10.20.30.50.6时间t已调信号的时域图0.40.70.80.9150-500.10.20.30.40.5时间t0.60.70.80.9
1图2 调制信号、载波、已调信号的时域图
(3)高斯白噪声信道统计特性
在老师的指导下,了解了MATLAB本身自带了标准高斯分布的内部函数randn。randn函数产生的随机序列服从均值为m0,方差21的高斯分布。
因此,利用randn函数可以非常简单快捷地产生出服从高斯分布的随机序列 %**********用于统计高斯白噪声的M文件************* t=1:100000;%时间向量 y=randn(1,100000);%产生高斯白噪声 ymax=max(y);%得到噪声的最大值 ymin=min(y);%得到噪声的最小值 dt=(ymax-ymin)/100;%生成统计区间 count=zeros(1,100);%产生计数矩阵
for i=1:1000 %循环实现对高斯白噪声的统计 for b=0:99999 if y(i)>=ymin+b*dt&y(i)<=ymin+(b+1)*dt count(b+1)=count(b+1)+1;end end
end subplot(2,1,1);plot(t,y);
%绘制高斯白噪声时域图 title('标准高斯分布的噪声信号');subplot(2,1,2);plot(1:length(count),count)%绘制高斯白噪声的统计特征 title('标准高斯分布的噪声信号统计特征');
标准高斯分布的噪声信号50-5012345678910x 104标准高斯分布的噪声信号统计特征***05060708090100图
3高斯白噪声信号及其统计特征
由于课程设计要求中假设了系统经过的信道都假设为高斯白噪声信道。所以可以设正弦波通过加性高斯白噪声信道后的信号为
r(t)Acos(ct)n(t)
其中,白噪声n(t)的取值的概率分布服从高斯分布。故其有用信号功率为
A2S
2噪声功率为
N2
信噪比SN满足公式 B10log10(SN)则可得到公式
A2210
B102
我们可以通过这个公式方便的设置高斯白噪声的方差。
在本课程设计与仿真的过程中,我选择了B=20db和40db两种不同信噪比以示区别,其时域图如图4和图5。
含小信噪比高斯白噪声已调信号的时域图***00-1000-2000-3000-***00500时间t***0图4 含小信噪比高斯白噪声已调信号的时域图
含大信噪比高斯白噪声已调信号的时域图***00-1000-2000-3000-***00500时间t***0
图5 含大信噪比高斯白噪声已调信号的时域图
(4)FM解调模型的建立
图6 调频信号的非相干解调
(5)解调过程的分析
调制信号的解调分为相干解调和非相干解调两种。相干解调仅仅适用于窄带调频信号,且需同步信号,故应用范围受限;而非相干解调不需同步信号,且对于NBFM信号和WBFM信号均适用,因此是FM系统的主要解调方式。在本课程设计与仿真的过程中我们选择用非相干解调方法进行解调。
非相干解调器由限幅器、鉴频器和低通滤波器等组成,其方框图如图6所示。限幅器的作用是消除信道中噪声和其他原因引起的调频波的幅度起伏,带通滤波器(BDF)是让调频信号顺利通过,同时滤除带外噪声及高次谐波分量。微分器的作用是把幅度恒定的调频波SFM(t)变成幅度和频率都随调制信号m(t)变化的调幅调频波Sd(t).具体过程如下:
设输入调频信号为
St(t)SFM(t)Acos(ctKfm()d)
t微分器的作用是把调频信号变成调幅调频波。微分器输出为
dSi(t)dSFM(t)Sd(t)dtdt
cKfm(t)sin(ctKfm()d)t包络检波的作用是从输出信号的幅度变化中检出调制信号。包络检波器输出为
So(t)KdcKmf(t)KdcKdKmf(t)
Kd称为鉴频灵敏度(VHz),是已调信号单位频偏对应的调制信号的幅度,经低通滤波器后加隔直流电容,隔除无用的直流,得
mo(t)KdKfm(t)
%*********微分器通过程序实现************** for i=1:length(t)-1 %接受信号通过微分器处理 diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;end diff_nsfmn = abs(hilbert(diff_nsfm));%hilbert变换,求绝对值得到瞬时幅度(包络检波)
注:针对hilbert变化,在开始的时候我一直不知道怎样去做解调的最后1个步骤,在老师的指导下,查阅了相关资料以后,了解了hilbert变化的性质如下:90度的相移而幅频响应为“1”的一个相应函数在通信中应用很广泛如正交调制(数字)如果我把hilbert变换记为H[]
那么 H[cos(x)]=-sin(x)这就是很基本的hilbert变换 //同样可得H[sin(x)]=cos(x)// 在数字通信时代,hilbert变换也存在数字hilbert变换
简单的说就是在频域上正频率部分作负九十度相移,而负频率作正九十度相移。时域表达式是一个积分形式.通过M文件绘制出两种不同信噪比解调的输出波形如下:
含小信噪比高斯白噪声解调信号的时域图543210-1-2-3-4-500.10.20.30.40.5时间t0.60.70.80.91图7 含小信噪比高斯白噪声解调信号的时域图
含大信噪比高斯白噪声解调信号的时域图43210-1-2-3-4-500.10.20.30.40.5时间t0.60.70.80.91
图8 含大信噪比高斯白噪声解调信号的时域图
(6)调频系统的抗噪声性能分析
如前所述,调频信号的解调有相干解调和非相干解调两种。相干解调仅适用于窄带调频信号,且需同步信号;而非相干解调适用于窄带和宽带调频信号,而且不需同步信号,因而是FM系统的主要解调方式,所以这里仅仅讨论非相干解调系统的抗噪声性能,其分析模型如图9所示。
图9 调频系统抗噪声性能分析模型
图中,n(t)是均值为零,单边功率谱密度为n0的高斯白噪声,经过带通滤波器后变为窄带高斯噪声ni(t)。限幅器是为了消除接收信号在幅度上可能出现的畸变,带通滤波器的作用是抑制信号带宽以外的噪声。先来计算解调器的输入信噪比,设输入调频信号为
SFM(t)Acos(ctKfm()d)
t故其输入信号功率为
A2Si
2输入噪声功率为
NinoBFM
式中:BFM 为调频信号的带宽,即带通滤波器(BDF)带宽。
则输入信噪比为
SiA2 Ni2BFM在输入信噪比足够大的条件下,信号和噪声的相互作用可以忽略,这时可以把信号和噪声分开来算,这里,我们可以得到FM非相干解调器输出端的输出信噪比为
222So3AKfm(t) 3No82nofm上式中,A为载波的振幅,Kf为调频器灵敏度,fm为调制信号m(t)的最高
频率,no为噪声单边功率谱密度。
我们如若考虑m(t)为单一频率余弦波时的情况,可得到解调器的制度增益为
3GFMNom2fSi2nofmNi
考虑在带宽调频时,信号带宽为
2SoA2BFM2(mf1)fm2(ffm)
则可以得到
GFM3m2)f(mf1
在调幅制中,由于信号带宽是固定的,无法进行带宽与信噪比的互换,这也正是在抗噪声性能方面调频系统优于调幅系统的重要原因。由此我们得到如下结论:在大信噪比情况下,调频系统的抗噪声性能将比调幅系统优越,且其优越程度将随传输带宽的增加而提高。
但是,FM系统以带宽换取输出信噪比改善并不是无止境的。随着传输带宽的增加,输出噪声功率增大,在输入信号功率不变的条件下,输入信噪比下降,当输入信噪比降到一定程度时就会出现门限效应,输出信噪比将急剧恶化。
四、系统的仿真实现
(1)程序源代码
clear %初始化 close all %****************************************************************** dt=0.001;%设定时间步长 t=0:dt:1;%产生时间向量 am=5;%设定调制信号幅度 fm=5;%设定调制信号频率 mt=am*cos(2*pi*fm*t);%生成调制信号 fc=50;%设定载波频率 ct=cos(2*pi*fc*t);%生成载波 kf=10;%设定调频指数 int_mt(1)=0;for i=1:length(t)-1 int_mt(i+1)=int_mt(i)+mt(i)*dt;end %调制,产生已调信号 sfm=am*cos(2*pi*fc*t+2*pi*kf*int_mt);%****************************************************************** sn=20;%设定信躁比
db=am^2/(2*(10^(sn/10)));%计算对应的高斯白躁声的方差
n=sqrt(db)*randn(size(t));%生成高斯白躁声 nsfm=n+sfm;%生成含高斯白躁声的已调信号(信号通过信道传输)
%****************************************************************** for i=1:length(t)-1 %接受信号通过微分器处理
diff_nsfm(i)=(nsfm(i+1)-nsfm(i))./dt;end diff_nsfmn = abs(hilbert(diff_nsfm));%hilbert变换,求绝对值得到瞬时幅度(包络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;diff_nsfmn1=diff_nsfmn-zero;%******************************************************************
disp('按任意键可以看到原调制信号.载波信号和已调信号的时域图')pause
figure(1)
subplot(3,1,1);plot(t,mt);
%绘制调制信号的
时图
xlabel('时间t');title('调制信号的时域图');subplot(3,1,2);plot(t,ct);
%绘制载波的时域图
xlabel('时间t');title('载波的时域图');subplot(3,1,3);plot(t,sfm);
%绘制已调信号的时域图
xlabel('时间t');title('已调信号的时域图');
%******************************************************************
disp('按任意键可以看到已调信号和含小信噪比高斯白噪声的已调信号和解调信号的时域图')pause
figure(2)
subplot(3,1,1);plot(t,sfm);
%绘制已调信号的时域图
xlabel('时间t');title('已调信号的时域图');
subplot(3,1,2);plot(1:length(diff_nsfm),diff_nsfm);%绘制含小信噪比高斯白噪声已调信号的时域图 xlabel('时间t');title('含小信噪比高斯白噪声已调信号的时域图');subplot(3,1,3);plot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');xlabel('时间t');%绘制含小信噪比高斯白噪声解调信号的时域图
title('含小信噪比高斯白噪声解调信号的时域图');
%******************************************************************
disp('按任意键可以看到载波信号.已调信号和含大信噪比高斯白噪声的已调信号和解调信号的曲线的时域图')pause
figure(3)
sn1=40;%设定信躁比
db1=am^2/(2*(10^(sn1/10)));%计算对应的高斯白躁声的方差
n1=sqrt(db1)*randn(size(t));%生成高斯白躁声 nsfm1=n1+sfm;%生成含高斯白躁声的已调信号(信号通过信道传输)
%****************************************************************** for i=1:length(t)-1 %接受信号通过微分器处理
diff_nsfm1(i)=(nsfm1(i+1)-nsfm1(i))./dt;end diff_nsfmn1 = abs(hilbert(diff_nsfm1));%hilbert变换,求绝对值得到瞬时幅度(包络检波)
zero=(max(diff_nsfmn)-min(diff_nsfmn))/2;diff_nsfmn1=diff_nsfmn1-zero;%****************************************************************** subplot(4,1,1);plot(t,ct);
%绘制载波的时域图
xlabel('时间t');title('载波的时域图');subplot(4,1,2);plot(t,sfm);
%绘制已调信号的时域图
xlabel('时间t');title('已调信号的时域图');subplot(4,1,3);plot(1:length(diff_nsfm1),diff_nsfm1);%绘制含大信噪比高斯白噪声已调信号的时域图 xlabel('时间t');title('含大信噪比高斯白噪声已调信号的时域图');subplot(4,1,4);plot((1:length(diff_nsfmn1))./1000,diff_nsfmn1./400,'r');xlabel('时间t');%绘制含大信噪比高斯白噪声解调信号的时域图
title('含大信噪比高斯白噪声解调信号的时域图');
(2)仿真图
Figure(1)
调制信号的时域图50-500.10.20.30.40.50.6时间t载波的时域图0.70.80.9110-100.10.20.30.50.6时间t已调信号的时域图0.40.70.80.9150-500.10.20.30.40.5时间t0.60.70.80.91Figure(2)
已调信号的时域图50-5
00.10.50.60.70.8时间t含小信噪比高斯白噪声已调信号的时域图0.20.30.40.9150000-***00800时间t含小信噪比高斯白噪声解调信号的时域图***0100-1000.10.20.30.40.5时间t0.60.70.80.91
Figure(3)
载波的时域图10-100.10.20.30.50.6时间t已调信号的时域图0.40.70.80.9150-500.10.50.60.70.8时间t含大信噪比高斯白噪声已调信号的时域图0.20.30.40.9150000-***00800时间t含大信噪比高斯白噪声解调信号的时域图***0100-1000.10.20.30.40.5时间t0.60.70.80.91
五、总结及心得体会
这次课程设计历时一个星期五天的课程,在整个设计过程中,遇到了很多意想不到的困难,其主要原因是对各个部分要实现的功能考虑不够周全,还好,在老师的帮助,解决了一些我不懂的问题,比如:如何用代码而非函数实现积分过程以及微分过程,如何实现对高斯白噪声的特性进行统计,如何实现包络检波的过程,以及hilbert变换等等问题,最终通过与陈老师积极沟通,以及查阅网上和书本资料把这些问题都一一解决了。通过本次课程设计一定程度上提高了我对MATLAB软件的使用能力,对通信原理这一门课程也有了比较深刻的了解。最后,由于所学知识不够全面,课程设计在很多方面还有待完善,在以后的学习过程中,会掌握更多知识,力求做到更好。
六、参考文献
1、樊昌信等 通信原理(第六版)。北京:国防工业出版社;
2、罗军辉等 MATLAB7.0在数字信号处理中的应用。北京:机械工业出版社;
3、刘卫国等 MATLAB程序设计教程 北京:中国水利水电出版社;
4、达新宇等 通信原理实验与课程设计 北京:邮电大学出版社。