线性系统的波形变化和频谱分析matlab课程设计文档格式.docx
《线性系统的波形变化和频谱分析matlab课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《线性系统的波形变化和频谱分析matlab课程设计文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
2011年11月14日
设计任务书
课题
名称
线性系统的波形变化和频谱分析
设计
目的
1.巩固所学的信号与系统中线性信号的理论知识,理解信号的采集、处理、传输、显示和变换的过程;
2.综合运用专业及基础知识,培养自己解决实际问题的能力;
3.学习资料的收集与整理,学会撰写实验报告和设计任务报告。
实验
环境
1.微型电子计算机(PC);
2.安装Windows2000以上操作系统,MATLAB等开发工具。
任务
要求
1.选择一个正弦和一个余弦信号作为分析的对象,通过输入其频率、振幅及相位的参数得到两个完整的波形。
2.对其进行相加、相乘及卷积的处理,分别通过下拉菜单显示到图形界面上去,不断改变三个参数的取值,观察输出波形的变化。
3.通过下拉菜单对两个波形的其中的一个波形进行频域、振幅及傅里叶变换,观察波形形状和参数的变化。
摘要
通过改变信号的频率、振幅和相位引起信号的波形发生变化是信号与系统这门学科中非常重要的一个知识点,两个信号的相加、相乘、相卷积和每个信号的傅里叶变换是对线性系统进行频谱分析的重要部分。
利用MATLAB信号处理函数可以快速有效地设计两个信号的输出波形。
课题基于MATLAB有处理连续信号和离散信号的相关函数来设计与实现,综合运用信号系统中处理信号的理论知识对得到的波形进行一系列的变换和分析。
通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现。
在设计实现的过程中,使用GUI来设计整体界面,清晰的划分出每个模块该实现何种功能,让使用者能够清楚的知道每个模块的作用。
用FFT函数分别求了两个信号的傅里叶变换,还用了FFT和IFFT两个函数及利用频域和时域转换的卷积定理求得了两个连续信号的卷积和,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制。
通过对所得信号线性和频谱特性的分析,可知利用MATLAB信号处理函数可以有效快捷地设计信号自身的线性变换、信号之间的计算及信号的频谱分析,过程简单方便,结果的各项性能指标均达到指定要求。
关键词线性系统MATLABGUI卷积定理傅里叶变换波形变化
目录
1绪论1
2作品内容2
3作品的具体实现2
3.1正弦波和余弦波的形成2
3.2波形之间的逻辑运算3
3.3信号波参数及频域的变化6
3.4设计系统界面9
3.4.1系统界面设计工具—GUI概述9
3.4.2界面设计及使用说明9
3.5小结11
结论12
参考文献12
1绪论
线性(linear),指量与量之间按比例、成直线的关系,在数学上可以理解为一阶导数为常数的函数;
非线性(non-linear)则指不按比例、不成直线的关系,一阶导数不为常数。
线性系统是一数学模型,是指用线性运算子组成的系统。
相较于非线性系统,线性系统的特性比较简单。
线性系统需满足线性的特性,若线性系统还满足非时变性(即系统的输入信号若延迟τ秒,那么得到的输出除了这τ秒延时以外是完全相同的),则称为线性时不变系统。
在数字电路中,将逻辑函数输入变量的每一种可能出现的取值与对应的输出值按照时间顺序依次排列出来,就得到表示该逻辑函数的波形图。
波形图也称作时序图(timingdiagram)。
在逻辑分析仪和一些计算机仿真工具中,经常以这种波形图的形式给出分析结果,而我们现在分析的就是连续的波形通过改变它的振幅、频率及相位得到不同的波形。
傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。
在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。
一种对连续傅立叶变换的推广称为分数傅立叶变换当f(t)为奇函数(或偶函数)时,其余弦(或正弦)分量将消亡,而可以称这时的变换为余弦转换(cosinetransform)或正弦转换(sinetransform),而在MATLAB中我们通过FFT功能函数来实现信号的快速傅里叶变换,
卷积定理指出:
傅里叶变换可以化复杂的卷积运算为简单的乘积运算,从而提供了计算卷积的一种简单手段;
二个二维连续函数在空间域中的卷积可求其相应的二个傅立叶变换乘积的反变换而得。
反之,在频域中的卷积可用的在空间域中乘积的傅立叶变换而得。
利用卷积定理可以简化卷积的运算量。
对于长度为n的序列,按照卷积的定义进行计算,需要做2N-1组对位乘法,其计算复杂度为O(N*N);
而利用傅里叶变换将序列变换到频域上后,只需要一组对位乘法,利用傅里叶变换的快速算法之后,总的计算复杂度为O(N*logN)。
这一结果可以在快速乘法计算中得到应用。
随着MATLAB软件及信号处理工具箱的不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件。
它可以快速有效地绘制信号波形图、对信号进行分析和仿真,极大地减轻了工作量,对数据的处理既精确又形象。
2作品内容
选择一个正弦波和余弦波作为分析的对象,然后通过改变这两个波的振幅、频率和相位得到两个新波形。
然后利用MATLAB中的函数对两个波形进行相加,相乘和相卷积的运算,观察两个波进行数学运算后的新波形。
最后在所设计的系统界面上选择一种波来实现他的振幅、频率的倍数变化及傅里叶变化来得到新的波形图。
3作品的具体实现
3.1正弦波和余弦波的形成
通过使用者在GUI界面上输入的振幅、频率和相位得到一个正弦波和一个余弦波。
正弦波的产生:
globaly1;
%定义正弦波的全局变量y1
t=0:
0.001:
2*pi;
%定义参数t
w1=str2double(get(handles.edit1,'
string'
));
%第一个信号的频率
A1=str2double(get(handles.edit2,'
%第一个信号的振幅
N1=str2double(get(handles.edit7,'
%第一个信号的相位
y1=A1*sin(w1*t+N1);
%第一个信号的波形
axes(handles.axes3);
%在axe3号GUI图形板块上绘图
plot(t,y1);
余弦波的产生:
globaly2;
%定义正弦波的全局变量y2
w2=str2double(get(handles.edit3,'
%第二个信号的频率
A2=str2double(get(handles.edit4,'
%第二个信号的振幅
N2=str2double(get(handles.edit8,'
%第二个信号的相位
y2=A2*cos(w2*t+N2);
%第二个信号的波形
axes(handles.axes4);
plot(t,y2)
程序结果如下图:
图1正弦和余弦波形
3.2波形之间的逻辑运算
先利用MATLAB中的逻辑运算符对两个波形进行相乘和相加运算,然后利用MATLAB提供的快速傅里叶变换算法FFT的函数fft计算两个波的傅里叶变换后的乘积,接着用函数ifft对其进行傅里叶逆变换,调用格式如下:
y3=fft(y1).*fft(y2)
y4=ifft(y3);
相卷积利用的是卷积定理:
f(t)*h(t)<
=>
F(jw)H(jw)
f(t)h(t)<
1/(2*π)F(jw)*H(jw))
下面介绍fft和ifft的函数功能:
FFT(X)isthediscreteFouriertransform(DFT)ofvectorX.For
matrices,theFFToperationisappliedtoeachcolumn.ForN-D
arrays,theFFToperationoperatesonthefirstnon-singleton
dimension.
FFT(X,N)istheN-pointFFT,paddedwithzerosifXhasless
thanNpointsandtruncatedifithasmore.
FFT(X,[],DIM)orFFT(X,N,DIM)appliestheFFToperationacrossthe
dimensionDIM.
ForlengthNinputvectorx,theDFTisalengthNvectorX,
withelements
X(k)=sumx(n)*exp(-j*2*pi*(k-1)*(n-1)/N),1<
=k<
=N.
x(n)=(1/N)sumX(k)*exp(j*2*pi*(k-1)*(n-1)/N),1<
=n<
IFFT(X)istheinversediscreteFouriertransformofX.格式类似与iff,是傅里叶的逆变换函数。
其程序如下:
globaly3;
globaly4;
%第二个信号的波形
a=get(handles.gco,'
value'
);
axes(handles.axes1);
ifa==1
t=0:
y1=A1*sin(w1*t+N1)+A2*cos(w2*t+N2);
plot(t,y1);
elseifa==2
y2=A1*A2*sin(w1*t+N1).*cos(w2*t+N2);
plot(t,y2);
elseifa==3
y3=fft(y1).*fft(y2);
y4=ifft(y3);
plot(t,y4);
图2两个波之间的相加
图3两个波之间的乘
图4两个波之间的相卷积
3.3信号波参数及频域的变化
通过振幅、频率的倍数变化得到新的波形图,最后通过傅里叶变换对信号波的
频谱进行观察分析。
globalF1;
globalF2;
globalF3;
globalF4;
w1=str2dou