通信原理实验报告(二) 含matlab程序
通信原理实验报告2

通信原理实验报告课程名称:通信原理实验三:二进制数字信号调制仿真实验实验四:模拟信号数字传输仿真实验姓名:学号:班级:2012年12 月实验三二进制数字信号调制仿真实验一、实验目的1.加深对数字调制的原理与实现方法;2.掌握OOK、2FSK、2PSK功率谱密度函数的求法;3.掌握OOK、2FSK、2PSK功率谱密度函数的特点及其比较;4.进一步掌握MATLAB中M文件的调试、子函数的定义和调用方法。
二、实验内容1. 复习二进制数字信号幅度调制的原理2. 编写MATLAB程序实现OOK调制;3. 编写MATLAB程序实现2FSK调制;4. 编写MATLAB程序实现2PSK调制;5. 编写MATLAB程序实现数字调制信号功率谱函数的求解。
三、实验原理在数字通信系统中,需要将输入的数字序列映射为信号波形在信道中传输,此时信源输出数字序列,经过信号映射后成为适于信道传输的数字调制信号。
数字序列中每个数字产生的时间间隔称为码元间隔,单位时间内产生的符号数称为符号速率,它反映了数字符号产生的快慢程度。
由于数字符号是按码元间隔不断产生的,经过将数字符号一一映射为响应的信号波形后,就形成了数字调制信号。
根据映射后信号的频谱特性,可以分为基带信号和频带信号。
通常基带信号指信号的频谱为低通型,而频带信号的频谱为带通型。
调制信号为二进制数字基带信号时,对应的调制称为二进制调制。
在二进制数字调制中,载波的幅度、频率和相位只有两种变化状态。
相应的调制方式有二进制振幅键控(OOK/2ASK)、二进制频移键控(2FSK)和二进制相移键控(2PSK)。
下面分别介绍以上三种调制方法的原理,及其MATLAB实现:本实验研究的基带信号是二进制数字信号,所以应该首先设计MATLAB程序生成二进制数字序列。
根据实验一的实践和第一部分的介绍,可以很容易的得到二进制数字序列生成的MATLAB程序。
假定要设计程序产生一组长度为500的二进制单极性不归零信号,以之作为后续调制的信源,并求出它的功率谱密度,以方便后面对已调信号频域特性和基带信号频域特性的比较。
通信原理matlab实验

在无码间串扰和噪声的理想情况下,波形无失真,每个码元将重叠在一起,最终在示波器上看到的是迹线又细又清晰的“眼睛”,“眼”开启得最大。当有码间串扰时,波形失真,码元不完全重合,眼图的迹线就会不清晰,引起“眼”部分闭合。若再加上噪声的影响,则使眼图的线条变得模糊,“眼”开启得小了,因此,“眼”张开的大小表示了失真的程度,反映了码间串扰的强弱。由此可知,眼图能直观地表明码间串扰和噪声的影响,可评价一个基带传输系统性能的优劣。另外也可以用此图形对接收滤波器的特性加以调整,以减小码间串扰和改善系统的传输性能。
从以上分析可知,眼图可以定性反映码间串扰的大小和噪声的大小,眼图还可以用来指示接受滤波器的调整,以减少码间串扰,改善系统性能。
使用了随机数,产生的基带信号也是随机的,经过加白噪声,产生的眼图也是不一样的。选取的采样频率也影响着最后的博兴和眼图。一开始的时候,提示加噪声的部分有问题,通过调试,发现工作空间设置的不准确,相加会出现错误,将工作空间加大,语法没错了,但是眼图出不来。后来经过仔细观察,发现做卷积的时候把一个元素弄错了,经过修改,最终成功运行。
2015年6月25日
基于MATLAB的第一类部分响应系统的
基带信号及其眼图实现
摘要
所谓眼图,是指通过用示波器观察接收端的基带信号波形,从而估计和调整系统性能的一种方法。这种方法具体做法是:用一个示波器跨接在抽样判决器的输入端,然后调整示波器水平扫描周期,使其与接受码元的周期同步。此时可以从示波器显示的图形上,观察码间干扰和信道噪声等因素影响的情况,从而估计系统性能的优劣程度。因为在传输二进制信号波形时,示波器显示的图像很像人的眼睛,故名“眼图”。
通信原理实验报告

一、任务与要求1.1设计任务1. 模拟调制与解调用matlab实现AM、DSB、SSB调制与解调过程。
2. 数字调制与解调用matlab实现2ASK、2FSK、2PSK调制与解调过程。
1.2设计要求1. 掌握AM, DSB, SSB 三种调制方式的基本原理及解调过程。
2. 掌握2ASK, 2FSK, 2PSK 三种调制方式的基本原理及解调过程。
3. 学习MATLAB软件,掌握MA TLAB各种函数的使用,能将调制解调过程根据调制解调过程的框图结构,用matlab程序实现,仿真调制过程,记录并分析仿真结果。
4. 对作出的波形和曲线进行分析和比较,讨论实际值和理论值的误差原因和改进方法。
二、设计原理(1)模拟调制与解调DSB调制属于幅度调制。
幅度调制是用调制信号去控制高频载波的振幅,使其按调制信号的规律而变化的过程。
设正弦型载波c(t)=Acos(wc*t),式中:A为载波幅度, wc为载波角频率。
根据调制定义,幅度调制信号(已调信号)一般可表示为:f(t)=Am(t)cos(t)(公式1-1),其中,m(t)为基带调制信号。
设调制信号m(t)的频谱为M(),则由公式1-1不难得到已调信号(t)的频谱。
在波形上,幅度已调信号随基带信号的规律呈正比地变化;在频谱结构上,它的频谱完全是基带信号频谱在频域内的简单搬移。
如果在AM调制模型中将直流去掉,即可得到一种高调制效率的调制方式—抑制载波双边带信号(DSB—SC),简称双边带信号。
其时域表达式为f(t)=m(t)cos(t)式中,假设的平均值为0。
DSB的频谱与AM的谱相近,只是没有了在处的函数,即f()=[M(w-wc)+M(w+wc)]其典型波形和频谱如图1-1所示:图1-1 DSB 调制典型波形和频谱与AM 信号比较,因为不存在载波分量,DSB 信号的调制效率是100,即全部效率都用于信息传输。
解调是调制的逆过程,其作用是从接收的已调信号中恢复原基带信号(即调制信号)。
通信原理matlab实验报告

