通信原理matlab实验1
- 格式:pdf
- 大小:432.54 KB
- 文档页数:5
一: 低通信号抽样定理1: 仿真思路:t+2 -2≤t≤-1信号 x(t)= 1 -1<t≤1-t+2 1<t≤20 其他信号x(t)经傅里叶变换可得X(f)=4sin c2(2f)-sinc2(f)2:程序代码%参数设置ts=0.2;fs=1/ts;df=0.01;f1=[-2.5:0.001:2.5]; %根据采样定理进行抽样x=[zeros(1,10),[0:0.2:1],ones(1,9),[1:-0.2:0],zeros(1,10)]; %对采样信号进行FFT[X,x,df1]=fftseq(x,ts,df);X1=X/fs;f=[0:df1:df1*(length(x)-1)]-fs/2; %解析法计算信号幅度谱y=4*(sinc(2*f1)).^2-(sinc(f1)).^2;%绘图指令subplot(2,1,1)plot(f1,abs(y));xlabel('f')title('解析法求得的x(t)幅度谱')subplot(2,1,2)plot(f,fftshift(abs(X1)));xlabel('f')title('根据采样定理(数值法)求得的x(t)幅度谱')另: FFT算法程序 matlab 上没有,需要在网上找到,并保存到matlab 函数库中。
下面是图形截屏:二:模拟信号幅度调制解调及噪声对其影响1,:仿真思路(1) 首先利用载波对信号进行调制,采用常规的AM调制方式。
V(t)=(1+amn(t))coswct(2) 利用包络检波方式解调。
v(t)的包络v(t)=(uc 2(t)+us2(t))0.5(3) 加入噪声。
2:程序代码echo ont0=0.15; %信号m(t)ts=0.001; %采样间隔fc=250; %载频a=0.85; %调制指数fs=1/ts; %采样频率t=[0:ts:t0]; %时间取值df=0.25;m=[ones(1,t0/(3*ts)),-2*ones(1,t0/(3*ts)),zeros(1,t0/(3*ts)+1)]; %信号c=cos(2*pi*fc.*t); %载波m_n=m/max(abs(m)); %单位化信号[M,m,df1]=fftseq(m,ts,df); %傅里叶变化f=[0:df1:df1*(length(m)-1)]-fs/2; %频率向量u=(1+a*m_n).*c; %已调信号[U,u,df1]=fftseq(u,ts,df); %傅里叶变化env=env_phas(u); %包络检波dem1=2*(env-1)/a;signal_power=spower(u(1:length(t))); %已调信号的功率 noise_power=signal_power/100; %噪声功率noise_std=sqrt(noise_power);noise=noise_std*randn(1,length(u));r=u+noise; %添加噪声[R,r,df1]=fftseq(r,ts,df);env_r=env_phas(r); %包络检波dem2=2*(env_r-1)/a; %有噪声时的解调信号pausesubplot(2,1,1)plot(t,m(1:length(t)))axis([0 0.15 -2.1 2.1])xlabel('时间')title('消息信号')pauseclfsubplot(2,1,1)plot(t,u(1:length(t)))axis([0 0.15 -2.1 2.1])xlabel('时间')title('已调信号')subplot(2,1,2)plot(t,env(1:length(t)))xlabel('时间')title('已调信号的包络')pauseclfsubplot(2,1,1)plot(t,dem1(1:length(t)))xlabel('时间')title('解调后的信号')subplot(2,1,2)plot(t,dem2(1:length(t)))xlabel('时间')title('有噪声的解调后的信号')pauseclfsubplot(2,1,1)length(m)plot(f,fftshift(abs(M)));axis([-400,400,0,150]);title('原始信号的幅度谱')subplot(2,1,2)plot(f,fftshift(abs(U))); axis([-400,400,0,100]); title('已调信号的幅度谱'); 仿真结果截图:三:单边带调幅系统的建模仿真1:程序代码:t0=0.15; %信号持续时间ts=0.001; %采样时间间隔Fc=250; %载波频率Fs=1/ts; %采样频率df=0.3; %频率分辨率t=[0:ts:t0]; %时间矢量m=[ones(1,t0/(3*ts)),-2*ones(1,t0/(3*ts)),zeros(1,t0/(3*ts)+1)]; c=cos(2*pi*Fc*t); %载波信号b=sin(2*pi*Fc*t);ussb=m.*c-imag(hilbert(m)).*b; %上边带调制信号lssb=m.*c+imag(hilbert(m)).*b; %下边带调制信号[M,m,dfl]=fft_seq(m,ts,df); %傅里叶变化M=M/Fs;[U,ussb,dfl]=fft_seq(ussb,ts,df);U=U/Fs;[L,lssb,dfl]=fft_seq(lssb,ts,df);f=[0:dfl:dfl*(length(m)-1)]-Fs/2; %频率矢量subplot(2,2,1);plot(t,ussb(1:length(t))); %上边带调制信号title('上边带调制信号');subplot(2,2,2);plot(t,lssb(1:length(t)));title('下边带调制信号'); %下边带调制信号subplot(2,2,3);plot(f,abs(fftshift(U)));title('上边带调制信号频谱 '); %上边带调制信号频谱subplot(2,2,4);plot(f,abs(fftshift(U)));title('下边带调制信号频谱'); %下边带调制信号频谱注:傅里叶变化函数fft_seq需要自己定义图像截屏:四:双边带调幅系统的建模仿真1:仿真原理:1 0≤t≤t/3设消息信号:m(t)= -2 t0/3≤t≤2t/30其它用信号m(t)一DSB-AM方式调制载波c(t)=cos(2pift)所得到的已调信号记为cu(t).设t0=0.15s,fc=250Hz。
AM/DSB实验一、实验目的:学会利用MATLAB两种仿真方法对AM/DSB仿真。
通过实验提高学生实际动手能力和编程能力,为日后从事通信工作奠定良好的基础。
二、实验内容:(1)设调制信号m(t)=cos(2*π*fh*t),fh=0.2Hz,直流分量A=1,载波c(t)=cos(2*π*fc*t),fc=2Hz,编程画出调制信号、载波及AM的图形。
(2)采用Simulink对AM及DSB调制解调过程进行仿真。
三、程序和实验结果:(1)程序(a)AM调制解调%AM调制程序clf;clear;t=0:0.001:20;fc=2;fh=0.2;A=1;mt=cos(2*pi*fh*t);subplot(3,1,1);plot(t,mt);carrier=cos(2*pi*fc*t);smt=(A+mt).*carrier;subplot(3,1,2);plot(t,carrier);subplot(3,1,3);plot(t,smt);(b)DBS调制解调%DSB调制程序clf;clear;t=0:0.001:20;fc=2;fh=0.2;mt=cos(2*pi*fh*t); subplot(3,1,1);plot(t,mt);carrier=cos(2*pi*fc*t); smt=(mt).*carrier; subplot(3,1,2);plot(t,carrier);subplot(3,1,3);plot(t,smt);(2)simulink(a)AM仿真模型参数设定:sine Wave中frequency设为5rad/sec,sine Wave及sine Wave2中frequency设为40rad/sec,Analog Filter Design中的Design method设为Butterworth,Filter type设为Lowpass,Passband edge frequency设为6,点击scope中的图标,设置number of axes为3。
通信原理matlab实验报告《通信原理matlab实验报告》在现代通信系统中,通信原理是至关重要的一部分。
为了更好地理解和应用通信原理,我们进行了一系列的实验,并在本报告中分享我们的实验结果和分析。
首先,我们使用了Matlab软件进行了频谱分析实验。
通过对信号的频谱进行分析,我们能够更好地了解信号的频率分布特性,从而为信号的传输和处理提供了重要的参考。
在实验中,我们使用了不同的信号类型,并通过Matlab的频谱分析工具对其进行了分析。
通过实验结果,我们发现不同类型的信号在频谱上呈现出不同的特征,这为我们在实际通信系统中的信号处理提供了重要的指导。
其次,我们进行了调制解调实验。
调制是将数字信号转换为模拟信号的过程,而解调则是将模拟信号转换为数字信号的过程。
在实验中,我们使用Matlab模拟了调制解调过程,并通过实验结果验证了调制解调的正确性。
通过这一实验,我们深入理解了调制解调的原理和过程,并为实际通信系统中的信号处理提供了重要的参考。
最后,我们进行了信道编码解码实验。
信道编码是为了提高通信系统的可靠性和抗干扰能力而进行的一种技术手段。
在实验中,我们使用Matlab对信道编码进行了模拟,并通过实验结果验证了信道编码的效果。
通过这一实验,我们更加深入地理解了信道编码的原理和作用,为实际通信系统中的信号处理提供了重要的参考。
综上所述,通过本次实验,我们更加深入地理解了通信原理的相关知识,并通过Matlab软件进行了实际操作,加深了对通信原理的理解和应用。
这些实验结果对我们今后在通信系统设计和应用中将起到重要的指导作用。
希望通过这份实验报告的分享,能够对通信原理的学习和应用有所帮助。
湘潭大学通信原理实验报告书课程名称:通信原理题目:数字基带传输系统的MATLAB仿真模拟信号幅度调制仿真实验学生姓名:唐绪泉学号:2010964530班级:2010级通信工程班指导教师:王仕果2012年12 月实验一数字基带传输系统的MATLAB仿真一、实验目的:1、熟悉和掌握常用的用于通信原理时域仿真分析的MATLAB函数;2、掌握连续时间和离散时间信号的MATLAB产生;3、牢固掌握冲激函数和阶跃函数等函数的概念,掌握卷积表达式及其物理意义,掌握卷积的计算方法、卷积的基本性质;4、掌握利用MATLAB计算卷积的编程方法,并利用所编写的MATLAB程序验证卷积的常用基本性质;5、掌握MATLAB描述通信系统中不同波形的常用方法及有关函数,并学会利用MATLAB求解系统功率谱,绘制相应曲线。
二、实验内容1、编写MATLAB程序产生离散随机信号2、编写MATLAB程序生成连续时间信号3、编写MATLAB程序实现常见特殊信号三、实验原理:从通信的角度来看,通信的过程就是消息的交换和传递的过程。
而从数学的角度来看,信息从一地传送到另一地的整个过程或者各个环节不外乎是一些码或信号的交换过程。
例如信源压缩编码、纠错编码、AMI编码、扰码等属于码层次上的变换,而基带成形、滤波、调制等则是信号层次上的处理。
码的变换是易于用软件来仿真的。
要仿真信号的变换,必须解决信号与信号系统在软件中表示的问题。
3.1 信号及系统在计算机中的表示3.1.1 时域取样及频域取样一般来说,任意信号s(t)是定义在时间区间(-∞,+∞)上的连续函数,但所有计算机的CPU都只能按指令周期离散运行,同时计算机也不能处理(-∞,+∞)这样一个时间段。
为此将把s(t)按区间,22TT⎡⎤−⎢⎥⎣⎦截短为s T(t),再对s T(t)按时间间隔Δt均匀取样,得到取样点数为:TNtt=Δ (3-1)仿真时用这个样值集合来表示信号s(t)。
显然Δt反映了仿真系统对信号波形的分辨率,Δt越小,则仿真的精确度越高。
通信原理实验报告matlab《通信原理实验报告:MATLAB》摘要:本实验报告基于通信原理课程的实验要求,利用MATLAB软件进行了一系列的实验。
通过实验,我们深入了解了通信原理中的一些重要概念和技术,并通过MATLAB软件进行了模拟和分析。
本实验报告将详细介绍实验的目的、原理、实验步骤、实验结果和分析,以及对实验过程中遇到的问题和解决方法进行了总结和讨论。
1. 实验目的本实验旨在通过使用MATLAB软件进行通信原理相关的实验,加深对通信原理中的相关概念和技术的理解,并通过实际操作加强对课程知识的掌握和应用能力。
2. 实验原理在本实验中,我们将涉及到通信原理中的一些重要概念和技术,包括信号的调制与解调、信道编码、信道调制等内容。
通过MATLAB软件,我们可以对这些概念和技术进行模拟和分析,从而更好地理解其原理和应用。
3. 实验步骤本实验中,我们将根据实验要求,依次进行一系列的实验步骤,包括信号的调制与解调、信道编码、信道调制等内容。
通过MATLAB软件,我们将对这些实验步骤进行模拟和分析,得到实验结果。
4. 实验结果和分析在实验过程中,我们得到了一系列的实验结果,并进行了详细的分析。
通过对这些实验结果的分析,我们可以更好地理解通信原理中的相关概念和技术,并加深对课程知识的理解和掌握。
5. 实验总结和讨论在实验过程中,我们也遇到了一些问题,并通过一些方法进行了解决。
在本部分,我们将对实验过程中遇到的问题和解决方法进行总结和讨论,以便更好地应对类似的实验问题。
通过本次实验,我们加深了对通信原理中的相关概念和技术的理解,并通过MATLAB软件进行了模拟和分析,得到了一系列的实验结果。
这些实验结果将有助于我们更好地理解通信原理中的相关知识,并加强对课程知识的掌握和应用能力。
同时,本次实验也为我们今后的学习和研究提供了一定的参考和借鉴。
实验教程目录实验一:连续时间信号与系统的时域分析-------------------------------------------------6一、实验目的与要求---------------------------------------------------------------------------6二、实验原理-----------------------------------------------------------------------------------61、信号的时域表示方法------------------------------------------------------------------62、用MATLAB仿真连续时间信号和离散时间信号----------------------------------73、LTI系统的时域描述-----------------------------------------------------------------11三、实验步骤与内容--------------------------------------------------------------------------15四、实验报告要求-----------------------------------------------------------------------------26实验二:连续时间信号的频域分析一、实验目的与要求--------------------------------------------------------------------------27二、实验原理----------------------------------------------------------------------------------271、连续时间周期信号的傅里叶级数CTFS---------------------------------------------272、连续时间信号的傅里叶变换CTFT--------------------------------------------------283、离散时间信号的傅里叶变换DTFT -------------------------------------------------284、连续时间周期信号的傅里叶级数CTFS的MATLAB实现------------------------295、用MATLAB实现CTFT与其逆变换的计算---------------------------------------33三、实验步骤与内容----------------------------------------------------------------------3 4四、实验报告要求-------------------------------------------------------------------------48实验三:连续时间LTI系统的频域分析---------------------------------------------------49一、实验目的与要求--------------------------------------------------------------------------49二、实验原理----------------------------------------------------------------------------------491、连续时间LTI系统的频率响应2、LTI系统的群延时---------------------------------------------------------------------503、用MATLAB计算系统的频率响应--------------------------------------------------50三、实验步骤与内容----------------------------------------------------------------------5 1四、实验报告要求-------------------------------------------------------------------------58实验四:调制与解调以与抽样与重建------------------------------------------------------59一、实验目的与要求--------------------------------------------------------------------------59二、实验原理----------------------------------------------------------------------------------591、信号的抽样与抽样定理---------------------------------------------------------------592、信号抽样过程中的频谱混叠----------------------------------------------------------623、信号重建-------------------------------------------------------------------------------624、调制与解调----------------------------------------------------------------------------------645、通信系统中的调制与解调仿真---------------------------------------------------------66三、实验步骤与内容------------------------------------------------------------------------66四、实验报告要求---------------------------------------------------------------------------75实验五:连续时间LTI系统的复频域分析----------------------------------------------76一、实验目的与要求------------------------------------------------------------------------76二、实验原理--------------------------------------------------------------------------------761、连续时间LTI系统的复频域描述--------------------------------------------------762、系统函数的零极点分布图-----------------------------------------------------------------773、拉普拉斯变换与傅里叶变换之间的关系-----------------------------------------------784、系统函数的零极点分布与系统稳定性和因果性之间的关系------------------------795、系统函数的零极点分布与系统的滤波特性-------------------------------------------806、拉普拉斯逆变换的计算-------------------------------------------------------------81三、实验步骤与内容------------------------------------------------------------------------82四、实验报告要求---------------------------------------------------------------------------87附录:授课方式和考核方法-----------------------------------------------------------------88实验一信号与系统的时域分析一、实验目的1、熟悉和掌握常用的用于信号与系统时域仿真分析的MATLAB函数;2、掌握连续时间和离散时间信号的MATLAB产生,掌握用周期延拓的方法将一个非周期信号进展周期信号延拓形成一个周期信号的MATLAB编程;3、结实掌握系统的单位冲激响应的概念,掌握LTI系统的卷积表达式与其物理意义,掌握卷积的计算方法、卷积的根本性质;4、掌握利用MATLAB计算卷积的编程方法,并利用所编写的MATLAB程序验证卷积的常用根本性质;掌握MATLAB描述LTI系统的常用方法与有关函数,并学会利用MATLAB求解LTI系统响应,绘制相应曲线。
通信原理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(Simulink)《通信原理》实验仿真(模拟部分)基于Matlab(Simulink)《通信原理》实验仿真(模拟部分)摘要模拟通信在通信系统中的使用非常广泛,而MATLAB(Simulink)是用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,它可以解决包括信号和图像处理、通讯等众多应用领域中的问题。
利用MATLAB集成环境下的M文件和Simulink工具箱可以完成通讯系统设计与仿真,本文主要是利用MATLAB集成环境下的M文件,编写程序来实现AM、FM、VSB调制与解调过程,并分别绘制出其信号波形。
再通过Simulink工具箱对模拟通信系统进行建模仿真。
Simulation of communication in a communication system is very extensive, and the use of MATLAB (Simulink) is used to algorithm development, data visualization, data analysis and numerical calculation of the senior technical calculation language and interactive environment, it can solve the including signal and image processing, communicationetc many applications in question. MATLAB integration environment Mfiles and Simulink tool box can complete communication system design and simulation, this paper is mainly use of MATLAB integration environment, programming of the M files to achieve AM, FM, VSB modulation and demodulation process, and separately plot its signal waveform. Again through Simulink communication system toolbox of simulation modeling simulation .关键词模拟信号;AM;FM;VSB;调制解调;MATLAB(Simulink)目录:第一章绪论第二章理论与方法2.1 matlab简介2.2 Simulink简介2.3 通信原理概述第三章设计方案3.1用 MATLAB的M文件进行模拟调制3.1.1 基于MATLAB的AM信号调制与解调3.1.2 基于MATLAB的FM信号调制与解调3.1.3 基于MATLAB的VSB信号调制与解调3.2用Simulink对模拟通信系统进行建模仿真3.2.1频分复用和超外差接收机的仿真模型3.2.2调频立体声接收机模型第四章小结参考文献致谢附录1:程序清单第一章绪论调制在通信系统中的作用至关重要。
数据通信原理实验的MATLAB仿真讲义MATLAB原意为“矩阵实验室—MA-TrixLABoratory”,它是目前控制界国际上最流行的软件,它除了传统的交互式编程之外,还提供了丰富可靠的矩阵运算、图形绘制、数据和图象处理、Windows编程等便利工具。
MATLAB还配备了大量工具箱,特别是还提供了仿真工具软件SIMULINK。
SIMULINK这一名字比较直观地表明了此软件的两个显著的功能:SIMU(仿真)与LINK(连接),亦即可以利用鼠标在模型窗口上“画”出所需的系统模型,然后利用SIMULINK提供的功能对控制系统进行仿真和线性化分析。
MATLAB在80年代一出现,首先是在控制界得到研究人员的瞩目。
随着MA T-LAB软件的不断完善,特别是仿真工具SIMULINK的出现,使MA TLAB的应用范围越来越广。
MATLAB的仿真环境(simulink)提供的系统模型库包括以下几个子模型库:Sources(输入源)、Sinks(输出源)、Discrete(离散时间系统)、Linear(线性环节)、Non-linear(非线性环节)、Connections(连接及接口)、Extras(其它环节)。
打开子模型库,你会发现每个模型库都包含许多个子模块,比如Sources模型库里含有阶跃函数、正弦函数、白噪声函数、MATLAB空间变量、信号发生器等子模块。
另外在Extras子模型库下还有一个BlockLibrary,集中了子模型库中最常用及其它常用的子模块,使用起来特别方便。
通信系统一般都可以建立数学模型,在数学模型中,主要包括乘法器、加法器、信号发生器、滤波器等,而这些在上述的simulink 系统模型库中一般都可找到,对于没有的模块(如伪随机信号发生器),可自己根据掌握的技术生成所需的子模块,随时调用。
这样就可根据数学模型,建立通信系统的仿真模型。
应用MA TLAB下的SIMULINK仿真工具可以很方便地进行通信系统仿真,利用SIMULINK仿真工具下的现有子模块进行仿真。
用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、用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 。
MATLAB实验指导书张龙河北工程大学信电学院通信工程系2012年12月实验一熟悉MATLAB环境[实验目的]1.熟悉MATLAB主界面,学会常用的窗口的操作2.学会简单的矩阵输入3.熟悉MATLAB基本语句的使用、矩阵与向量的基本运算[实验原理]1. 用户第一次使用MATLAB时,可通过demo命令,启动MATLAB的演试程序,领略MATLAB所提供的强大的运算与绘图功能。
也可以键入help进行进一步了解。
2.MATLAB 是以矩阵作为基本编程单元的一种程序设计语言。
它提供了各种矩阵的运算与操作,并有较强的绘图功能。
在MATLAB中输入矩阵最方便的的方式是直接输入矩阵的元素,其方法为:1)用中括号[ ]把所有矩阵元素括起来;2)同一行的不同数据元素之间用空格或逗号间隔;3)用分号(;)指定一行结束;4)也可以分成几行进行输入,用回车符代替分号;5)矩阵元素可以是任何matlab表达式(系统将自动计算结果),可以是实数,也可以是复数,复数可用特殊函数i,j 输入。
3.MATLAB语言最基本的赋值语句结构为:变量=表达式。
表达式由操作符或其它字符,函数和变量名组成,表达式的结果为一个矩阵,显示在屏幕上,同时输送到一个变量(ans为默认)中并存放于workspace工作空间中以备调用。
[实验内容]1.(1)用空格或逗号输入矩阵A=[1 2 3;4 5 6;7 8 9] B=[9,8,7;6,5,4;3,2,1];C=[4,5,6;7,8,9;1,2,3];或A=[1,2,3;4,5,6;7,8,9](2)试用回车代替A中的分号,观察输出结果。
要求:总结矩阵的输入2.用edit或选择File|new菜单中的M-file进入编辑器,输入:Base=[9,8,7;6,5,4;3,2,1];Base_info=Base+1保存为Base.m文件,并通过Debug中的run命令(或F5)运行之,观察有何异常现象。
实验一
设计任务:
用MatLib仿真一个BFSK通信系统,基本参数:
1)fc=1000Hz;
2)Rb=100bps;
3)信息序列:“Hello world”的ASCII
实验与报告基本要求:
1)Matlab程序,要点旁注(可打印后手写);
2)绘出信号波形,绘出信号PSD;
3)给出解调后的信息序列;
4)将信息重复3遍以上,FSK信号保存为WAV文件格式,使用音频播放,聆听;M文件:
wave.m
function[t,mt]=wave(m,dt,fs)
l=length(m);
mt=[];
ddt=1/fs;
n=floor(dt*fs);
m_add=ones(1,n);
for i=1:l
if(m(i))
mt=[mt,m(i),m_add];
else
mt=[mt,m(i),m_add*0];
end
t=(1:((n+1)*l))*ddt;
end
my_filter.m
function[num,den]=my_filter(wp,ws,ap,as)
if nargin<4
as=15;
end
if nargin<4
ap=3;
end
[n,wn]=buttord(wp,ws,ap,as);
[num,den]=butter(n,wn);
end
代码:
f0=800;%‘0’码载波频率
f1=1200;%‘1’码载波频率
fs=4000;%采样频率
Rb=100;%比特率
dt=1/Rb;%一个比特发送时间
A0=2;%调制幅度
A1=2;%相干解调幅度
miu=0;sigma=0.3;%miu:高斯白噪声均值,sigma:高斯白噪声均方差
str='Hello world';%信号字符串
m_dec=abs(str);%将信号字符串转换成ASCII码(十进制) m_bin=dec2bin(m_dec,8);
m_bin=abs(m_bin)-48;%将十进制转换成8比特二进制矩阵
m=[];
for i=1:size(m_bin,1)
m=[m,m_bin(i,:)];
end%将二进制转换成行向量
[t,m]=wave(m,dt,fs);%对信号采样
mt_f1=m.*cos(2*pi*f1*t)*A0;%频率f1调制
mt_f0=(~m).*cos(2*pi*f0*t)*A0;%频率f0调制
mt=mt_f1+mt_f0;%发送信号
l=length(mt);
subplot(2,1,1);plot(t,mt);
grid on;xlabel('t/s');title('m(t)');%发送信号波形subplot(2,1,2);periodogram(mt,[],l,fs);grid on;%发送信号PSD
nt=normrnd(miu,sigma,1,l);%噪声
st=mt+nt;%接收信号
wp0=[0.65,1.05]/2;ws0=[0.7,0.9]/2;
[num0,den0]=my_filter(wp0,ws0);%产生650HZ<f<1050HZ带通滤波器
st_f0=filter(num0,den0,st);%过滤噪声
wp0=0.01;ws0=0.1;
[num0,den0]=my_filter(wp0,ws0);%产生20HZ<f<200HZ低通滤波器
st_f0=filter(num0,den0,st_f0.*cos(2*pi*f0*t)*A1);%相干解调并通过低通滤波器
wp1=[1.05,1.35]/2;ws1=[1.1,1.3]/2;
[num1,den1]=my_filter(wp1,ws1);%产生1050HZ<f<1350HZ 带通滤波器
st_f1=filter(num1,den1,st);%过滤噪声
st_f1=filter(num0,den0,st_f1.*cos(2*pi*f1*t)*A1);%相干解调并通过低通滤波器
figure(2);
subplot(2,1,1);
plot(t,st_f0);grid on;
xlabel('t/s');title('st_f0');%f0解调波形
subplot(2,1,2);
plot(t,st_f1);grid on;
xlabel('t/s');title('st_f1');%f1解调波形
m_r=(st_f1>st_f0);%判决输出
figure(3);
plot(t,m_r,'r');grid on;
xlabel('t/s'),title('m_r');%m_r波形
wavwrite(repmat(m_r,1,5),'hello.wav');
波形:
1.发送信号及其PSD:
2.解调后f0,f1信号
3.判决后波形:。