1、Matlab通信系统仿真实验报告材料Matlab通信原理仿真学号: 2142402 : 圣斌 实验一 Matlab 基本语法与信号系统分析一、 实验目的:1、掌握MATLAB的基本绘图方法;2、实现绘制复指数信号的时域波形。二、 实验设备与软件环境:1、实验设备:计算机2、软件环境:MATLAB R2009a三、 实验容:1、MATLAB为用户提供了结果可视化功能,只要在命令行窗口输入相应的命令,结果就会用图形直接表示出来。MATLAB程序如下:x = -pi:0.1:pi;y1 = sin(x); y2 = cos(x); %准备绘图数据figure(1); %打开图形窗口subplot(2
2、,1,1); %确定第一幅图绘图窗口plot(x,y1); %以x,y1绘图title(plot(x,y1); %为第一幅图取名为plot(x,y1)grid on; %为第一幅图绘制网格线subplot(2,1,2) %确定第二幅图绘图窗口plot(x,y2); %以x,y2绘图xlabel(time),ylabel(y) %第二幅图横坐标为time,纵坐标为y运行结果如下图:2、上例中的图形使用的是默认的颜色和线型,MATLAB中提供了多种颜色和线型,并且可以绘制出脉冲图、误差条形图等多种形式图:MATLAB程序如下:x=-pi:.1:pi;y1=sin (x);y2=cos (x);fi
3、gure (1);%subplot (2,1,1);plot (x,y1);title (plot (x,y1);grid on %subplot (2,1,2);plot (x,y2);xlabel (time);ylabel (y)subplot(1,2,1),stem(x,y1,r) %绘制红色的脉冲图subplot(1,2,2),stem(x,y1,g) %绘制绿色的误差条形图运行结果如下图:3、一个复指数信号可以分解为实部和虚部两部分。实际通信信道并不能产生复指数信号,但可以用复指数信号描述其他基本信号,因此在通信系统分析和仿真中复指数信号起到十分重要的作用。 从严格意义上讲,计算机
4、并不能处理连续信号。在MATLAB中,连续信号是用信号在等时间间隔点的采样值来近似表示的。当采样间隔足够小时,就可以比较好的近似连续信号。例如绘制复指数信号时域波形的MATLAB实现如下。MATLAB程序如下:function sigexp(a,s,w,t1,t2)%本函数实现绘制复指数信号时域波形%a:复指数信号幅度%s:复指数信号频率实部%w:复指数信号频率虚部%t1,t2:绘制波形的时间围t=t1:0.01:t2;theta=s+j*w;fc=a*exp(theta*t);real_fc=real(fc);imag_fc=imag(fc);mag_fc=abs(fc);phase_fc=
5、angle(fc);subplot(2,2,1);plot(t,real_fc);title();xlabel(t);axis(t1,t2,-(max(mag_fc)+0.2),max(mag_fc)+0.2);subplot(2,2,2)plot(t,imag_fc);title();xlabel(t);axis(t1,t2,-(max(mag_fc)+0.2),max(mag_fc)+0.2);subplot(2,2,3)plot(t,mag_fc);title();xlabel(t)axis(t1,t2,0,max(mag_fc)+0.5);subplot(2,2,4);plot(t,p
6、hase_fc);title();xlabel(t);axis(t1,t2,-(max(phase_fc)+0.5),max(phase_fc)+0.5);在命令行中输入sigexp(3,-0.3,5,0,5),得到下图:四、 实验感受 通过这次实验课的学习,我对MATLAB有了基本的认识,掌握了MATLAB的基本绘图方法,实现了绘制复指数信号的时域波形。通过将课堂知识用于实践操作,理解了MATLAB的仿真能力,学以致用,对书本知识有了更深的理解,激发了学习的兴趣。实验二 模拟信号的数字传输一、 实验目的:实现PCM的采样、量化和编码。二、 实验设备与软件环境:1、实验设备:计算机2、软件环境
7、:MATLAB R2009a三、 实验容:1、输入信号为一频率为10Hz的正弦波,管擦对于统一输入信号有不同的抽样频率是,恢复信号的不同形态。抽样仿真框图: (1)当抽样频率大于信号频率的两倍时,设置如下: Sine Wave模块设置:“Pulse Generator”模块设置:“Analog Filter Design”模块设置:“Gain”模块设置系数为10;Scope显示原始波形为:Scope1显示频率为30Hz的抽样信号波形为Scope2显示抽样后信号的波形为Scope3显示通过低通滤波器后恢复的信号波形为(2)当抽样频率等于信号频率的两倍时,抽样频率为20Hz,“Pulse Gene
8、rator”模块的“Period”设置为0.05,恢复信号波形为(3)当抽样频率小于信号抽样频率的两倍时,抽样频率为5Hz,“Pulse Generator”模块的“period”设置为0.2,恢复信号波形如下图所示2、设输入信号抽样值为+1270个量化单位,按照A律13折线特性编成8位码。量化单位指以输入信号归一化值的1/2048为单位。MATLAB程序如下。clear allclose all。x=+1270;if x0 out(1)=1;else out(1)=0;endif abs(x)=0 & abs(x)16 out(2)=0;out(3)=0;out(4)=0;step=1;st
9、=0;elseif 16=abs(x) & abs(x)32 out(i,2)=0;out(3)=0;out(4)=1;step=1;st=16;elseif 32=abs(x) & abs(x)64 out(2)=0;out(3)=1;out(4)=0;step=2;st=32;elseif 64=abs(x) & abs(x)128 out(2)=0;out(3)=1;out(4)=1;step=4;st=64;elseif 128=abs(x) & abs(x)256 out(2)=1;out(3)=0;out(4)=0;step=8;st=128;elseif 256=abs(x) &
10、 abs(x)512 out(2)=1;out(3)=0;out(i,4)=1;step=16;st=256;elseif 512=abs(x) & abs(x)1024 out(2)=1;out(3)=1;out(i,4)=0;step=32;st=512;elseif 1024=abs(x) & abs(x)=2048) out(2:8)=1 1 1 1 1 1 1;else tmp=floor(abs(x)-st/step); t=dec2bin(tmp,4)-48; %dec2binASCII480 out(5:8)=t(1:4)endout=reshape(out,1,8)四、 实验
11、感受:在这次实验过程中,我更深的理解了以PCM为代表的编码调制技术,实现了PCM的采样、量化、编码过程,将连续变化的模拟信号转变为数字信号,收获很大,课堂知识和实验相互印证,加深了我的理解。实验三 数字信号基带传输实验一、实验目的:1、基于MATLAB实现双极性归零码的代码与绘图;2、绘制眼图。二、实验设备与软件环境:1、实验设备:计算机2、软件环境:MATLAB R2009a三、实验容:1、用双极性归零码来表示二元信息序列100110000101,画出波形示意图。MATLAB程序如下:function y=drz(x)%本函数实现将输入的一段二进制代码编为相应的双极性归零码输出%输入x为二进
12、制码,输出y为编出的双极性归零码t0=300;t=0:1/t0:length(x); %定义对应的时间序列for i=1:length(x) %进行码型变换 if(x(i)=1) %若输入信息为1 for j=1:t0/2 y(t0/2*(2*i-2)+j)=1; %定义前半时间值为1 y(t0/2*(2*i-1)+j)=0; %定义后半时间值为0 end; else for j=1:t0/2 %反之,输入信息为0 y(t0/2*(2*i-2)+j)=-1; %定义前半时间值为-1 y(t0/2*(2*i-1)+j)=0; %定义后半时间值为0 end; end;endy=y,x(i); %给
13、序列y加上最后一位,便于作图M=max(y);m=min(y);subplot(2,1,1);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);程序运行结果如下:2、产生一个二进制随机方波序列,画出通过升余弦滤波器滤波后,方波的高频分量成分滤掉后绘出的眼图。MATLAB程序如下:x=randint(3000,1,2); %产生3000行1列的二进制随机数xy=0;rcosflt(x,1,10); %x通过一个升余弦滤波器得到yfigure(1)t=1:30061;plot(t,y);axis(1,300
14、,-0.5,1.5); %绘出y的时域图形grid on;eyediagram(y,20,4); %调用MATLAB函数绘出y的眼图t1=t;D=t1 y; %y与时间变量t1组成文件变量D程序运行结果如下:四、实验感受:在这次试验中,我学会了基于MATLAB实现双极型归零码的代码与绘制,学会了眼图的绘制。更加熟悉了软件的操作,对软件的功能也有了更深的认识,受益匪浅。实验四 载波调制的数字传输一、 实验目的:1.掌握2FSK的调制方法并写出代码;2.掌握BPSK的调制方法并写出代码。二、 实验设备与软件环境:1、实验设备:计算机2、软件环境:MATLAB R2009a三、 实验容:1、对二元序
15、列10110010,画出2FSK波形,设载波频率1=22=2Rb(码元速率)。载波信号1的频率1为码元速率的2倍,也就是说一个码元周期里有两个周期的载波信号1,载波信号2的频率2等于码元速率,也就是说一个码元周期里有一个周期的载波信号2。MATLAB程序如下:function fskdigital(s,f0,f1)%本程序实现 FSK 调制%s输入二进制序列,f0,f1两个载波信号的频率%调用举例:(f0,f1必须是整数)fskdigital(1 0 1 1 0 0 1 0,1,2)t=0:2*pi/99:2*pi; %初始定义cp=;mod=;bit=;for n=1:length(s) %
16、调制过程 if s(n)=0; cp1=ones(1,100); c=sin(f0*t); bit1=zeros(1,100); else s(n)=1; cp1=ones(1,100); c=sin(f1*t); bit1=ones(1,100); end cp=cp,cp1; mod=mod c; bit=bit bit1;endfsk=cp.*mod;subplot(2,1,1); %分别画出原信号、已调信号示意plot(bit,r);ylabel(Binary Signal);axis(0 100*length(s) -2.5 2.5);subplot(2,1,2);plot(fsk)
17、;grid on;ylabel(FSK modulation);axis(0 100*length(s) -2.5 2.5);end在命令窗口输入fskdigital(1 0 1 1 0 0 1 0,1,2)后运行结果如下:2、对二元序列10110010,画出BPSK波形,设载波频率为码元速率的2倍。载波信号的频率为码元速率的2倍,也就是说码元周期是载波周期的2倍,一个码元周期里有两个周期的载波信号。MATLAB程序如下:function bpskdigital(s,f)%本程序实现bpsk调制%s输入二进制序列,f载波信号的频率%调用举例:(f必须是整数)bpskdigital(1 0 1
18、1 0 0 1 0,2)t=0:2*pi/99:2*pi; %初始定义cp=;mod=;bit=;for n=1:length(s) %调制过程 if s(n)=0; cp1=-ones(1,100); bit1=zeros(1,100); else s(n)=1; cp1=ones(1,100); bit1=ones(1,100); end c=sin(f*t); cp=cp,cp1; mod=mod c; bit=bit bit1;endbpsk=cp.*mod;subplot(2,1,1); %分别画出原信号、已调信号示意plot(bit);grid on;ylabel(Binary Signal);axis(0 100*length(s) -2.5 2.5);subplot(2,1,2);plot(bpsk);grid on;ylabel(BPSK modulation);axis(0 100*length(s) -2.5 2.5);在命令窗口输入bpskdigital(1 0 1 1 0 0 1 0, 1)后运行结果如下:四、 实验感受:通过这次实验的学习,我掌握了利用MATLAB实现2FSK的调制方法并写出代码。并掌握了BPSK的调制方法并能够独立写出代码。收获很大,也更加激发了我对MATLAB的学习的热情,相信在以后会对这门课程做更加深入的学习。