通信原理matlab实验报告《通信原理matlab实验报告》在现代通信系统中,通信原理是至关重要的一部分。
为了更好地理解和应用通信原理,我们进行了一系列的实验,并在本报告中分享我们的实验结果和分析。
首先,我们使用了Matlab软件进行了频谱分析实验。
通过对信号的频谱进行分析,我们能够更好地了解信号的频率分布特性,从而为信号的传输和处理提供了重要的参考。
在实验中,我们使用了不同的信号类型,并通过Matlab的频谱分析工具对其进行了分析。
通过实验结果,我们发现不同类型的信号在频谱上呈现出不同的特征,这为我们在实际通信系统中的信号处理提供了重要的指导。
其次,我们进行了调制解调实验。
调制是将数字信号转换为模拟信号的过程,而解调则是将模拟信号转换为数字信号的过程。
在实验中,我们使用Matlab模拟了调制解调过程,并通过实验结果验证了调制解调的正确性。
通过这一实验,我们深入理解了调制解调的原理和过程,并为实际通信系统中的信号处理提供了重要的参考。
最后,我们进行了信道编码解码实验。
信道编码是为了提高通信系统的可靠性和抗干扰能力而进行的一种技术手段。
在实验中,我们使用Matlab对信道编码进行了模拟,并通过实验结果验证了信道编码的效果。
通过这一实验,我们更加深入地理解了信道编码的原理和作用,为实际通信系统中的信号处理提供了重要的参考。
综上所述,通过本次实验,我们更加深入地理解了通信原理的相关知识,并通过Matlab软件进行了实际操作,加深了对通信原理的理解和应用。
这些实验结果对我们今后在通信系统设计和应用中将起到重要的指导作用。
希望通过这份实验报告的分享,能够对通信原理的学习和应用有所帮助。
通信原理MATLAB实验(第2部分)

