通信原理实验报告(二) 含matlab程序
- 格式:doc
- 大小:414.50 KB
- 文档页数:17
通信原理实验报告课程名称:通信原理实验三:二进制数字信号调制仿真实验实验四:模拟信号数字传输仿真实验姓名:学号:班级: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的二进制单极性不归零信号,以之作为后续调制的信源,并求出它的功率谱密度,以方便后面对已调信号频域特性和基带信号频域特性的比较。
一、任务与要求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是一个广泛应用的软件工具,它可以帮助我们更好地理解和分析各种信号处理、调制和调解技术。
本文将介绍通信原理实验教程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软件进行了模拟和分析。
本实验报告将详细介绍实验的目的、原理、实验步骤、实验结果和分析,以及对实验过程中遇到的问题和解决方法进行了总结和讨论。
1. 实验目的本实验旨在通过使用MATLAB软件进行通信原理相关的实验,加深对通信原理中的相关概念和技术的理解,并通过实际操作加强对课程知识的掌握和应用能力。
2. 实验原理在本实验中,我们将涉及到通信原理中的一些重要概念和技术,包括信号的调制与解调、信道编码、信道调制等内容。
通过MATLAB软件,我们可以对这些概念和技术进行模拟和分析,从而更好地理解其原理和应用。
3. 实验步骤本实验中,我们将根据实验要求,依次进行一系列的实验步骤,包括信号的调制与解调、信道编码、信道调制等内容。
通过MATLAB软件,我们将对这些实验步骤进行模拟和分析,得到实验结果。
4. 实验结果和分析在实验过程中,我们得到了一系列的实验结果,并进行了详细的分析。
通过对这些实验结果的分析,我们可以更好地理解通信原理中的相关概念和技术,并加深对课程知识的理解和掌握。
5. 实验总结和讨论在实验过程中,我们也遇到了一些问题,并通过一些方法进行了解决。
在本部分,我们将对实验过程中遇到的问题和解决方法进行总结和讨论,以便更好地应对类似的实验问题。
通过本次实验,我们加深了对通信原理中的相关概念和技术的理解,并通过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信号与双极性不归零码一、实验内容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仿真实验报告学号:姓名:实验一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 模块模拟三角波的分解与还原 ⑴模块图⑵仿真结果:①三角波原图②用矩形波近似的冲击函数③分解后的三角波④经低通还原的三角波。
matlab与通信仿真实验报告《Matlab与通信仿真实验报告》摘要:本实验报告通过使用Matlab软件进行通信仿真实验,对通信系统的性能进行了评估和分析。
首先介绍了通信系统的基本原理和模型,然后利用Matlab软件搭建了通信系统的仿真模型,并进行了实验验证。
通过实验结果的分析,得出了通信系统的性能指标,为通信系统的设计和优化提供了重要参考。
一、引言通信系统是现代信息社会中不可或缺的基础设施,它承载着各种类型的信息传输和交换。
通信系统的性能直接影响着信息传输的质量和效率,因此对通信系统的性能评估和分析具有重要意义。
Matlab软件是一种功能强大的科学计算软件,它提供了丰富的工具和函数库,可以用于通信系统的建模、仿真和分析。
本实验报告将利用Matlab软件进行通信系统的仿真实验,对通信系统的性能进行评估和分析。
二、通信系统的基本原理和模型通信系统由发送端、信道和接收端组成,发送端将信息转换成电信号发送出去,经过信道传输后,接收端将电信号转换成信息。
通信系统的性能评估主要包括信号传输质量、误码率、信噪比等指标。
在本实验中,我们将以常见的调制解调技术为例,建立通信系统的仿真模型。
三、Matlab软件在通信系统仿真中的应用Matlab软件提供了丰富的工具和函数库,可以用于通信系统的建模、仿真和分析。
在本实验中,我们将利用Matlab软件搭建通信系统的仿真模型,包括信号调制、信道传输、信号解调等过程。
通过Matlab软件的仿真实验,我们可以得到通信系统的性能指标,如误码率、信噪比等。
四、实验结果分析通过Matlab软件进行通信系统的仿真实验,我们得到了一系列实验结果。
通过对实验结果的分析,我们可以评估通信系统的性能,比如误码率随信噪比的变化规律、不同调制方式的性能比较等。
这些实验结果对于通信系统的设计和优化具有重要的参考价值。
五、结论本实验报告利用Matlab软件进行通信系统的仿真实验,对通信系统的性能进行了评估和分析。
通信原理实验报告实验名称:实验一数字基带传输系统的MATLAB仿真实验二模拟信号幅度调制仿真实验班级:10通信工程三班学号:2010550920姓名:彭龙龙指导老师:王仕果实验一 数字基带传输系统的MATLAB 仿真一、实验目的1、熟悉和掌握常用的用于通信原理时域仿真分析的MATLAB 函数;2、掌握连续时间和离散时间信号的MATLAB 产生;3、牢固掌握冲激函数和阶跃函数等函数的概念,掌握卷积表达式及其物理意义,掌握卷积的计算方法、卷积的基本性质;4、掌握利用MATLAB 计算卷积的编程方法,并利用所编写的MATLAB 程序验证卷积的常用基本性质;5、掌握MATLAB 描述通信系统中不同波形的常用方法及有关函数,并学会利用MATLAB 求解系统功率谱,绘制相应曲线。
基本要求:掌握用MATLAB 描述连续时间信号和离散时间信号的方法,能够编写MATLAB 程序,实现各种常用信号的MATLAB 实现,并且以图形的方式再现各种信号的波形。
二、实验内容1、编写MATLAB 程序产生离散随机信号2、编写MATLAB 程序生成连续时间信号3、编写MATLAB 程序实现常见特殊信号三、实验原理从通信的角度来看,通信的过程就是消息的交换和传递的过程。
而从数学的角度来看,信息从一地传送到另一地的整个过程或者各个环节不外乎是一些码或信号的交换过程。
例如信源压缩编码、纠错编码、AMI 编码、扰码等属于码层次上的变换,而基带成形、滤波、调制等则是信号层坎上的处理。
码的变换是易于用软件来仿真的。
要仿真信号的变换,必须解决信号与信号系统在软件中表示的问题。
3.1 信号及系统在计算机中的表示 3.1.1 时域取样及频域取样一般来说,任意信号s(t)是定义在时间区间(-∞,+∞)上的连续函数,但所有计算机的CPU 都只能按指令周期离散运行,同时计算机也不能处理(-∞,+∞)这样一个时间段。
为此将把s(t)按区间,22T T ⎡⎤-⎢⎥⎣⎦截短为s T (t),再对s T (t)按时间间隔Δt 均匀取样,得到取样点数为:TNt t=∆ (3-1) 仿真时用这个样值集合来表示信号s(t)。
实验二 白噪声信道实验一、实验目的1、掌握用matlab 中高斯白噪声信道的产生方法。
2、掌握理想低通和高通白噪声的时频域特性。
3、掌握高斯白噪声对信号的影响。
4、掌握白噪声的消除方法。
二、实验步骤1、产生并分析理想低通高斯白噪声的时频特性,绘制其时频波形。
2、产生并分析理想带通高斯白噪声的时频特性,绘制其时频波形。
3、任意输入一个信号如()cos(2*15)s t t π=,绘制其时频域波形。
4、产生一个正态分布的高斯白噪声()n t ,绘制()()()r t s t n t =+的时频域波形。
5、将()()()r t s t n t =+通过带通滤波器,绘制通过带通滤波器后的时频域波形。
6、计算高斯白噪声信道的信噪比为-10dB 到10dB ,每2dB 递进,发送端信号为0、1时的误码率情况。
三、实验内容(1) 理想低通高斯白噪声的产生和分析程序:bt=0; %开始时间dt=0.01; %时间间隔N=1024; %傅立叶变换点数et=N*dt-dt; %结束时间t=bt:dt:et; %时间域TT=et-bt;df=1/TT; %频率间隔nt=-TT/2:dt:TT/2;Tf=N*df;f=-Tf/2+df: df :Tf/2;fh=10;ts=2*fh*sinc(2*fh*nt);figure(1);subplot(2,1,1); plot(nt,ts);title('低通理想白噪声时域');xlabel('时间(s)');axis([-1 1 min(ts) max(ts)]);grid on;tf=fftshift(fft(ts));subplot(2,1,2);plot(f,abs(tf));title('低通理想白噪声频域');xlabel('频率(Hz)');axis([-30 30 min(abs(tf)) max(abs(tf))]);grid on;(2)理想带通高斯白噪声的产生和分析程序:fs=20;B=10;ts=2*B*sinc(B*nt).*cos(2*pi*fs*nt);figure(2);subplot(2,1,1);plot(nt,ts);title('带通理想白噪声时域');xlabel('时间(s)');axis([-1 1 min(ts) max(ts)]);grid on;tf=fftshift(fft(ts));subplot(2,1,2);plot(f,abs(tf));title('带通理想白噪声频域');xlabel('频率(Hz)');axis([-30 30 min(abs(tf)) max(abs(tf))]); grid on;(3) 信号()cos(2*15)s t t π=,绘制其时频域波形程序:bt=0; %开始时间dt=0.01; %时间间隔N=4096; %傅立叶变换点数et=bt+N*dt-dt; %结束时间t=bt:dt:et; %时间域TT=et-bt; %总的时间nt=-TT/2:dt:TT/2;y = sin(2*pi*10*t); %待分析的信号df=1/TT; %频率间隔Tf=N*df %分析的频宽 f=-Tf/2+df:df:Tf/2; %频率域figure(1);subplot(2,1,1);plot(t,y);title('信号');xlabel('时间(s)');axis([0 2 -1.1 1.1]);grid on;Y =fftshift(fft(y,N));subplot(2,1,2);plot(f,abs(Y));title('频谱');xlabel('频率(Hz)');axis([-30 30 min(abs(Y)) max(abs(Y))]);grid on;(4)()()()=+的时频域波形r t s t n t程序:bt=0; %开始时间dt=0.01; %时间间隔N=4096; %傅立叶变换点数et=bt+N*dt-dt; %结束时间t=bt:dt:et; %时间域TT=et-bt; %总的时间nt=-TT/2:dt:TT/2;y=sin(2*pi*10*t)+0.5*randn(1,length(t)); %待分析的信号df=1/TT; %频率间隔Tf=N*df %分析的频宽f=-Tf/2+df:df:Tf/2; %频率域plot(t,y);title('加噪信号');xlabel('时间(s)');axis([0 2 min(y) max(y)]);grid on;Y =fft(y,N);subplot(2,1,2);plot(f,abs(fftshift(Y)));title('加噪频谱');xlabel('频率(Hz)');axis([-30 30 min(abs(Y)) max(abs(Y))]);grid on;(5)()()()=+通过带通滤波器后的时频域波形r t s t n t程序:fs=10;B=2;pf=zeros(1,length(f));pf(length(f)/2+round((fs-B)/df):length(f)/2+round((fs+B)/df))=1;pf(length(f)/2-round((fs+B)/df):length(f)/2-round((fs-B)/df))=1;Y=Y.*fftshift(pf);y=ifft(Y);subplot(2,1,1);title('去噪信号');xlabel('时间(s)');axis([0 2 min(real(y)) max(real(y))]);grid on;subplot(2,1,2);plot(f,abs(fftshift(Y)));title('去噪频谱');xlabel('频率(Hz)');axis([-30 30 min(abs(Y)) max(abs(Y))]);grid on;(6)计算高斯白噪声信道的信噪比为-10dB到10dB,每2dB 递进,发送端信号为0、1时的误码率情况。
用MatLab仿真通信原理系列实验一、引言通信原理是现代通信领域的基础理论,通过对通信原理的研究和仿真实验可以更好地理解通信系统的工作原理和性能特点。
MatLab作为一种强大的数学计算软件,被广泛应用于通信原理的仿真实验中。
本文将以MatLab为工具,介绍通信原理系列实验的仿真步骤和结果。
二、实验一:调制与解调1. 实验目的通过MatLab仿真,了解调制与解调的基本原理,并观察不同调制方式下的信号特征。
2. 实验步骤(1)生成基带信号:使用MatLab生成一个基带信号,可以是正弦波、方波或任意复杂的波形。
(2)调制:选择一种调制方式,如调幅(AM)、调频(FM)或相移键控(PSK),将基带信号调制到载波上。
(3)观察调制后的信号:绘制调制后的信号波形和频谱图,观察信号的频谱特性。
(4)解调:对调制后的信号进行解调,还原出原始的基带信号。
(5)观察解调后的信号:绘制解调后的信号波形和频谱图,与原始基带信号进行对比。
3. 实验结果通过MatLab仿真,可以得到不同调制方式下的信号波形和频谱图,观察到调制后信号的频谱特性和解调后信号的还原效果。
可以进一步分析不同调制方式的优缺点,为通信系统设计提供参考。
三、实验二:信道编码与解码1. 实验目的通过MatLab仿真,了解信道编码和解码的基本原理,并观察不同编码方式下的误码率性能。
2. 实验步骤(1)选择一种信道编码方式,如卷积码、纠错码等。
(2)生成随机比特序列:使用MatLab生成一组随机的比特序列作为输入。
(3)编码:将输入比特序列进行编码,生成编码后的比特序列。
(4)引入信道:模拟信道传输过程,引入噪声和干扰。
(5)解码:对接收到的信号进行解码,还原出原始的比特序列。
(6)计算误码率:比较解码后的比特序列与原始比特序列的差异,计算误码率。
3. 实验结果通过MatLab仿真,可以得到不同编码方式下的误码率曲线,观察不同信道编码方式对信号传输性能的影响。
通信原理实验二:模拟信号数字化传输系统的建模与分析信息电子学院一.实验目的1. 进一步掌握 Simulink 软件使用的基本方法;2. 熟悉信号的压缩扩张;3. 熟悉信号的量化;4. 熟悉PCM 编码与解码。
二.实验仪器带有MATLAB 和SIMULINK 开发平台的微机三.实验原理3.1 信号的压缩和扩张非均匀量化等价为对输入信号进行动态范围压缩后再进行均匀量化。
中国和欧洲的PCM 数字电话系统采用A 律压扩方式,美国和日本则采用μ律方式。
设归一化的话音输入信号为[1,1]x ∈-,则A 律压缩器的输出信号y 是:()11ln sgn 1(1ln )11ln Ax x A A y x A x x A A ⎧≤⎪+⎪=⎨⎪+<≤⎪⎩+其中,sgn(x) 为符号函数。
A 律PCM 数字电话系统国际标准中,参数A=87.6。
Simulink 通信库中提供了“A-Law Compressor ”、“A-Law Expander ”以及“Mu-Law Compressor ”和“Mu-Law Expander ”来实现A 律和Ö 律压缩扩张计算。
压缩系数为87.6的A 律压缩扩张曲线可以用折线来近似。
16段折线点坐标是111111*********,,,,,,,,0,,,,,,,,1248163264128128643216842765432112345671,,,,,,,,0,,,,,,,,188888888888888x y ⎡⎤=--------⎢⎥⎣⎦⎡⎤=--------⎢⎥⎣⎦其中靠近原点的4段折线的斜率相等,可视为一段,因此总折线数为13段,故称13段折线近似。
用Simulink 中的“Look-Up Table ”查表模块可以实现对13段折线近似的压缩扩张计算的建模,其中,压缩模块的输入值向量设置为[-1,-1/2,-1/4,-1/8,-1/16,-1/32,-1/64,-1/128,0,1/128,1/64,1/32,1/16,1/8,1/4,1/2,1]输出值向量设置为[-1:1/8:1]扩张模块的设置与压缩模块相反。
实验二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];实验三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信号');⑵仿真结果:①三角波原图②用矩形波近似的冲击函数③分解后的三角波④经低通还原的三角波。
通信原理实验报告实验一 数字基带传输实验一、实验目的1、提高独立学习的能力;2、培养发现问题、解决问题和分析问题的能力;3、学习Matlab 的使用;4、掌握基带数字传输系统的仿真方法;5、熟悉基带传输系统的基本结构;6、掌握带限信道的仿真以及性能分析;7、通过观测眼图和星座图判断信号的传输质量。
二、实验原理1. 带限信道的基带系统模型(连续域分析)输入符号序列 ————{al }发送信号 ————10()()L l d t al t lTb δ-==-∑ Tb 是比特周期,二进制码元周期发送滤波器 ————GT(w)或GT (t )发送滤波器输出 ————1100()()*()()*()()L L l b T l T b T l l x t d t t a t lT g t a g t lT g δ--====-=-∑∑ 信道输出信号或接收滤波器输入信号()()()y t x t n t =+接收滤波器 ()R G ω或()R G f接收滤波器输出信号10()()*()()*()*()()*()()()L R T R R l b R l r t y t g t d t g t g t n t g t a g t lT n t -===+=-+∑其中2()()()j ft T R g t G f G f e df π∞-∞=⎰如果位同步理想,则抽样时刻为b l T ⋅ 01l L =-:判决为 '{}l a2. 升余弦滚降滤波器1()||2s sH f T f T α-=≤; ()H f =111[1cos (||)]||2222s s s s sT T f f T T T παααα--++-<≤ ()H f = 10||2s f T α+>式中α 称为滚降系数,取值为0 <α ≤1, T s 是常数。
α = 0时,带宽为1/ 2T s Hz ;α =1时, 带宽为1/T s Hz 。
通信原理实验报告实验二 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)。