MATLAB论文王喜.docx
《MATLAB论文王喜.docx》由会员分享,可在线阅读,更多相关《MATLAB论文王喜.docx(13页珍藏版)》请在冰豆网上搜索。
MATLAB论文王喜
基于MATLAB的通信系统仿真报告
教学院(部):
信息与通信工程学院
专业班级:
通信12-1BF
姓名:
王喜
学号:
14122302642
指导老师:
何伟
MATLAB基本使用及连续时间信号傅里叶级数分析
1.实验目的
1、学习MATLAB强大的图形处理、运算等功能。
2、深入研究连续时间信号傅里叶级数分析的理论知识。
2.实验原理
利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。
一、
MATLAB的基本使用
1、常用操作指定
在MATLAB指令窗中,常见的通用操作指定主要有:
clc清除指令窗中显示内容
clear清除MATLAB工作空间中保存的变量。
closeall关闭所有打开的图形窗口
cd设置当前工作目录。
clf清除图形窗内容。
dir列出指定目录下的文件和子目录清单。
edit打开m文件编辑器。
exit关闭/退出MATLAB。
quit关闭/退出MATLAB。
more使其后的显示内容分页进行。
type显示指定M文件的内容。
disp显示变量的内容。
what列出当前目录或指定目录下的文件。
lookfor按指定的关键字查找.m文件(在查找范围内)。
exist检查变量或函数文件的存在性。
fdatool打开滤波器设计分析工具箱
simulink打开仿真工具箱
!
运行外部程序(命令)。
例1、简单矩阵
的输入步骤。
(1)在键盘上输入下列内容
>>A=[1,2,3;4,5,6;7,8,9]
(2)按【Enter】键,指令被执行。
(3)在指令执行后,MATLAB指令窗中将显示以下结果:
A=
123
456
789
2、matlab绘图
matlab绘图命令比较多,如常用的MATLAB绘图语句有plot、stem、subplot、figure等。
关于figure有两种用法,一是创建一个新的图形窗口;二是将指定的n号窗口作为当前窗口,如果不存在,则新建并编号为n。
利用subplot命令可分割窗口。
利用title命令可给图加上标题,利用xlabel命令可给坐标轴加上说明,利用text或gtext命令可在图上任何位置加标注,利用grid命令可在图上画坐标网格线。
这些命令的调用格式,可参阅help查找。
1、Matlab一元函数绘图命令及符号意义如下表所示。
表1基本线型和颜色
符号
颜色
符号
线型
y
黄色
.
点
m
紫红
0
圆圈
c
青色
x
x标记
r
红色
+
加号
g
绿色
*
星号
b
兰色
-
实线
w
白色
:
点线
k
黑色
-.
点划线
--
虚线
表2二维绘图工具
grid
放置格栅
gtext
用鼠标放置文本
hold
保持当前图形
text
在给定位置放置文本
title
放置图标题
xlabel
放置x轴标题
ylabel
放置y轴标题
zoom
缩放图形
表3axis命令
axis([x1,x2,y1,y2])
设置坐标轴范围
axissquare
当前图形设置为方形
axisequal
坐标轴的长度单位设成相等
axisnormal
关闭axisequal和axissquare
axisoff
关闭轴标记、格栅和单位标志
axison
显示轴标记、格栅和单位标志
表4二维绘图函数
bar
条形图
hist
直方图
plot
简单的线性图形
polar
极坐标图形
2、绘图函数应用举例
例2:
画出
的图形。
clc;clear;closeall
x=linspace(0,2*pi,50);
y=sin(x);
plot(x,y,'r-','LineWidth',2)
title('正弦曲线');
xlabel('自变量x')
ylabel('函数y')
text(0,1.2,'y=sinx')
axis([0,6.5,-1.1,1.1])
grid
3、
运算功能实例
例3、
解:
将e(t)代入微分方程,得0时刻方程:
求初始条件:
clc;closeall;clear;formatcompact;
ai=[1,7,10],ck=[0,2,12],yos=[4/5,0];%三组向量
disp('起始状态:
'),disp(yos);%显示起始状态
L=length(ai);Ma=zeros(L,L);
fori=1:
L;forj=i:
L;Ma(i,j)=ai(j-i+1);end;end
d=ck/Ma;fork=1:
L-1;yic(k)=yos(k)+d(k+1);end
disp('初始条件:
'),disp(yic);%显示初始条件
二、用MATLAB实现周期信号的傅里叶级数分解与综合
以周期矩形波信号为例,绘出包含不同谐波次数的合成波形,观察合成波形与原矩形波形之间的关系及吉布斯现象。
周期信号要能进行傅里叶级数展开,得满足“狄利克雷(Dirichlet)条件”:
(1)在一周期内,如果有间断点存在,则间断点的数目应是有限个。
(2)在一周期内,极大值和极小值的数目应是有限个。
(3)
在一个周期内,信号是绝对可积,即
等于有限值(
为周期)
原矩形波:
以矩形波为例:
矩形波可表示为
其中:
设
,则:
例4、绘n=0、1、2时三个分量的波形图及前16项分量相加波形图
clc;closeall;clear;formatcompact;
a0=0.2,%求直流分量
n=1:
15,%设置谐波个数,值越大合成波形越接近原始信号
an=0.4*sin(0.2*pi*n)./(0.2*pi*n),%求各谐波分量
t=[-1.5:
0.01:
1.5];
y0=a0;plot(t,y0,'k:
'),%用黑虚线绘直流分量
holdon;%在同一窗口绘图
y1=an
(1)*cos(1*2*pi*t);plot(t,y1,'r:
'),%用红虚线绘基波分量
y2=an
(2)*cos(2*2*pi*t);plot(t,y2,'b:
'),%用蓝虚线绘二次谐波
y=y0;%开始累加前n项
fori=1:
length(n);yi=an(i)*cos(i*2*pi*t);y=y+yi;end
plot(t,y,'k','LineWidth',2),%用黑实线绘分量叠加信号
吉布斯现象Gibbsphenomenon(又叫吉布斯效应):
将具有不连续点的周期函数(如矩形脉冲)进行傅立叶级数展开后,选取有限项进行合成。
当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点。
当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的9%。
谐波次数N=50时的合成波
谐波次数N=100时的合成波
谐波次数N=500时的合成波
由图可以看出,谐波次数N越大,合成波与原矩形波越相同了,但是在某些点合成波会有大的波动,这就是非常明显的吉布斯现象。
3、用MATLAB实现周期信号的单边频谱及双边频谱。
以周期矩形波形信号为例:
例5、1、绘
幅频特性曲线图程序
clc;closeall;clear;formatcompact;
a0=0.2,%求直流分量
n=1:
15,an=0.4*sin(0.2*pi*n)./(0.2*pi*n),%求谐波分量
cn=[abs(a0),abs(an)],%生成幅度谱
f=[0,n*1],%生成频率横坐标
stem(f,cn,'.'),%绘幅度频谱
xlabel('频率f');ylabel('幅度谱cn');
title('周期矩形信号的幅度谱');
holdon;%叠加包络线
fb=linspace(0,15,100);
cnb=abs(0.4*sin(0.2*pi*fb+eps)./(0.2*pi*fb+eps));
plot(fb,cnb,'r:
'),
矩形波信号单边频谱矩形波信号双边频谱
由图可看出周期信号频谱的三大特点:
(1)离散性,即谱线是离散的。
(2)谐波性,即谱线只出现在基波频率的整数倍上。
(3)收敛性,即谐波的幅度随谐波次数的增高而减小。
分析两者关系:
单边频谱和双边频谱的区别就是求值的范围不同,单边频谱求的是频率大于0的情况,而双边频谱求的是所有频率的情况。
同一信号双边频谱的振幅谱是单边频谱的偶对称。
4、用MATLAB实现典型周期信号的幅值谱和相位谱。
以周期三角波为例:
周期三角信号是关于纵轴对称,满足f(t)=f(-t),所以它是偶函数。
它的傅里叶级数是:
例6、产生峰值为1的三角波,分析其0~63次谐波的幅值谱和相位谱
clf;
Fs=128;%采样频率
T=1/Fs;%采样周期
N=128;%采样点数
t=(0:
N-1)*T;%时间,单位:
S
x=zeros(N);
forn=0:
N-1
b=fix((n)/(N/4));
m=n+1;
A=1/(N/4);
ifb==0
x(m)=A*n;
elseifb==1||b==2
x(m)=A*(N/2-n);
elseifb==3
x(m)=A*(n-N);
end;
end;
n=0:
N-1;
subplot(3,1,1)
plot(t,x);
xlabel('时间/S');
ylabel('振幅');title('时域波形');gridon;
y=fft(x,N);%对信号进行快速Fourier变换
mag=abs(y)*2/N;%求取Fourier变换的振幅;*2/N转变为真实幅值
f=n*Fs/N;
subplot(3,1,2)
plot(f(1:
N/2),mag(1:
N/2));%绘出Nyquist频率之前随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('幅值谱');gridon;
p=mod(angle(y)*180/pi,360);
subplot(3,1,3)
plot(f(1:
N/2),p(1:
N/2));%绘出Nyquist频率之前随频率变化的相位
xlabel('频率/Hz');
ylabel('振幅');title('相位谱');gridon;
由图我们可以看得出,三角信号的幅值谱是随频率的增加而变小的,而相位谱是无具体变化。
三、心得与总结
通过初步对matlab的学习,我觉得收获很大。
我了解到matlab是一个功能很大的数学实验软件,即一个很好的计算机数学软件平台。
我在学习matlab主要是围绕实验以及课堂中老师要求的题目的求解。
初步学习了一些简单的运算以及简单的图形,在做书上的实验中得到了实践各种矩形的计算为我们提供了很多的方便,在我们的生活也有很大的作用。
但现在我所学到的matlab技术还是很初步的,但是我已经了解到matlab的实用性很大,学习好这门技术对我日后的发展有很大的帮助,所以在今后的学习中,我会继续深入学习这门技术。
同时,这次的学习让我巩固了傅里叶级数等知识,狄利克雷条件,矩形波等信号的合成与分解,以及应用函数来求解响应。
参考资料:
[1]张登奇Matlab快速入门(2014版)
[2]张登奇信号与系统课件第二章
[2]张德丰MATLABSIMULINK建模与仿真实例精讲