实验一 模拟通信的MATLAB仿真
- 格式:doc
- 大小:1.53 MB
- 文档页数:21
Matlab与通信仿真课程设计报告Matlab与通信仿真课程设计报告班级:12通信(1)班姓名:诸葛媛学号:Xb12680129实验⼀S-函数&锁相环建模仿真⼀、实验⽬的1.了解S函数和锁相环的⼯作原理2.掌握⽤S函数建模过程,锁相环载波提取仿真⼆、实验内容1、⽤S函数编写Similink基本模块(1)信源模块实现⼀个正弦波信号源,要求其幅度、频率和初始相位参数可以由外部设置,并将这个信号源进⾏封装。
(2)信宿和信号显⽰模块实现⼀个⽰波器⽊块,要求能够设定⽰波器显⽰的扫描周期,并⽤这个⽰波器观察(1)的信源模块(3)信号传输模块实现调幅功能,输⼊⽤(1)信源模块,输出⽤(2)信宿模块;基带信号频率1KHz,幅度1V;载波频率10KHz,幅度5V实现⼀个压控正弦振荡器,输⼊电压u(t)的范围为[v1,v2]V,输出正弦波的中⼼频率为f0Hz,正弦波的瞬时频率f随控制电压线性变化,控制灵敏度为kHz/V。
输⼊⽤(1)信源模块,输出⽤(2)信宿模块2、锁相环载波提取的仿真(1)利⽤压控振荡器模块产⽣⼀个受10Hz正弦波控制的,中⼼频率为100Hz,频偏范围为50Hz到150Hz的振荡信号,并⽤⽰波器模块和频谱仪模块观察输出信号的波形和频谱。
(2)构建⼀个抑制载波的双边带调制解调系统。
载波频率为10KHz,被调信号为1KHz正弦波,试⽤平⽅环恢复载波并进⾏解调。
(3)构建⼀个抑制载波的双边带调制解调系统。
载波频率为10KHz,被调信号为1KHz正弦波,试⽤科斯塔斯环恢复载波并进⾏解调。
(4)设参考频率源的频率为100Hz,要求设计并仿真⼀个频率合成器,其输出频率为300Hz。
并说明模型设计上与实例3.26的主要区别三、实验结果分析1、⽤S函数编写Similink基本模块(3)为了使S函数中输⼊信号包含多个,需要将其输⼊变量u初始为制定维数或⾃适应维数,⽽在S函数模块外部采⽤Simulink基本库中的复⽤器(Mux)将3⾏的信号矩阵。
matlab 通信仿真案例Matlab是一种强大的工程仿真软件,可以用于各种领域的仿真案例,包括通信系统。
通信系统仿真是Matlab的一个常见应用领域,可以涉及到数字通信、无线通信、信号处理等方面。
下面我将从多个角度介绍几个通信仿真案例。
数字调制仿真是通信系统仿真的一个重要方面。
在Matlab中,你可以使用数字调制技术来模拟各种调制方案,比如QPSK、16-QAM、OFDM等。
你可以创建一个仿真模型,包括信道模型、噪声模型等,来评估不同调制方案在不同信噪比下的性能。
另一个常见的通信系统仿真案例是无线信道建模。
在Matlab中,你可以使用射线追踪技术或者其他无线信道建模工具,来模拟不同类型的无线信道,比如室内信道、室外信道等。
通过仿真,你可以评估不同信道条件下无线通信系统的性能表现。
此外,Matlab还可以用于设计和仿真滤波器和均衡器。
你可以使用Matlab的信号处理工具箱来设计各种数字滤波器和均衡器,并通过仿真来评估它们在通信系统中的性能。
另一个重要的通信系统仿真案例是误码率性能评估。
在Matlab 中,你可以通过模拟传输过程中的比特错误来评估系统的误码率性能。
你可以使用各种编码和调制技术,以及不同的信道条件,来评估系统在不同情况下的误码率表现。
最后,Matlab还可以用于设计和仿真通信系统中的自适应算法,比如自适应均衡、自适应调制解调等。
通过仿真,你可以评估这些自适应算法在不同信道条件下的性能表现。
总之,Matlab是一个非常强大的工程仿真工具,可以用于各种通信系统的仿真案例,包括数字调制、无线信道建模、滤波器设计、误码率性能评估以及自适应算法设计等。
希望这些信息能够对你有所帮助。
matlab 通信仿真案例
在MATLAB中,通信仿真是一个常见的应用领域,可以用于模拟
和分析数字通信系统的性能。
下面我将从多个角度介绍几个常见的
通信仿真案例。
1. OFDM系统仿真,OFDM(正交频分复用)是一种常见的多载
波调制技术,用于高速数据传输。
你可以使用MATLAB来建立一个基
本的OFDM系统仿真模型,包括信道估计、均衡和解调等模块。
通过
仿真可以分析系统在不同信噪比下的误码率性能,优化系统参数以
及算法设计。
2. 无线通信系统仿真,你可以使用MATLAB建立一个简单的无
线通信系统仿真模型,包括传输信道建模、调制解调、信道编码、
多天线技术等。
通过仿真可以评估系统的覆盖范围、传输速率、抗
干扰能力等性能指标。
3. MIMO系统仿真,MIMO(多输入多输出)技术在无线通信中
得到了广泛应用。
你可以使用MATLAB建立一个MIMO系统仿真模型,包括空间多路复用、信道估计、预编码等。
通过仿真可以分析系统
的信道容量、波束赋形技术对系统性能的影响等。
4. LTE系统仿真,LTE(长期演进)是目前移动通信领域的主流技术之一。
你可以使用MATLAB建立一个LTE系统仿真模型,包括物理层信号处理、上下行链路传输、信道编码解码等。
通过仿真可以评估系统的覆盖范围、传输速率、干扰抑制能力等性能指标。
以上是一些常见的通信仿真案例,通过MATLAB你可以方便地建立仿真模型,分析系统性能,并优化系统设计。
希望这些案例能够帮助到你。
matlab通信仿真实例通信仿真在工程领域中具有广泛的应用,MATLAB作为一种强大的数学建模工具,能够帮助工程师进行通信系统的仿真设计和分析。
在本文中,我们将通过一个具体的MATLAB通信仿真实例来展示如何使用MATLAB进行通信系统的建模和仿真。
首先,我们需要定义一个简单的通信系统,假设我们要设计一个基于QPSK调制的数字通信系统。
我们可以按照以下步骤进行仿真实例的设计:1. 生成随机比特序列:首先我们需要生成一组随机的比特序列作为发送端的输入。
我们可以使用MATLAB的randi函数来生成随机的二进制比特序列。
2. QPSK调制:接下来,我们需要将生成的二进制比特序列进行QPSK调制,将比特序列映射到QPSK星座图上的相应点。
我们可以使用MATLAB的qammod 函数来进行QPSK调制。
3. 添加高斯噪声:在通信信道中,往往会存在各种噪声的干扰,为了模拟通信信道的实际情况,我们需要在信号上添加高斯噪声。
我们可以使用MATLAB的awgn函数来添加高斯噪声。
4. QPSK解调:接收端接收到信号后,需要进行QPSK解调,将接收到的信号映射回比特序列。
我们可以使用MATLAB的qamdemod函数来进行QPSK解调。
5. 比特误码率计算:最后,我们可以计算仿真的比特误码率(BER),用来评估通信系统的性能。
我们可以通过比较发送端和接收端的比特序列来计算比特误码率。
通过以上步骤,我们就可以完成一个基于QPSK调制的数字通信系统的MATLAB仿真实例。
在实际的通信系统设计中,我们可以根据具体的需求和系统参数进行更加复杂的仿真设计,例如考虑信道编码、信道估计等因素,以更加准确地评估通信系统的性能。
MATLAB的强大数学建模和仿真功能,为工程师提供了一个非常有用的工具,可以帮助他们设计和分析各种通信系统。
通过不断的实践和学习,工程师可以更加熟练地运用MATLAB进行通信系统的仿真设计,为通信系统的性能优化提供有力的支持。
2012级移动通信仿真实验——1234567 通信S班一、实验目的:(1)通过利用matlab语言编程学会解决移动通信中基本理论知识的实验分析和验证方法;(2)巩固和加深对移动通信基本理论知识的理解,增强分析问题、查阅资料、创新等各方面能力。
二、实验要求:(1)熟练掌握本实验涉及到的相关知识和相关概念,做到原理清晰,明了;(2)仿真程序设计合理、能够正确运行;(3)按照要求撰写实验报告(基本原理、仿真设计、仿真代码(m文件)、仿真图形、结果分析和实验心得)三、实验内容:1、分集技术在Rayleigh衰落信道下的误码率分析内容要求:1)给出不同调制方式(BPSK/MPSK/QPSK/MQAM任选3种,M=4/8/16)在AWGN和Rayleigh衰落环境下的误码率性能比较,分析这些调制方式的优缺点;2)给出Rayleigh衰落信道下BPSK在不同合并方式(MRC/SC/EGC)和不同路径(1/2/3)时的性能比较,分析合并方式的优缺点;3)给出BPSK在AWGN和Rayleigh衰落信道下1条径和2条径MRC合并时理论值和蒙特卡洛仿真的比较。
3、直接扩频技术在Rayleigh衰落信道下的误码率分析内容要求:1)m-序列、Gold序列和正交Gold序列在AWGN信道下的QPSK误码率分析;2)m-序列、Gold序列和正交Gold序列在Rayleigh信道下的QPSK误码率分析;3)m-序列在AWGN和Rayleigh信道下的QPSK误码率分析;4)m-序列Rayleigh信道下不同调制方式MQAM(M=4/8/16)时的误码率分析。
四、实验数据1、基于MATLAB中的BPSK误码性能研究BPSK(Binary Phase Shift Keying )即双相频移键控,是把模拟信号转换成数据值的转换方式之一。
利用偏离相位的复数波浪组合来表现信息键控移相方式的一种。
本实验将简要介绍BPSK调制方式的特点,调制解调方法,以及在Matlab中在AWGN信道中的误码性能。
MATLAB仿真实例通信原理是指传输信息的原理和方法。
MATLAB可以用于实现各种通信原理的仿真,包括信号的调制、发送、接收、解调等过程。
下面我将介绍一个基于MATLAB的通信原理仿真实例。
本实例以频率调制通信原理为基础,以调频调制(FM)为例进行仿真。
1.首先定义模拟信号源,生成一个基带信号。
例如,我们可以选择一个正弦波信号作为基带信号,其频率为$f_m$。
2.接下来,我们需要将基带信号进行调频调制。
在调频调制过程中,我们将基带信号的频率进行调制,生成载频为$f_c$的调制信号。
3. 在MATLAB中,我们可以使用freqmod函数来进行调频调制。
该函数接受基带信号、载频和调制指数作为输入参数,并返回调制信号。
4.在得到调制信号后,我们可以进行发送模拟。
发送模拟是指将调制信号通过信道传输,可以简单地将信号存储为一个信道矩阵。
5. 在接收端,我们需要对接收到的信号进行解调,以恢复基带信号。
在调频调制中,我们可以使用freqdemod函数进行解调。
该函数接受解调信号、载频和调制指数作为输入参数,并返回解调后的信号。
6.最后,我们可以将解调信号与原始信号进行比较,计算它们之间的误差。
可以使用均方根误差(RMSE)作为误差度量指标。
通过以上过程,我们可以完成一个简单的基于MATLAB的调频调制仿真。
为了使仿真更贴近实际通信场景,我们还可以添加信道噪声等因素。
例如,我们可以在发送模拟过程中,向信道矩阵中添加高斯白噪声。
这样可以更真实地模拟信号在传输过程中受到干扰和噪声的情况。
通过以上步骤,我们可以利用MATLAB进行通信原理的仿真实践。
这个实例不仅可以帮助我们加深理解通信原理的基本概念和过程,还可以通过实际操作和仿真结果进行验证和验证。
总之,MATLAB是一个非常强大的工具,可以用于各种通信原理的仿真。
通过利用MATLAB进行仿真实践,我们可以更深入地理解通信原理的基本原理和过程,提高我们的理论水平和实践能力。
Matlab通信系统仿真实验实验一熟悉基本的Matlab仿真环境一、实验目的1、熟悉Matlab仿真环境,编制简单的matlab程序,熟悉基本的调试技巧等。
认为学生已经掌握Matlab的基本语法和基本操作。
2、熟悉基本的Matlab中通信仿真工具,相关的函数和命令等的基本使用,包括基本的通信模块相关命令函数,plot相关的命令函数3、计算机通信仿真的基本的技术和方法二、知识要点1、Matlab概述Matlab是由美国的MathWorks公司推出的一种科学计算和工程仿真软件。
Matlab将高性能的科学计算、结果可视化和编程集中在一个易于操作的环境中,提供了大量的内置函数,具有强大的矩阵计算和绘图功能,适用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作。
目前,在世界范围内被科研工作者、工程技术人员和院校师生广泛采用。
2、Matlab中的通信仿真工具实现基本的Matlab通信仿真,有两种基本的途径:第一种,用matlab的基本运算和操作实现基本的通信功能模块,当然前提是对这些基本的通信功能模块的概念和原理非常的清晰。
另一种途径是,利用Matlab中提供的专业通信工具箱中的函数实现。
前提是对这些函数功能非常明确,并熟悉其使用的算法和调用的方法,尤其是参数的理解和设置。
Matlab工具箱中包括100多个Matalb函数可用于通信算法的开发、系统分析及设计。
通信工具箱能完成如下任务:1)信源编码及量化2)高斯白噪声信道模型3)差错控制编码4)调制和解调5)发送和接收滤波器6)基带和调制信道模型7)同步,包括模拟和数字锁相环8)多址接入,包括CDMA,FDMA,TDMA.9)分析结果和比较系统误码率的图形用户界面10)用于通信信号可视化图形分析和绘制,包括眼图,星座表等。
11)新增的信道可视化工具用于进行时变信道的可视化和开发。
3、Matlab中的绘图功能Matlab为用户提供了结果可视化功能,只要在命令窗口输入相应的命令,结果就会用图形直接表示出来。
实验一 模拟通信的MATLAB 仿真姓名:左立刚 学号:031040522简要说明:实验报告注意包括AM ,DSB ,SSB ,VSB ,FM 五种调制与解调方式的实验原理,程序流程图,程序运行波形图,simulink 仿真模型及波形,心得体会,最后在附录中给出了m 语言的源程序代码。
一.实验原理1.幅度调制(AM )幅度调制(AM )是指用调制信号去控制高频载波的幅度,使其随调制信号呈线性变化的过程。
AM 信号的数学模型如图3-1所示。
图2-1 AM 信号的数学模型为了分析问题的方便,令δ=0,1.1 AM 信号的时域和频域表达式()t S AM=[A 0+m ()t ]cos t cω (2-1)()t S AM =A 0π[()()ωωωωδC C ++-]+()()[]ωωωωc c M M ++-21(2-2)AM 信号的带宽2=BAMfH(2-3)式中,fH为调制信号的最高频率。
2.1.3 AM 信号的功率P AM 与调制效率ηAMP AM=()2222t m A +=PP mc + (2-4)式中,P C=2A为不携带信息的载波功率;()22t m P m=为携带信息的边带功率。
()()t t m A m PP AMCAM222+==η(2-5) AM 调制的优点是可用包络检波法解调,不需要本地同步载波信号,设备简单。
AM 调制的最大缺点是调制效率低。
2.2、双边带调制(DSB )如果将在AM 信号中载波抑制,只需在图3-1中将直流 A 0去掉,即可输出抑制载波双边带信号。
2.2.1 DSB 信号的时域和频域表达式()()t t m t cDSB S ωcos= (2-6)()()()[]ωωωωωC C DSBM M S ++-=21 (2-7) DSB 信号的带宽fB BHAM DSB2== (2-8)DSB 信号的功率及调制效率由于不再包含载波成分,因此,DSB 信号的功率就等于边带功率,是调制信号功率的一半,即()()t t m PS P CDSB DSB 2221=== (2-9) 显然,DSB 信号的调制效率为100%。
matlab通信仿真实例在Matlab中进行通信系统的仿真,可以涉及到多种不同的通信技术和协议,包括调制解调、信道编码、多址接入等。
以下以OFDM系统为例,介绍Matlab 中通信仿真的实例。
OFDM(正交频分复用)是一种常用于现代通信系统中的技术,它将高速数据流分割成多个较低速的子流,并将每个子流分配到不同的子载波上。
优点是能够抵抗多径效应和频率选择性衰落,并提供高数据速率。
首先,我们需要创建一个包含OFDM系统参数的结构体。
例如:ofdmParam.M = 16; % 子载波数量ofdmParam.K = 4; % 用于混合多路复用的用户数量ofdmParam.N = ofdmParam.M * ofdmParam.K; % 总子载波数量ofdmParam.CP = 16; % 循环前缀长度接下来,我们可以生成用于OFDM仿真的数据流。
例如,我们可以使用随机整数生成器生成一系列整数,并将其转换为复数形式的调制符号:data = randi([0, ofdmParam.M-1], 1, ofdmParam.N);dataMod = qammod(data, ofdmParam.M);然后,我们可以创建一个包含OFDM信号的函数。
在OFDM系统中,生成的数据符号将分配到不同的子载波上,然后在时域中通过插入循环前缀进行叠加:function[ofdmSignal] = createOFDMSignal(dataMod, ofdmParam) ofdmSignal = [];for k = 0:ofdmParam.K-1% 提取相应的数据符号,并进行IFFTofdmData =ifft(dataMod(k*ofdmParam.M+1:(k+1)*ofdmParam.M));% 添加循环前缀ofdmDataWithCP = [ofdmData(end-ofdmParam.CP+1:end), ofdmData];% 将OFDM符号添加到OFDM信号中ofdmSignal = [ofdmSignal, ofdmDataWithCP];endend将OFDM信号传输到信道中,我们可以使用加性高斯白噪声(AWGN)信道模型来模拟实际通信环境:EbNo = 10; % 信噪比snr =10*log10(ofdmParam.N*ofdmParam.M/(ofdmParam.N*ofdmParam.M+1 )*(10^(EbNo/10)));ofdmSignalNoisy = awgn(ofdmSignal, snr, 'measured');最后,我们可以对接收到的OFDM信号进行解调和信号恢复。
MATLAB通信系统仿真实验报告实验一、MATLAB的基本使用与数学运算目的:学习MATLAB的基本操作,实现简单的数学运算程序。
内容:1-1 要求在闭区间[0,2π]上产生具有10个等间距采样点的一维数组。
试用两种不同的指令实现。
运行代码:x=[0:2*pi/9:2*pi]运行结果:1-2 用M文件建立大矩阵xx=[ 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.91.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.92.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.93.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9]代码:x=[ 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.91.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.92.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.93.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9]m_mat运行结果:1-3已知A=[5,6;7,8],B=[9,10;11,12],试用MATLAB分别计算A+B,A*B,A.*B,A^3,A.^3,A/B,A\B.代码:A=[5 6;7 8] B=[9 10;11 12] x1=A+B X2=A-B X3=A*B X4=A.*B X5=A^3 X6=A.^3 X7=A/B X8=A\B运行结果:1-4任意建立矩阵A,然后找出在[10,20]区间的元素位置。
程序代码及运行结果:代码:A=[12 52 22 14 17;11 10 24 03 0;55 23 15 86 5 ] c=A>=10&A<=20运行结果:1-5 总结:实验过程中,因为对软件太过生疏遇到了些许困难,不过最后通过查书与同学交流都解决了。
例如第二题中,将文件保存在了D盘,而导致频频出错,最后发现必须保存在MATLAB文件之下才可以。
实验一 模拟通信的MATLAB 仿真姓名:左立刚 学号:031040522简要说明:实验报告注意包括AM ,DSB ,SSB ,VSB ,FM 五种调制与解调方式的实验原理,程序流程图,程序运行波形图,simulink 仿真模型及波形,心得体会,最后在附录中给出了m 语言的源程序代码。
一.实验原理1.幅度调制(AM )幅度调制(AM )是指用调制信号去控制高频载波的幅度,使其随调制信号呈线性变化的过程。
AM 信号的数学模型如图3-1所示。
图2-1 AM 信号的数学模型为了分析问题的方便,令δ=0,1.1 AM 信号的时域和频域表达式()t S AM=[A 0+m ()t ]cos t cω (2-1)()t S AM =A 0π[()()ωωωωδC C ++-]+()()[]ωωωωc c M M ++-21(2-2)AM 信号的带宽2=BAMfH(2-3)式中,fH为调制信号的最高频率。
2.1.3 AM 信号的功率P AM 与调制效率ηAMP AM=()2222t m A +=PP mc + (2-4)式中,P C=2A为不携带信息的载波功率;()22t m P m=为携带信息的边带功率。
()()t t m A m PP AMCAM222+==η(2-5) AM 调制的优点是可用包络检波法解调,不需要本地同步载波信号,设备简单。
AM 调制的最大缺点是调制效率低。
2.2、双边带调制(DSB )如果将在AM 信号中载波抑制,只需在图3-1中将直流 A 0去掉,即可输出抑制载波双边带信号。
2.2.1 DSB 信号的时域和频域表达式()()t t m t cDSB S ωcos= (2-6)()()()[]ωωωωωC C DSBM M S ++-=21 (2-7) DSB 信号的带宽fB BHAM DSB2== (2-8)DSB 信号的功率及调制效率由于不再包含载波成分,因此,DSB 信号的功率就等于边带功率,是调制信号功率的一半,即()()t t m PS P CDSB DSB 2221=== (2-9) 显然,DSB 信号的调制效率为100%。
2.3、单边带调制(SSB )产生SSB 信号最基本的方法有滤波法和相移法。
2.3.1 SSB 信号的时域表达式()()()t t mt t m t c c SSB S ωωsin ˆ21cos 21μ= (2-10) 式中,“-”表示上边带信号,“+”表示下边带信号;()t mˆ是()t m 的希尔伯特变换。
2.3.2 SSB 信号的带宽、功率和调制效率fB B HDSBSSB ==21(2-11)由于SSB 信号仅包含一个边带,因此其功率为DSB 信号的一半,即()t mP P DSB SSB 24121==(2-12) 显然,SSB 信号的调制效率也为100%。
2.4、残留边带调制(VSB )单边带传输信号具有节约一半频谱和节省功率的优点。
但是付出的代价是设备制作非常困难。
为了解决这个问题,可以采用残留边带调制(VSB )。
VSB是介于SSB 和DSB 之间的一个折中方案。
在这种调制中,一个边带绝大部分顺利通过,而另一个边带残留一小部分。
如何选择残留边带滤波器的滤波特性使残留边带信号解调后不产生失真呢?为了在接收端不失真地恢复原基带信号,要求残留边带滤波器传输特性必须满足下述条件()()常数=-++ωωωωCVSBCVSBH HωωH ≤ (2-13)式中,ωH是基带信号的最高截止角频率。
2.5频率调制(FM)2.5.1 FM 解调模型的建立:调制信号的解调分为相干解调和非相干解调两种。
相干解调仅仅适用于窄带调频信号,且需同步信号,故应用范围受限;而非相干解调不需同步信号,且对于NBFM 信号和WBFM 信号均适用,因此是FM 系统的主要解调方式。
在本仿真的过程中我们选择用非相干解调方法进行解调。
非相干解调器由限幅器、鉴频器和低通滤波器等组成,其方框图如图5所示。
限幅器输入为已调频信号和噪声,限幅器是为了消除接收信号在幅度上可能出现的畸变;带通滤波器的作用是用来限制带外噪声,使调频信号顺利通过。
鉴频器中的微分器把调频信号变成调幅调频波,然后由包络检波器检出包络,最后通过低通滤波器取出调制信号。
2.5.2 解调过程分析:设输入调频信号为()()cos(())tt FM c f S t S t A t K m d ωττ-∞==+⎰微分器的作用是把调频信号变成调幅调频波。
微分器输出为[]()()()()sin(())i FM d tc f c f dS t dS t S t dt dtK m t t K m d ωωττ+-∞===-+⎰包络检波的作用是从输出信号的幅度变化中检出调制信号。
包络检波器输出为[]()()()o d c f d c d f S t K Km t K K Km t ωω++==d K 称为鉴频灵敏度(V Hz ),是已调信号单位频偏对应的调制信号的幅度,经低通滤波器后加隔直流电容,隔除无用的直流,得()()o d f m t K K m t =2.5.3 高斯白噪声信道特性设正弦波通过加性高斯白噪声信道后的信号为()cos()()c r t A t n t ωθ=++其中,白噪声()n t 的取值的概率分布服从高斯分布。
MATLAB 本身自带了标准高斯分布的内部函数randn 。
randn 函数产生的随机序列服从均值为0m =,方差21σ=的高斯分布。
正弦波通过加性高斯白噪声信道后的信号为()cos()()c r t A t n t ωθ=++故其有用信号功率为22A S =噪声功率为2N σ=信噪比S N 满足公式1010log ()S B N=则可得到公式2210210B A σ=•我们可以通过这个公式方便的设置高斯白噪声的方差。
二.程序流程图(利用microsoft office visio 2003画出的)2.1 AM 程序流程图2.2 DSB 程序流程图2.3 SSB 程序流程图2.4 VSB 程序流程图开始VSB 信号傅里叶变换FFT VSB 信号功率谱高斯窄带噪声VSB 解调信号低通滤波LPF 相乘本地载波cos(wc*t)调制信号f(t)+相乘本地载波cos(wc*t)残留边带滤波器2.5 FM 程序流程图开始FM 信号带通滤波器BPF微分低通滤波LPF相乘c(t)=-sin(wc*t)调制信号f(t)积分器本地载波cos(wc*t)相乘-90移相-+FM 解调信号当然,这些程序流程图也可以利用word 自带画图工具作出,个人认为用visio 画流程图操作方便一些。
三.程序运行结果图(代码略)图3.1 AM 波形图图3.2 DSB波形图图3.3 SSB波形图图3.4 VSB波形图图3.5 VSB相干解调图图3.6 FM波形图四.Simulink仿真模型及波形4.1各模型图图4.1 上面是AM模型,下面是DSB模型图4.2 上面是SSB模型,下面是VSB模型图4.3 FM模型4.2各波形图图4.4 AM波形图图4.5 DSB波形图图4.6 SSB波形图图4.7 VSB波形图图4.8 FM波形图五.心得体会1.“实践是检验真理的唯一标准”。
对于实验课,毫无疑问是建立在一定理论基础之上的,正确的理论对实验起积极的指导作用,反过来,实验又可以验证理论的正确性,而进一步丰富、发展与完善理论。
所以,在做实验之前,必须理解与掌握相关的理论知识,做实验之时,不至于“盲人摸象”;2.在编辑m语言程序代码时,严谨仔细当然是必备的素质,例如大小写,逗号与分号。
初始化输出数据后,就进行常规调幅(AM)的程序编写,通过观察DSB,SSB,VSB,FM等程序模块时,发现有大量相似之处,这时没有不要一个一个代码敲击,后续适当修改参数即可;3.在编写与调用子程序时,特别注意:子程序和主程序一定要在用一个文件夹中,以便正确调用;另外,子程序所在路径的名字一定要和调用子程序的名字一样,包括大小写;4.这次试验又学会基本m语言的调试方法,利用cell分别执行每个模块;利用Debug或设置断点,单步执行,进行查错。
另外又了解一个在simulink中专门进行通信仿真的工具:communication block。
5.最重要的是,理解并掌握了AM,DSB,SSB,VSB,FM等的调制与解调的基本方法。
附录源程序:%Signal generationclcdt=0.001;fmax=1;fc=10;T=5;N=T/dt;t=[0:N-1]*dt;Al=sqrt(2);ft=Al*cos(2*pi*fmax*t);N0=0.1;%%%AM调制A=2;s_am=(A+ft).*cos(2*pi*fc*t);BAM=2*fmax;noise=GaussNB(fc,BAM,N0,t);figure(1);subplot(311);plot(t,s_am);hold on;plot(t,A+ft,'r--');title('无噪声叠加AM调制信号及其包络');xlabel('t');s_am_n=s_am+noise;hold on;plot(t,s_am_n,'r');%%%功率谱密度[f,Xf]=FFT_SHIFT(t,s_am_n);[fn,Xfn]=FFT_SHIFT(t,s_am_n);PSD=(abs(Xf).^2)/T;PSDn=(abs(Xfn).^2)/T;subplot(312);plot(f,PSD);axis([-2*fc 2*fc 0 1.5*max(PSD)]);title('AM信号功率谱');xlabel('f');hold on;plot(f,PSDn,'r');%%%AM相干解调id_amt=s_am_n.*cos(2*pi*fc*t);id_amt=id_amt-mean(id_amt);[f,AMf]=FFT_SHIFT(t,id_amt);[t,id_amt]=RECT_LPF(f,AMf,BAM);title('AM信号');xlabel('t');subplot(313);plot(t,id_amt);hold on;plot(t,ft/2,'r--');title('AM解调信号');xlabel('t');%%%DSB调制s_dsb=ft.*cos(2*pi*fc*t);BDSB=2*fmax;noise=GaussNB(fc,BDSB,N0,t); %高斯窄带噪声figure(2);subplot(311);plot(t,s_dsb);hold on; %画出DSB信号波形plot(t,s_dsb,'r--');%标示DSB的包络title('无噪声叠加DSB信号');xlabel('t');s_dsb_n=s_dsb+noise;%噪声叠加hold on;plot(t,s_dsb_n,'r-');%%%功率频谱密度[f,Xf]=FFT_SHIFT(t,s_dsb);%已调信号频谱[fn,Xfn]=FFT_SHIFT(t,s_dsb_n);%带噪声已调信号频谱PSD=(abs(Xf).^2)/T;%调制信号功率密度函数PSDn=(abs(Xfn).^2)/T;subplot(312);plot(f,PSD);axis([-2*fc 2*fc 0 1.5*max(PSD)]);title('DSB信号功率谱');xlabel('f');hold on;plot(f,PSDn,'r');%%%DSB相干解调id_dsbt=s_dsb_n.*cos(2*pi*fc*t); %本地相乘器id_dsbt=id_dsbt-mean(id_dsbt); %[f,DSBf]=FFT_SHIFT(t,id_dsbt);[t,id_dsbt]=RECT_LPF(f,DSBf,BDSB);%低通滤波title('DSB信号');xlabel('t');subplot(313);plot(t,id_dsbt);hold on;plot(t,ft/2,'r--');title('DSB解调信号');xlabel('t');%%%SSB调制BSSB=fmax;s_ssb=real(hilbert(ft).*exp(j*2*pi*fc*t)); noise=GaussNB(fc,BSSB/2,N0,t);figure(3)subplot(311)plot(t,s_ssb);title('ssb信号');xlabel('t'); s_ssb_n=s_ssb+noise;hold on;plot(t,s_ssb_n,'r--');%%%功率谱密度[f,Xf]=FFT_SHIFT(t,s_ssb);[fn,Xfn]=FFT_SHIFT(t,s_ssb_n);PSD=(abs(Xf).^2)/T;PSDn=(abs(Xfn).^2)/T;subplot(312);plot(f,PSD);axis([-2*fc 2*fc 0 1.5*max(PSD)]);title('ssb信号功率谱');xlabel('f');hold on;plot(f,PSDn,'r');%%%SSB解调id_ssbt=s_ssb_n.*cos(2*pi*fc*t);id_ssbt=id_ssbt-mean(id_ssbt);[f,SSBf]=FFT_SHIFT(t,id_ssbt);[t,ids_mt]=RECT_LPF(f,SSBf,2*fmax);subplot(313);plot(t,ids_mt);hold on;plot(t,ft/2,'r--');xlabel('t');%%%VSB调制vsb=ft.*cos(2*pi*fc*t);BVSB=1.2*fmax;[f,vsbf]=FFT_SHIFT(t,vsb);[t,s_vsb]=vsbmd(f,vsbf,0.2*fmax,1.2*fmax,fc);noise=GaussNB(fc,BVSB,N0,t);figure(4)subplot(221)plot(t,s_vsb);title('VSB信号');xlabel('t');s_vsb_n=s_vsb+noise;subplot(222)plot(t,s_vsb_n,'r--');title('带噪声的VSB信号');xlabel('t');%%%功率谱密度[f,sf]=FFT_SHIFT(t,s_vsb);PSD=(abs(sf).^2)/T;subplot(223);plot(f,PSD);axis([-2*fc 2*fc 0 1.5*max(PSD)]);title('VSB信号功率谱');xlabel('f');subplot(224);[f,sfn]=FFT_SHIFT(t,s_vsb_n);PSDn=(abs(sfn).^2)/T;hold on;plot(f,PSDn,'r');axis([-2*fc 2*fc 0 1.5*max(PSDn)]);title('带噪声的功率谱');%%%VSB解调vsbd=s_vsb_n.*cos(2*pi*fc*t);vsbd=vsbd-mean(vsbd);[f,VSBf]=FFT_SHIFT(t,vsbd);[t,vsb_t]=RECT_LPF(f,VSBf,2*fmax);figure(5);plot(t,vsb_t);title('VSB相干解调');hold on;plot(t,-ft/2,'r');%%%%FM解调和调制Kf=5;%FM调制mti=1/2/pi/fmax*sin(2*pi*fmax*t); %ft积分函数FMt=A*cos(2*pi*fc+2*pi*Kf*mti);figure(6);subplot(311);plot(t,FMt);hold on;plot(t,ft,'r--');xlabel('t');ylabel('FM信号');subplot(312);[f,sf]=FFT_SHIFT(t,FMt);plot(f,abs(sf));axis([-25 25 0 3]);xlabel('f');ylabel('调频信号幅度谱');%%%FM解调(鉴频器)N=length(FMt);dFMt=zeros(1,N);for k=1:N-1;dFMt(k)=(dFMt(k+1)-dFMt(k))/dt;endenvlp=A*2*pi*Kf*ft+A*2*pi*fc;subplot(313);plot(t,dFMt);hold on;plot(t,envlp,'r--');xlabel('t');ylabel('调频信号微分后包络');[t,st]=IFFT_SHIFT(f,Sf)df=f(2)-f(1);fmax=(f(end)-f(1)+df);dt=1/fmax;N=length(f);t=[0:N-1]*dt;Sf=fftshift(Sf);st=fmax*ifft(Sf);st=real(st);[t,st]=vsbmd(f,sf,B1,B2,fc)df=f(2)-f(1);T=1/df;hf=zeros(1,length(f));bf1=[floor((fc-B1)/df):floor((fc+B1)/df)];bf2=[floor((fc+B1)/df)+1:floor((fc+B2)/df)]; f1=bf1+floor(length(f)/2);f2=bf2+floor(length(f)/2);stepf=1/length(f1);hf(f1)=0:stepf:1-stepf;fh(f2)=1;f3=-bf1+floor(length(f)/2);f4=-bf2+floor(length(f)/2);hf(f3)=0:stemf:1-stemf;fh(f4)=1;yf=hf.*sf;[t,st]=IFFT_SHIFT(f,yf);st=real(st);[out]=GaussNB(fc,B,N0,t)dt=t(2)-t(1);Fmax=1/dt;N=length(t);p=N0*Fmax;rn=sqrt(p)*randn(1,N);[f,rf]=FFT_SHIFT(t,rn);[t,out]=BPF(f,rf,fc-B/2,fc+B/2);[f,sf]=FFT_SHIFT(t,st)dt=t(2)-t(1);T=t(end);df=1/T;N=length(t);f=[-N/2:N/2-1]*df;湖北民族学院—信息工程学院-通信原理实验报告sf=fft(st);sf=T/N*fftshift(sf);[t,out]=BPF(f,Sf,fc,B)df=f(2)-f(1);N=length(f);NC=flooor(N/2);Nfc=floor(fc/df);NB2=floor(B/df/2);bpfH=zeros(1,N);N1=[NC-Nfc+[-NB2:NB2],NC+Nfc+[-NB2:NB2]];bpfH(N1)=1;yF=BPFh.*Sf;[t,out]=IFFT_SHIFT(f,Yf);[t,st]=RECT_LPF(f,Sf,B)df=f(2)-f(1);fN=length(f);RectH=zeros(1,fN);BN=floor(B/df);BN_SHIFT=[-BN:BN-1]+floor(fN/2);RectH(BN_SHIFT)=1;Yf=RectH.*Sf;[t,st]=IFFT_SHIFT(f,Yf);21。