图1-1 2ASK信号产生方法与波形示例
二、MATLAB实现 以数字信号序列为例,给出产生2ASK信号的
MATLAB程序流程图如图1-2所示。
开始 为变量赋初值
生成2ASK信号 画出原始二进制代码波形
画出2ASK信号波形
结束 图1-2 2ASK流程图
%本函数实现将输入的一段二进制代码调制成相应的ask信号输出 %s为输入二进制码,f为载波频率,ask为调制后输出信号
y(t)e0(t)s(t)co cts,包络检波器输出为 s (t )。经抽样、
判决后将码元再生,即可恢复出数字序列{ a n }。
2ASK信号
e0 (t)
半波或
BPF
全波整流
LPF
y(t)
s(t)
包检器
图 1-4 2ASK信号的包络解调
抽样 判决器
定时脉冲
{an}
相干检测法原理方框图如图1-5所示。相干检测就是同步 解调,要求接收机产生一个与发送载波同频同相的本地载波 信号,称其为同步载波或相干载波。利用此载波与收到的已 调信号相乘,输出为
2FSK信号的产生方法及波形示例如图1-7所示。图中s (t )
为代表信息的二进制矩形脉冲序列,e0 (t ) 即是2FSK信号。
图1-7 2FSK信号的产生方法及波形示例
根据以上2FSK信号的产生原理,已调信号的数字表达式可 以表示为
e 0 (t) s (t)co 1 t sn ) ( s (t)co 2 t sn ) ((1-10)
在命令窗口中键入s的二进制代码和载波频率f1、f2,再 输入函数名,就可以得到所对应的fsk信号输出,如输入以下 指令:
s=[1 0 1 1 0 0 1 0]; f1=200; f2=100; fskdigital
通信原理实验教程MATLAB

通信原理实验教程MATLAB通信原理是一个非常重要的学科,它涉及到人类社会中所有的信息传递和交流。
在通信原理实验中,MATLAB是一个广泛应用的软件工具,它可以帮助我们更好地理解和分析各种信号处理、调制和调解技术。
本文将介绍通信原理实验教程MATLAB,包括实验内容、实验步骤和实验效果。
一、实验内容通信原理实验教程MATLAB主要包括以下内容:1.信号处理实验:涉及对不同类型的信号进行采样、量化、编码、解码和滤波等处理。
2.模拟调制实验:涉及常见的调制方式,如AM、FM、PM等,通过信号模拟生成带载波的调制信号。
3.数字调制实验:涉及数字调制方式,如ASK、FSK、PSK 等,通过二进制数字信号生成带载波的数字调制信号。
4.调解实验:涉及不同的调解技术,如干扰消除、正交调解等,可以帮助我们更好地理解信号的编码和解码过程。
二、实验步骤通信原理实验教程MATLAB的实验步骤如下:1.信号处理实验:利用MATLAB实现信号处理算法,包括采样、量化、编码、解码和滤波等过程。
通过图形界面展示处理后的信号波形和频谱,来验证算法的正确性。
2.模拟调制实验:利用MATLAB生成正弦波载波和调制信号,利用Mod函数进行AM、FM和PM模拟调制操作。
通过图形界面展示调制信号的波形和频谱,以及载波和调制信号的相位、频率和幅值信息。
3.数字调制实验:生成二进制数字信号,利用MATLAB实现ASK、FSK、PSK等数字调制算法,利用图形界面展示调制信号的波形和频谱,以及载波和数字信号的相位和频率信息。
4.调解实验:利用MATLAB实现干扰消除和正交调解等调解技术,通过图形界面展示编码和解码过程的波形和频谱信息,并比较不同技术之间的性能差异。
三、实验效果通信原理实验教程MATLAB的实验效果如下:1.信号处理实验:通过MATLAB实现信号处理算法,可以快速准确地分析和优化不同类型的信号,从而保证通信系统的稳定性和可靠性。
2.模拟调制实验:通过MATLAB模拟AM、FM和PM模拟调制操作,可以深入了解不同调制方式的优缺点以及应用场景,从而更好地选择调制方式。
通信原理实验报告matlab
通信原理实验报告matlab《通信原理实验报告:MATLAB》摘要:本实验报告基于通信原理课程的实验要求,利用MATLAB软件进行了一系列的实验。
通过实验,我们深入了解了通信原理中的一些重要概念和技术,并通过MATLAB软件进行了模拟和分析。
本实验报告将详细介绍实验的目的、原理、实验步骤、实验结果和分析,以及对实验过程中遇到的问题和解决方法进行了总结和讨论。
1. 实验目的本实验旨在通过使用MATLAB软件进行通信原理相关的实验,加深对通信原理中的相关概念和技术的理解,并通过实际操作加强对课程知识的掌握和应用能力。
2. 实验原理在本实验中,我们将涉及到通信原理中的一些重要概念和技术,包括信号的调制与解调、信道编码、信道调制等内容。
通过MATLAB软件,我们可以对这些概念和技术进行模拟和分析,从而更好地理解其原理和应用。
3. 实验步骤本实验中,我们将根据实验要求,依次进行一系列的实验步骤,包括信号的调制与解调、信道编码、信道调制等内容。
通过MATLAB软件,我们将对这些实验步骤进行模拟和分析,得到实验结果。
4. 实验结果和分析在实验过程中,我们得到了一系列的实验结果,并进行了详细的分析。
通过对这些实验结果的分析,我们可以更好地理解通信原理中的相关概念和技术,并加深对课程知识的理解和掌握。
5. 实验总结和讨论在实验过程中,我们也遇到了一些问题,并通过一些方法进行了解决。
在本部分,我们将对实验过程中遇到的问题和解决方法进行总结和讨论,以便更好地应对类似的实验问题。
通过本次实验,我们加深了对通信原理中的相关概念和技术的理解,并通过MATLAB软件进行了模拟和分析,得到了一系列的实验结果。
这些实验结果将有助于我们更好地理解通信原理中的相关知识,并加强对课程知识的掌握和应用能力。
同时,本次实验也为我们今后的学习和研究提供了一定的参考和借鉴。
通信原理MATLAB验证低通抽样定理实验报告
通信原理实验报告一、实验名称MATLAB验证低通抽样定理二、实验目的1、掌握抽样定理的工作原理。
2、通过MATLAB编程实现对抽样定理的验证,加深抽样定理的理解。
同时训练应用计算机分析问题的能力。
3、了解MATLAB软件,学习应用MATLAB软件的仿真技术。
它主要侧重于某些理论知识的灵活运用,以及一些关键命令的掌握,理解,分析等。
4、计算在临界采样、过采样、欠采样三种不同条件下恢复信号的误差,并由此总结采样频率对信号恢复产生误差的影响,从而验证时域采样定理。
三、实验步骤及原理1、对连续信号进行等间隔采样形成采样信号,采样信号的频谱是原连续信号的频谱以采样频率为周期进行周期性的延拓形成的。
2、设连续信号的的最高频率为Fmax,如果采样频率Fs>2Fmax,那么采样信号可以唯一的恢复出原连续信号,否则Fs<=2Fmax会造成采样信号中的频谱混叠现象,不可能无失真地恢复原连续信号。
四、实验内容1、画出连续时间信号的时域波形及其幅频特性曲线,信号为x=cos(4*pi*t)+1.5*sin(6*pi*t)+0.5*cos(20*pi*t)2、对信号进行采样,得到采样序列,画出采样频率分别为10Hz,20 Hz,50 Hz时的采样序列波形;3、对不同采样频率下的采样序列进行频谱分析,绘制其幅频曲线,对比各频率下采样序列和的幅频曲线有无差别。
4、对信号进行谱分析,观察与3中结果有无差别。
5、由采样序列恢复出连续时间信号,画出其时域波形,对比与原连续时间信号的时域波形。
五、实验仿真图(1) x=cos(4*pi*t)+1.5*sin(6*pi*t)+0.5*cos(20*pi*t)的时域波形及幅频特性曲线。
clear;close all;dt=0.05;t=-2:dt:2x=cos(4*pi*t)+1.5*sin(6*pi*t)+0.5*cos(20*pi*t);N=length(t);Y=fft(x)/N*2;fs=1/dt;df=fs/(N-1);f=(0:N-1)*df;plot(t,x)title('抽样时域波形')xlabel('t')grid;subplot(2,1,2)plot(f,abs(Y));title('抽样频域信号 |Y|');xlabel('f');grid;(2)采样频率分别为10Hz时的采样序列波形, 幅频特性曲线,以及由采样序列恢复出连续时间信号时域、频域波形;clear;close all;dt=0.1;t0=-2:0.01:2t=-2:dt:2ts1=0.01x0=cos(4*pi*t0)+1.5*sin(6*pi*t0)+0.5*cos(20*pi*t0);x=cos(4*pi*t)+1.5*sin(6*pi*t)+0.5*cos(20*pi*t);B=length(t0);Y2=fft(x0)/B*2;fs2=1/0.01;df2=fs2/(B-1);f2=(0:B-1)*df2;N=length(t);Y=fft(x)/N*2;fs=1/dt;df=fs/(N-1);f=(0:N-1)*df;tm=-50:ts1:50gt=sinc(fs*tm)st=sigexpand(x,dt/ts1)x3=conv(st,gt)A=length(tm(5001:5401));Y1=fft(x3(5001:5401))/A*2;fs1=1/ts1;df1=fs1/(A-1);f1=(0:A-1)*df1;subplot(3,2,1)plot(t0,x0)title('原始时域波形')xlabel('t')subplot(3,2,2)title('原始频域波形')xlabel('t')subplot(3,2,3)plot(t,x)title('抽样时域波形')xlabel('t')grid;subplot(3,2,4)plot(f,abs(Y));title('抽样频域信号 |Y|');xlabel('f');subplot(3,2,5)plot(t0,x3(5001:5401))title('恢复后的信号');xlabel('tm')subplot(3,2,6)plot(f1,abs(Y1));title('恢复频域信号 |Y1|');xlabel('f1');grid;(3)采样频率分别为20 Hz时的采样序列波形,幅频特性曲线,以及由采样序列恢复出连续时间信号时域、频域波形;clear;close all;dt=0.05;t0=-2:0.01:2t=-2:dt:2ts1=0.01x0=cos(4*pi*t0)+1.5*sin(6*pi*t0)+0.5*cos(20*pi*t0); x=cos(4*pi*t)+1.5*sin(6*pi*t)+0.5*cos(20*pi*t);B=length(t0);Y2=fft(x0)/B*2;fs2=1/0.01;df2=fs2/(B-1);f2=(0:B-1)*df2;N=length(t);Y=fft(x)/N*2;fs=1/dt;df=fs/(N-1);f=(0:N-1)*df;tm=-50:ts1:50gt=sinc(fs*tm)st=sigexpand(x,dt/ts1)x3=conv(st,gt)A=length(tm(5001:5401));Y1=fft(x3(5001:5401))/A*2;fs1=1/ts1;df1=fs1/(A-1);f1=(0:A-1)*df1;subplot(3,2,1)plot(t0,x0)title('原始时域波形')xlabel('t')subplot(3,2,2)plot(f2,abs(Y2))title('原始频域波形')xlabel('t')subplot(3,2,3)plot(t,x)title('抽样时域波形')xlabel('t')grid;subplot(3,2,4)plot(f,abs(Y));title('抽样频域信号 |Y|');xlabel('f');subplot(3,2,5)plot(t0,x3(5001:5401))title('恢复后的信号');xlabel('tm')subplot(3,2,6)plot(f1,abs(Y1));title('恢复频域信号 |Y1|');xlabel('f1');grid;(4)采样频率分别为50 Hz时的采样序列波形,幅频特性曲线,以及由采样序列恢复出连续时间信号时域、频域波形;;clear;close all;dt=0.02;t0=-2:0.01:2t=-2:dt:2ts1=0.01x0=cos(4*pi*t0)+1.5*sin(6*pi*t0)+0.5*cos(20*pi*t0);x=cos(4*pi*t)+1.5*sin(6*pi*t)+0.5*cos(20*pi*t);B=length(t0);Y2=fft(x0)/B*2;fs2=1/0.01;df2=fs2/(B-1);f2=(0:B-1)*df2;N=length(t);Y=fft(x)/N*2;fs=1/dt;df=fs/(N-1);f=(0:N-1)*df;tm=-50:ts1:50gt=sinc(fs*tm)st=sigexpand(x,dt/ts1)x3=conv(st,gt)A=length(tm(5001:5401));Y1=fft(x3(5001:5401))/A*2; fs1=1/ts1;df1=fs1/(A-1);f1=(0:A-1)*df1;subplot(3,2,1)plot(t0,x0)title('原始时域波形') xlabel('t')subplot(3,2,2)plot(f2,abs(Y2))title('原始频域波形') xlabel('t')subplot(3,2,3)plot(t,x)title('抽样时域波形') xlabel('t')grid;subplot(3,2,4)plot(f,abs(Y));title('抽样频域信号 |Y|'); xlabel('f');subplot(3,2,5)plot(t0,x3(5001:5401)) title('恢复后的信号'); xlabel('tm')subplot(3,2,6)plot(f1,abs(Y1));title('恢复频域信号 |Y1|'); xlabel('f1');grid;六、实验结论实验中对模拟信号进行采样,需要根据最高截止频率Fmax,按照采样定理的要求选择采样频率的两倍,即 Fs>2Fmax。
Matlab仿真DSB-SC信号与双极性不归零码通信原理实验报告二实验
通信原理实验报告二实验题目:Matlab仿真DSB-SC信号与双极性不归零码一、实验内容1、将模拟信号m(t)=sin2πf m t与载波c(t)=sin2πf c t相乘得到双边带抑制载波调幅DSB-SC信号,设fc=6fm,fm=1k.(1)请画出DSB-SC信号时域,频域波形(2)分析模拟信号如何进行离散化(3)从时域和频域分析信号波形,并观察不同的时域或频域分辨率对信号有无影响,为什么。
2、写出双极性不归零码信号产生及其功率谱密度,图形表示,并结合理论进行分析二、实验目的1、DSB-SC信号仿真(1)进一步理解双边带抑制载波调幅信号的产生过程。
(2)理论联系实际通过实验仿真,获得双边带抑制载波调幅信号时域与频域的波形。
(2)练习matlab软件的使用,掌握常用函数的用法,以及M文件的用法,编写程序,仿真实现DSB-SC信号。
2、双极性不归零码仿真(1)充分理解双极性不归零码信号的产生原理,通过实验仿真实现信号。
(2)进一步熟悉MATLAB编程语言的结构与特点,为充分掌握MATLAB打下基础。
三、实验原理1、DSB-SC信号仿真时域采样定理:当时间信号函数f(t)的最高频率分量为f M时,f(t)的值可由一系列采样间隔小于或等于1/2f M的采样值来确定,即采样点的重复频率f≥2f M频域采样定理:对于时间上受限制的连续信号f(t)(即当│t│>T时,f(t)=0,这里T =T2-T1是信号的持续时间),若其频谱为F(ω),则可在频域上用一系列离散的采样值来表示,只要这些采样点的频率间隔。
(1)调制信号产在数字信号通信快速发展以前主要是模拟通信,由于为了合理使用频带资源,提高通信质量,需要使用模拟调制技术,通常连续波的模拟调制是以正弦波为载波的调制方式,他分为线性调制和非线性调制。
线性调制是指调制后的信号频谱为调制信号频谱的平移或线性变换,而非线性调制则没有这个性质。
线性调制器的一般模型如下图所示。
通信原理Matlab仿真实验报告
通信原理Matlab仿真实验报告学号:姓名:实验一1、利用Matlab实现矩形信号串信号分解与合成⑴ Matlab程序代码:①矩形信号串信号分解与合成函数rectexpd():function rectexpd(T1,T0,m)%矩形信号串信号分解与合成%T1:矩信号区间为(-T1/2,T1/2)%T0:矩形矩信信号串周期%m:傅里叶级数展开项次数t1=-T1/2:0.01:T1/2;t2=T1/2:0.01:(T0-T1/2); t=[(t1-T0)';(t2-T0)';t1';t2';(t1+T0)'];n1=length(t1);n2=length(t2); %根据周期矩形信号函数周期,计算点数f=[ones(n1,1);zeros(n2,1);ones(n1,1);zeros(n2 ,1);ones(n1,1)]; %构造周期矩形信号串y=zeros(m+1,length(t));y(m+1,:)=f';figure(1);plot(t,y(m+1,:)); %绘制周期矩形信号串axis([-(T0+T1/2)-0.5,(T0+T1/2)+0.5,0,1.2]); set(gca,'XTick',[-T0,-T1/2,T1/2,T0]);set(gca,'XTickLabel',{'-T0','-T1/2','T1/2','T0'}) ;title('矩形信号串');grid on; a=T1/T0;pause; %绘制离散幅度谱freq=[-20:1:20];mag=abs(a*sinc(a*freq)); stem(freq,mag);x=a*ones(size(t));for k=1:m %循环显示谐波叠加图形pause;x=x+2*a*sinc(a*k)*cos(2*pi*t*k/T0);y(k,:)=x;plot(t,y(m+1,:));hold on;plot(t,y(k,:));hold off;grid on;axis([-(T0+T1/2)-0.5,[T0+T1/2]+0.5,-0.5,1.5]) ;title(strcat(num2str(k),'次谐波叠加')); xlabel('t');endpause;plot(t,y(1:m+1,:));grid on;axis([-T0/2,T0/2,-0.5,1.5]);title('各次谐波叠加');xlabel('t');②在命令窗口调用rectexpd()函数:T1=5;T0=10;m=5;rectexpd(T1,T0,m)⑵Matlab仿真结果:1次谐波叠加t3次谐波叠加tt2次谐波叠加t4次谐波叠加tt2、利用Matlab实现连续信号卷积运算⑴ Matlab程序代码:①连续信号卷积运算的通用函数sconv():function [f,k]=sconv(f1,f2,k1,k2,p) f=conv(f1,f2);f=f*p;k0=k1(1)+k2(1);k3=length(f1)+length(f2)-2;k=k0:p:k3*p; subplot(2,2,1); plot(k1,f1); title('f1(t)'); xlabel('t'); ylabel('f1(t)');subplot(2,2,2);plot(k2,f2);title('f2(t)'); xlabel('t'); ylabel('f2(t)'); subplot(2,2,3); plot(k,f); title('f(t)=f1(t)*f2(t)'); xlabel('t'); ylabel('f(t)');h=get(gca,'position'); h(3)=2.5*h(3);set(gca,'position',h);②在命令窗口调用sconv ()函数: p=0.01; k1=0:p:2; f1=exp(-k1); k2=0:p:3;f2=ones(1,length(k2)); [f,k]=sconv(f1,f2,k1,k2,p)⑵Matlab 仿真结果:0.511.5200.51f1(t)tf 1(t )01230.511.52f2(t)tf 2(t )00.51 1.522.533.544.550.51f(t)=f1(t)*f2(t)tf (t )实验二1、用Matlab模拟图形A律解码⑴Matlab程序代码:①建立函数ADecode()function y=ADecode(code,n) codesize=size(code);cr_len=codesize(1);cl_len=codesize(2);ca=zeros(1,cl_len-1);for i=1:cr_lenca=code(i,2:n);s=0;for j=1:n-1s=s+ca(j)*2^(n-1-j);enda=code(i,1);y(i)=s*((-1)^(a+1)); endy=y/(2^(n-1));A=87.6;A1=1+log(A); for j=1:length(y)if(y(j)>=0)if(y(i)<=1/A1)y(j)=y(j)*A1/A;elsey(j)=exp(y(j)*A1-1/A);endelsetemp=-y(j);if(temp<=1/A1)y(j)=-temp*A1/A;elsey(j)=-exp(temp*A1-1)/A;endendend②建立函数APCM()function code=APCM(x,n)xmax=max(abs(x));x=x/xmax;xlen=length(x);y=zeros(1,xlen);A=87.6;A1=1+log(A);for i=1:xlenif x(i)>=0if x(i)<=1/Ay(i)=(A*x(i))/A1;elsey(i)=(1+log(A*x(i)))/A1;endelsex1=-x(i);if x1<=1/Ay(i)=-(A*x1)/A1;elsey(i)=-(1+log(A*x1))/A1;endendendy1=y*(2^(n-1)-1);y1=round(y1);code=zeros(length(y1),n); c2=zeros(1,n-1);for i=1:length(y1)if(y1(i)>0)c1=1;elsec1=0;y1(i)=-y1(i);endfor j=1:n-1r=rem(y1(i),2);y1(i)=(y1(i)-r)/2;c2(j)=r;endc2=fliplr(c2);code(i,:)=[c1 c2];end③在新函数中调用前两个函数 t=0:0.01:1; x=sin(2*pi*t); code=APCM(x,7); y=ADecode(code,7); subplot(2,1,1) plot(t,x);title('原函数的图形'); subplot(2,1,2) plot(t,y);title('解码后函数的图形');⑵Matlab 仿真结果:00.10.20.30.40.50.60.70.80.91-1-0.500.51原函数的图形00.10.20.30.40.50.60.70.80.91-1-0.50.5解码后函数的图形2、用Matlab 模拟DSB 调制及解调过程 ⑴Matlab 程序代码: close all; clear all;dt=0.001;%采样时间间隔 fm=1; %信源最高频率 fc=10; %载波中心频率 N=4096;T=N*dt; t=0:dt:T-dt;mt=sqrt(2)*cos(2*pi*fm*t);%信源s_dsb=mt.*cos(2*pi*fc*t); %DSB-SC 双边带抑制载波调幅B=2*fm;figure(1); subplot(311) plot(t,s_dsb,'b-');hold on; %画出DSB 信号波形plot(t,mt,'r--');%画出m(t)信号波形 title('DSB 调制信号'); xlabel('t'); grid on;%DSB demodulation rt=s_dsb.*cos(2*pi*fc*t); rt=rt-mean(rt); [f,rf]=T2F(t,rt); [t,rt]=lpf(f,rf,B); subplot(312) plot(t,rt,'k-'); hold on;plot(t,mt/2,'r--');title('相干解调后的信号波形与输入信号的比较'); xlabel('t'); grid on; subplot(313)[f,sf]=T2F(t,s_dsb); %求调制信号的频谱psf=(abs(sf).^2)/T; %求调制信号的功率谱密度 plot(f,psf);axis([-2*fc 2*fc 0 max(psf)]); title('DSB 信号功率谱'); xlabel('f'); grid on;⑵Matlab 仿真结果:00.51 1.52 2.53 3.54 4.5-22DSB 调制信号t0.511.522.533.544.5-101相干解调后的信号波形与输入信号的比较t-20-15-10-5051015200.5DSB 信号功率谱f实验三1、用Matlab模拟双极性归零码⑴ Matlab程序代码:function y=drz(x)t0=300;x=[1 0 0 1 1 0 0 0 0 1 0 1];t=0:1/t0:length(x);for i=1:length(x);if(x(i)==1)for j=1:t0/2y(t0/2*(2*i-2)+j)=1;y(t0/2*(2*i-1)+j)=0;endelsefor j=1:t0/2y(t0/2*(2*i-2)+j)=-1;y(t0/2*(2*i-1)+j)=0;endendendy=[y,x(i)];M=max(y);m=min(y); subplot(211)plot(t,y);grid on;axis([0,i,m-0.1,M+0.1]);title('1 0 0 1 1 0 0 0 0 1 0 1 ');⑵Matlab仿真结果:2、用Matlab产生2FSK信号⑴ Matlab程序代码:①建立函数fskdigital()function fskdigital(s,f1,f2) t=0:2*pi/99:2*pi;m1=[];c1=[];b1=[];for n=1:length(s)if s(n)==0;m=ones(1,100);c=sin(f2*t);b=zeros(1,100) else s(n)==1;m=ones(1,100);c=sin(f1*t);b=ones(1,100)endm1=[m1 m]; c1=[c1 c]; b1=[b1 b]; endfsk=c1.*m1;subplot(211);plot(b1,'r')title('原始信号');axis([0 100*length(s) -0.1 1.1]);grid on;subplot(212);plot(fsk)title('2FSK信号');grid on;②在命令窗口调用函数fskdigital() >> s=[1 0 1 1 0 0 1 0]; f1=200; f2=100;fskdigital(s,f1,f2)⑵Matlab 仿真结果:10020030040050060070080000.20.40.60.81原始信号100200300400500600700800-1-0.500.512FSK 信号3、用Matlab 的simulink 模块模拟三角波的分解与还原 ⑴模块图⑵仿真结果:①三角波原图②用矩形波近似的冲击函数③分解后的三角波④经低通还原的三角波。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通信原理实验报告实验二 QPSK 通信系统的Monte Carlo 仿真一、实验目的1. 提高独立学习的能力2. 培养发现问题,解决问题,分析问题的能力3. 学习Matlab 的使用4. 掌握4PSK 通信系统的Monte Carlo 仿真方法5. 掌握4PSK 通信系统的组成原理6.比较编码信号与未编码信号在随机信道中的传输,加深对纠错编码原理的理解。
二、实验原理1. 调制解调原理 一组M 载波相位调制信号波形的一般表示式为:()()1,...,1,0),22cos(-=-=M m Mmt f t Ag t u c T m ππ 式中()t g T 是发送滤波器的脉冲形状,决定了传输信号的频谱特性,A 是信号的幅度,PSK 信号对所有的m 都具有相同的能量,即 ()s mm dt t u εε==⎰∞∞-2其中的s ε代表每个传输符号的能量。
当()t g T 是一个矩形脉冲时,定义为()T t Tt g T ≤≤=0,2这时在符号区间T t ≤≤0内传输的信号波形可以表示为(用s A ε=)()1,...,1,0),22cos(2-=-=M m Mmt f T t u c s m ππε 把式中的余弦函数的相角看成两个相角的和,可以将上式表示为()()()()()()()t s t s t f M m t g t f M m t g t u ms mc c T s c T s m 212sin 2sin 2cos 2cos ψ+ψ=⎪⎭⎫⎝⎛-⎪⎭⎫ ⎝⎛=ππεππε 这里Mms M m s s ms s mc πεπε2sin ,2cos==,而()t 1ψ和()t 2ψ是两个正交基函数,定义为 ()()()()()()t f t g t t f t g t c T c T ππ2sin ,2cos 21-=ψ=ψ适当地将()t g T 归一化,就可以将这两个基函数的能量归一化到1。
这样一个相位调制信号可以看作两个正交载波,起幅度取决于在每个信号区间内的相位,因此,数字相位调制信号在几何上可用mc s 和ms s 的二维向量来表示,即⎪⎭⎫ ⎝⎛=M m M m s s s m πεπε2sin ,2cos在AWGN 信道中,在一个区间内接受到的带通信号可以表示为()()()()()()()()t f t n t f t n t u t n t u t r c s c c m m ππ2sin 2cos -+=+=其中()t n c 和()t n s 是加性噪声的同相分量和正交分量,将这个接收信号与给出的()t 1ψ和()t 2ψ作相关,两个相关器的输出可以表示为:⎪⎭⎫⎝⎛++=+=s s c s m n Mm n Mm n s r πεπε2sin ,2cos这两个正交的噪声分量()t n c 和()t n s 是零均值,互不相关的高斯随机过程,这样()()()()()200022N n E n E n n E n E n E s c s c s c =====,方差为。
最佳检测器将接收到的信号向量r 投射到M 个可能的传输信号向量{}m s 之一上去,并选取对应与最大投影的向量,从而得到相关准则为()m m s r s r C •=,。
由于二相相位调制与二进制PAM 是相同的,所以差错概率为⎥⎥⎦⎤⎢⎢⎣⎡=022N Q P b psk ε式中b ε是每比特能量。
4PSK 可以看作是两个在正交载波上的二相相位调制系统,所以1个比特的差错概率与二相相位调制是一致的。
2. 信道纠错编码在随机信道中,错码的出现是随机的,且错码之间是统计独立的。
例如,由高斯白噪声引起的错码就具有这种性质。
因此,当信道中加性干扰主要是这种噪声时,就称这种信道为随机信道。
由于信息码元序列是一种随机序列,接收端是无法预知的,也无法识别其中有无错码。
为了解决这个问题,可以由发送端的信道编码器在信息码元序列中增加一些监督码元。
这些监督码元和信码之间有一定的关系,使接收端可以利用这种关系由信道译码器来发现或纠正可能存在的错码。
在信息码元序列中加入监督码元就称为差错控制编码,有时也称为纠错编码。
不同的编码方法有不同的检错或纠错能力。
有的编码就只能检错不能纠错。
那么,为了纠正一位错码,在分组码中最少要增加多少监督位才行呢?编码效率能否提高呢?从这种思想出发进行研究,便导致汉明码的诞生。
汉明码是一种能够纠正一位错码且编码效率较高的线性分组码。
下面我们介绍汉明码的构造原理。
一般说来,若码长为n ,信息位数为k ,则监督位数r =n−k 。
如果希望用r 个监督位构造出r 个监督关系式来指示一位错码的n 种可能位置,则要求2r − 1 ≥ n 或 2r ≥ k + r + 1 (8-1)下面我们通过一个例子来说明如何具体构造这些监督关系式。
设分组码(n ,k)中k =4,为了纠正一位错码,由式(8-1)可知,要求监督位数r≥3。
若取r=3,则n= k + r =7。
我们用α6α5…α0 表示这7个码元,用S 1 、S 2 、S 3 表示三个监督关系式中的校正子,则S 1 S 2 S 3 的值与错码位置的对应关系可以规定如表18-1所列。
表 8-1由表中规定可见,仅当一错码位置在α2 、α4 、α5 或α6 时,校正子S 1 为1;否则S 1 为0。
这就意味着α2 、α4 、α5 和α6四个码元构成偶数监督关系S 1 =α6⊕α5 ⊕α4 ⊕α2(8-2) 同理,α1 、α3 、α5 和α6构成偶数监督关系S 2 =α6⊕α5 ⊕α3 ⊕α1 (8-3)以及α0 、α3 、α4 和α6构成偶数监督关系S 3 =α6⊕α4 ⊕α3 ⊕α0 (8-4)在发送端编码时,信息位α6 、α5 、α4 和α3 的值决定于输入信号,因此它们是随机的。
监督位α2 、α1 和α0 应根据信息位的取值按监督关系来确定,即监督位应使上三式中S 1 、S 2 和S 3 的值为零(表示变成的码组中应无错码)⎪⎭⎪⎬⎫⊕⊕⊕⊕⊕⊕⊕⊕⊕000034613562456=αααα=αααα=αααα18-5)由上式经移项运算,解出监督位⎪⎭⎪⎬⎫⊕⊕⊕⊕⊕⊕αα=αααα=ααααα=α340635164562(8-6)给定信息位后,可直接按上式算出监督位,其结果如表8-2所列。
表 8-20000 0001 0010 0011 0100 0101 0110 0111000 011 101 110 110 101 011 0001000 1001 1010 1011 1100 1101 1110 1111111 100 010 001 001 010 100 111接收端收到每个码组后,先按式(8-2)~(8-4)计算出S 1 、S 2 和S 3 ,再按表8-2判断错码情况。
按上述方法构造的码称为汉明码。
表8-2中所列的(7,4)汉明码的最小码距d 0 =3,因此,这种码能纠正一个错码或检测两个错码。
3、两实验的系统框图如下:(一)未加信道纠错编码的4PSK 调制通信系统(二)信道纠错编码(7,4)汉明码+4PSK 调制的通信系统AWGN 信道输入数据信道编码 (汉明码)4-PSK 调制4-PSK 解调信道解码 (汉明码)输出数据三、实验内容(一)未加信道纠错编码的4PSK调制通信系统1、实验要求1)根据系统组成框图用Matlab编写程序,并在每条语句后进行注释2)最大投影点准则进行判决σ分别为0、0.1、0.5、1.0时的符号差错概率和比特差错概率;a, 计算噪声方差2σ时,在检测器输入端1000个接收到的信号加噪声的样本(星座图);b, 画出在每种2c, 分别画出数据点为1000、5000、10000、100000时的Monte Carlo仿真误比特率曲线和理论误比特率曲线,比较差别,分析数据点的数量对仿真结果的影响;3)将检测器的判决准则改为最小距离法(星座图上符号间的距离),比较与上面结果的区别。
4)分析整个通信系统各组成部分的原理、分析实验结果,总结概括。
2、实验程序(1)主程序1N=1000;%数据点数为1000xulie=subserial(N);%生成序列m=psktiaozhi(xulie);%4psk调制第一步,算出码元所对应的mfor j=1:N/2 %两路信号a(j)=cos(pi*m(j)/2);b(j)=sin(pi*m(j)/2);end;t=1;G=char('*r','*g','*b','*y');%!!!!!!!!!!!!for R=[0,0.1,0.5,1.0]for i=1:N/2%生成噪声[nc(i),ns(i)]=gnguass(0,sqrt(R));%生成噪声序列end;for j=1:N/2 %两路信号加噪声Rc(j)=a(j)+nc(j);Rs(j)=b(j)+ns(j);end;subplot(2,2,t)hold on;for i=1:N/2plot(Rs(i),Rc(i),G(m(i)+1,:));axis([-4 4 -4 4]);%根据不同的m(i)值可以判断某一码元的来源,从而赋予其相应颜色endhold off;title('星座图');s1=zuixiaojuli(Rc,Rs)%最小距离法shuchuxulie1=pskjietiao(s1);%4psk解调errorate1juli=byterror(xulie,shuchuxulie1,t)%比特错误errorate2juli=fuhaoerror(xulie,shuchuxulie1,t)%符号错误s2=zuidatouying(Rc,Rs);%最大投影法shuchuxulie2=pskjietiao(s2);%4psk解调errorate1touying=byterror(xulie,shuchuxulie2,t)%比特错误errorate2touying=fuhaoerror(xulie,shuchuxulie2,t)%符号错误t=t+1;end;(2)主程序2N0=0:0.1:2;Eb=1;%平均码元能量为1Pb=0.5*erfc(sqrt(Eb./N0));%理论差错概率曲线公式semilogy(N0,Pb);%画出N0与Pb(差错概率)的关系曲线,理论为蓝色,1000点红色,5000点黑色,10000点绿色,100000点黄色hold on;k=1;%控制大循环,每次循环改变点数G=char('rd-','kd-','gd-','yd-');for N=[1000,5000]%,10000,100000]xulie=subserial(N);%生成序列m=psktiaozhi(xulie);%4psk调制第一步,算出码元所对应的mfor j=1:N/2 %两路信号a(j)=cos(pi*m(j)/2);b(j)=sin(pi*m(j)/2);end;t=1;%控制循环,每次循环改变N值for RR=0:0.1:2 %不同N值R=sqrt(RR/2);%不同N值所对应的不同方差值for i=1:N/2%生成噪声[nc(i),ns(i)]=gnguass(0,R);end;for j=1:N/2 %两路信号加噪声Rc(j)=a(j)+nc(j);Rs(j)=b(j)+ns(j);end;s=zuidatouying(Rc,Rs);%最大投影法shuchuxulie=pskjietiao(s);%4psk解调byteerro(t)=0;%计算比特错误,计数变量清零for i=1:Nif (xulie(i)==shuchuxulie(i))%比较输出序列与原序列,若相同无操作,若不同计数变量增一byteerro(t)=byteerro(t);else byteerro(t)=byteerro(t)+1;end;end;errorate(t)=byteerro(t)/N;%算出误比特率t=t+1;end;RR=0:0.1:2;semilogy(RR,errorate,G(k));%画图显示误比特率与N值的函数关系k=k+1;end;(3)高斯噪声产生子函数function [gsrv1,gsrv2]=gnguass(m,sgma)%本函数生成以高斯分布生成两相互正交的随机数%m为期望,sgma为方差if nargin==0m=0;sgma=1;elseif nargin==1sgma=m;m=0;end%以上几句的含义是,若未输入参量,则期望为0,方差为1,即正态分布;如输入一个参量,则该参量为sgma,期望0;u=rand;%u为随机产生的一个数,在0~1中服从均匀分布z=sgma*sqrt(2*log10(1/(1-u)));u=rand;gsrv1=m+z*cos(2*pi*u);gsrv2=m+z*sin(2*pi*u);%通过上述四行公式将均匀分布映射成高斯分布(4)序列产生子函数function [source]=subserial(N)%本函数的功能是产生一个长度为N的随机0、1序列%N为序列长度,source为生成序列source=zeros(1,N);for i=1:N;temp=rand;%产生随机数,在0~1上服从均匀分布if (temp<0.5)source(i)=0;%小于0.5时判决为0,否则为1elsesource(i)=1;endend(5)4psk调制子函数function [m]=psktiaozhi(xulie)%本函数实现4psk调制第一步,即算出m序列%xulie为原序列N=length(xulie);j=1;for i=1:2:N-1if (xulie(i)==0&xulie(i+1)==0)%通过码元的值判断得出m,共四种情况00、01、10、11,分别对应m=0、1、2、3m(j)=0;elseif (xulie(i)==0&xulie(i+1)==1)m(j)=1;elseif (xulie(i)==1&xulie(i+1)==0)m(j)=2;else (xulie(i)==1&xulie(i+1)==1)m(j)=3;end;j=j+1;end;(6)4psk解调子函数function [shuchuxulie]=pskjietiao(s)%该函数实现4psk解调%s为调制后序列,shuchuxulie为解调后序列N=2*length(s);j=1;for n=1:2:N-1if s(j)==0shuchuxulie(n)=0;%通过s的值判断得出原码元的值,共四种情况s=0、1、2、3,分别对应00、01、10、11shuchuxulie(n+1)=0;elseif s(j)==1shuchuxulie(n)=0;shuchuxulie(n+1)=1;elseif s(j)==2shuchuxulie(n)=1;shuchuxulie(n+1)=0;else shuchuxulie(n)=1;shuchuxulie(n+1)=1;end;j=j+1;end;(7)比特错误统计及误比特率计算子函数function [errorate1]=byterror(xulie,shuchuxulie,t)%本函数实现序列误码数与误码率的计算%errorate1为误码率,xulie、shuchuxulie为两序列,t为结果数组的下标,若误码率仅为一个数,可使t为一定值N=length(xulie);byteerro(t)=0;%比特错误for i=1:Nif (xulie(i)==shuchuxulie(i))byteerro(t)=byteerro(t);else byteerro(t)=byteerro(t)+1;%比较输出序列与原序列,若相同无操作,若不同计数变量增一end;end;errorate1(t)=byteerro(t)/N;%算出误比特率(8)符号错误统计及误符号率计算子函数function [errorate2]=fuhaoerror(xulie,shuchuxulie,t)%本函数实现序列误符号数与误符号率的计算%errorate1为误码率,xulie、shuchuxulie为两序列,t为结果数组的下标,若误码率仅为一个数,可使t为一定值N=length(xulie);fuhaoerro(t)=0;%符号错误for i=1:2:N-1if ((xulie(i)==shuchuxulie(i))&(xulie(i+1)==shuchuxulie(i+1)))fuhaoerro(t)=fuhaoerro(t);else fuhaoerro(t)=fuhaoerro(t)+1;%比较输出序列与原序列的码元,码元中的两符号若都相同无操作,否则计数变量增一end;end;errorate2(t)=fuhaoerro(t)/(N/2);%误符号率3、程序运行结果(1)主程序1运行结果如下:σ经4psk调制及在信道中叠加噪声后的星座图,图中不同颜色图1为序列在不同噪声方差2决定于该数据点在调制之后加噪之前的调制值,红色点为(0,1),黄色点为(-1,0),蓝σ值分别为0、色点为(0,-1),绿色点为(1,0)。