连续非周期信号的傅立叶变换及其MATLAB实现.docx
- 文档编号:7421719
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:35
- 大小:387.97KB
连续非周期信号的傅立叶变换及其MATLAB实现.docx
《连续非周期信号的傅立叶变换及其MATLAB实现.docx》由会员分享,可在线阅读,更多相关《连续非周期信号的傅立叶变换及其MATLAB实现.docx(35页珍藏版)》请在冰点文库上搜索。
连续非周期信号的傅立叶变换及其MATLAB实现
连续非周期信号的傅立叶变换及其MATLAB实现
摘要
MATLAB是矩阵实验室(MatrixLaboratory)之意。
除具备卓越的数值处理能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
本次课程设计的内容是利用MATLAB的图形处理功能、符号运算功能和数值计算功能,实现连续非周期信号的频域分析的MATLAB仿真。
其中包括用MATLAB实现常见信号的时域波形和频域频谱的分析和实现信号傅立叶变换性质的仿真波形,通过程序设计和仿真测试,达到设计要求。
关键词MATLAB傅里叶变换仿真波形
目录
摘要 Ⅰ
1MATLAB简介 1
1.1MATLAB软件介绍 1
1.2MATLAB语言特点 1
1.3MATLAB的主要功能 2
2连续非周期信号的傅立叶变换及其原理 3
2.1非周期信号的傅里叶变换 3
2.2常见信号的时域波形和频域频谱的分析 6
2.2.1符号函数 6
2.2.2单位阶跃信号 7
2.2.3单边指数信号时域 8
2.2.4余弦信号 10
2.2.5矩形脉冲信号 12
2.2.6抽样函数信号 14
2.2.7三角形脉冲信号 15
3连续非周期信号的傅立叶变换的性质仿真 17
3.1对称性 17
3.2尺度变换 18
3.3时移特性 21
3.4频移特性 24
3.5时域卷积定理 26
3.6傅里叶变换的时域微分特性 28
致谢 31
参考文献 32
1MATLAB简介
1.1MATLAB软件介绍
MATLAB是MathWorks公司推出的一套高性能的数值计算和可视化软件,经过多年大量的、坚持不懈的改进,现在MATLAB已经更新至7.x版。
MATLAB集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境。
在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以人们十分熟悉的数值或图形方式显示出来。
MATLAB的含义是矩阵实验室(MatrixLaboratory),最初主要用于方便矩阵的存取,其基本元素是无需定义维数的矩阵。
经过十几年的完善和扩充,现在已发展成为线性代数课程的标准工具,也成为其它许多领域课程的使用工具。
在工业环境中,MATLAB可用来解决实际的工程和数学问题,其典型应用有:
通用的数值计算,算法设计,各种学科(如自动控制、数字信号处理、统计信号处理)等领域的专门问题求解。
MATLAB语言易学易用,不要求用户有高深的数学和程序语言知识,不需要用户深刻了解算法及编程技巧。
MATLAB既是一种编程环境,又是一种程序设计语言。
这种语言与C、FORTRAN等语言一样,有其内定的规则,但MATLAB的规则更接近数学表示。
使用更为简便,可使用户大大节约设计时间,提高设计质量。
1.2MATLAB语言特点
MATLAB语言有一下特点:
(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。
(2)符丰富。
由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。
(3)既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。
(4)限制不严格,程序设计自由度大。
例如,在MATLAB里,用户无需对矩阵预定义就可使用。
(5)可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。
(6)图形功能强大。
在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。
MATLAB具有较强的编辑图形界面的能力。
(7)缺点是,它和其他高级程序相比,程序的执行速度较慢。
由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。
(8)强大的工具箱是MATLAB的另一特色。
MATLAB包含两个部分:
核心部分和各种可选的工具箱。
核心部分中有数百个核心内部函数。
其工具箱又分为两类:
功能性工具箱和学科性工具箱。
功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。
功能性工具箱用于多种学科,而学科性工具箱是专业性比较强的。
这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。
(9)序的开放性。
开放性也许是MATLAB最受人们欢迎的特点。
除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。
1.3MATLAB的主要功能
见过多年的完善和发展,MATLAB除了原有的数值计算功能外,还具备了越来越多的其他功能:
(1)数值计算功能
Matlab具有出色的数值计算能力,它的计算速度快,精度高,收敛性好,函数库功能强大,这是使它优于其他数值计算软件的决定因素之一。
(2)符号计算功能
在解决数学问题的过程中,用户往往要进行大量的符号计算和推导,为了增强MATLAB的符号计算功能,1993年Mathworks公司向加拿大滑铁卢大学购买了具有强大符号计算能力的数学软件Maple的使用权,并以Maple的内核作为符号计算的引擎。
(3)数据分析和可视化功能
在科学计算中,科学技术人员经常会面对大量的原始数据而无从下手。
但如果能将这些数据以图形的形式显示出来,则往往能揭示其本质的内在关系,正是基于这种考虑,MATLAB实现了强大的数据分析和可视化功能。
(4)Simnlink动态仿真功能
Simnlink是MATLAB为模拟动态系统而提供的一个面向用户的交互式程序,它采用鼠标驱动方式,允许用户在屏幕上绘制框图,模拟系统并能动态地控制该系统。
它还提供了两个应用程序扩展集,分别是SimnlinkEXTENSIONS和BLOCKSETS。
2连续非周期信号的傅立叶变换及其原理
2.1非周期信号的傅里叶变换
傅里叶变换的基本思想首先由法国学者傅里叶系统提出,所以以其名字来命名以示纪念。
傅里叶变换(FT):
连续时间,连续频率的傅里叶变换。
非周期连续时间信号通过连续付里叶变换(FT)得到非周期连续频谱密度函数。
从现代数学的眼光来看,傅里叶变换是一种特殊的积分变换。
它能将满足一定条件的某个函数表示成正弦基函数的线性组合或者积分。
在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。
对于连续时间信号,Fourier级数的理论告诉我们:
任何周期信号只要满足狄里赫利条件就可以分解成许多指数分量之和(指数Fourier级数)或直流分量与正弦、余弦分量之和,而非周期信号不能直接用傅立叶级数表示,但可以利用傅立叶分析方法导出非周期信号的傅立叶变换。
以周期矩形信号为例,当周期T无限增大时,则周期信号就转化为非周期性的单脉冲信号。
所以可以把非周期信号的周期T看成是周期T趋于无限大的周期信号。
当周期信号的T增大时,谱线的间隔变小,若周期T趋于无穷小,这时离散频谱就变成了连续频谱,而各分量的振幅将趋于无穷小,故引入“频谱密度函数”来表示非周期信号即通过傅里叶变换来分析非周期信号的频谱]。
信号的傅里叶变换定义为
如果连续时间信号可用符号表达式表示,则可利用MATLAB的SymBolicMathToolbox提供的fourier函数直接求出其博里叶变换。
该函数常用的调用格式有三种。
①
②
③
非周期信号的傅里叶变换的定义公式如下式所示,通常是一个复数,可以表示为
(2-1)
相应的博里叶逆变换可表示为
(2-2)
上式表明:
①非周期信号可以看作是由无穷多个不同频率的虚指数信号组成,且频率是连续的,即包括了从负无穷到正无穷的一切频率分量。
②傅里叶变换的模||反映了信号各颇率分量的幅度随频率的变化情况.称为信号幅度频谱。
③傅里叶变换的辐角反映了信号各频率分量的相位随频率的变化情况,称为信号相位领谱。
因此,通过博里叶变换,就可以得到非周期信号的幅度频语和相位频谱,从而分析出信号的频率特性。
下面以单边指数信号为例,介绍利用MATLAB求非周期信号博里叶变换,并绘制出幅度频谱和相位频谱的实现方法和过程。
单边指数信号的表达式为
fx=e-at,&t≥00,&t<0
其中a为正实数。
对单边指数信号求博里叶变换为
(2-3)
这是一个复函数,可以分为模和相角两部分,即
(2-4)
可得幅度频谱和相位频谱分别为
(2-5)
(2-6)
2.2常见信号的时域波形和频域频谱的分析
2.2.1符号函数
ut=0,t<01,t≥0
t=-1:
0.0001:
1;
x=heaviside(t)-heaviside(-t);
plot(t,x);
xlabel('t');
axis([-11-1.51.5])
图2.1符号函数时域波形
频谱分析如下:
symst
x=sym('heaviside(t)')-sym('heaviside(-t)');
F=fourier(x);
ezplot(abs(F));
axis([-44030]);
图2.2符号函数频域波形
2.2.2单位阶跃信号
ut=0,t<01,t≥0
matlab仿真命令
t=-1:
0.01:
5;
f=heaviside(t);
subplot(2,1,1);plot(t,f);
xlabel('t')ylabel('f(t)')
axis([-1,3,-0.2,1.5])
j=sqrt(-1);
F=1./(j*t);
subplot(2,1,2);plot(t,abs(F))
axis([-1,1,0,100]);
xlabel('w')ylabel('F(jw)')
图2.3单位阶跃信号时域频域波形
2.2.3单边指数信号时域
调用形式y=A*exp(a*t)
例如用MATLAB命令产生单边衰减指数信号0.5e-tu(t)和0.5e-2tu(t),并绘出时间
0≤t≤4的波形图。
symstvwx;
x=0.5*exp(-1*t)*sym('heaviside(t)');
F=fourier(x);
subplot(211);
ezplot(x);
subplot(212);
ezplot(abs(F));
axis([-6600.7])
图2.4单边指数信号时域频域波形
symstvwx;
x=0.5*exp(-2*t)*sym('heaviside(t)');
F=fourier(x);
subplot(211);
ezplot(x);
subplot(212);
ezplot(abs(F));
axis([-6600.7])
图2.5单边指数信号时域频域波形
比较可得负指数减小则时域衰减加快,频谱幅度在相同频率下减小。
2.2.4余弦信号
y=cos(5t)
symst
f=cos(5*t)*sym('heaviside(t)');
F=fourier(f);
subplot(2,1,1);
ezplot(f)
axis([02*pi/5-11])
subplot(2,1,2);
ezplot(abs(F))
axis([-77010])
图2.6余弦信号时域频域波形
改变参数后
y=cos(πt)
symst
f=cos(pi*t)*sym('heaviside(t)');
F=fourier(f);
subplot(2,1,1);
ezplot(f)
axis([02-11])
subplot(2,1,2);
ezplot(abs(F))
axis([-77010])
图2.7余弦信号时域频域波形
比较分析后得出,频谱w0随角频率的减小而减小。
2.2.5矩形脉冲信号
例:
用MATLAB变成,模拟矩形脉冲信号脉宽逐渐减小并趋于零的过程,观察脉宽减小时,其时域波形和幅度频谱的变化趋势。
解:
脉冲宽度极小时频谱趋近于常量,随着脉冲宽度增加,频谱振荡衰减。
为了方便观察,采用plot函数来绘制矩形脉冲信号的时域波形。
实现上述分析过程的MATLAB程序如下:
symstw;
ut1=sym('Heaviside(t+0.5)-Heaviside(t-0.5)');
subplot(211);
plot([-0.50.5],[11]);
title('脉宽为1的矩形脉冲信号');
xlabel('t');
holdon
plot([-0.5-0.5],[01]);
plot([0.50.5],[01]);
axis([-1101.1]);
Fw1=fourier(ut1,t,w);
FFw1=maple('convert',Fw1,'piecewise');
FFP1=abs(FFw1);
subplot(212);
ezplot(FFP1,[-10*pi10*pi]);
axis([-10*pi10*pi01.1])
title('脉宽为1的矩形脉冲信号的幅度频谱');
symstw;
ut2=10*sym('Heaviside(t+0.05)-Heaviside(t-0.05)');
subplot(211);
axis([-11011]);
title('脉宽为1,0.1的矩形脉冲信号');
plot([-0.050.05],[1010]);
plot([-0.05-0.05],[010]);
plot([0.050.05],[010]);
xlabel('t');
Fw2=fourier(ut2,t,w);
FFw2=maple('convert',Fw2,'piecewise');
FFP2=abs(FFw2);
subplot(212);
ezplot(FFP2,[-10*pi10*pi]);
axis([-10*pi10*pi01.1])
title('脉宽为1,0.1的矩形脉冲信号的幅度频谱');
ut3=100*sym('Heaviside(t+0.005)-Heaviside(t-0.005)');
subplot(211);
plot([-0.0050.005],[100100]);
plot([-0.005-0.005],[0100]);
plot([0.0050.005],[0100]);
axis([-110110]);
xlabel('t');
title('脉宽为1,0.11的矩形脉冲信号的幅度频谱');
xlabel('t');
Fw3=fourier(ut3,t,w);
FFw3=maple('convert',Fw3,'piecewise');
FFP3=abs(FFw3);
subplot(212);
ezplot(FFP3,[-10*pi10*pi]);
axis([-10*pi10*pi01.1])
title('脉宽为1,0.01的矩形脉冲信号的幅度频谱');
图2.8脉冲信号时域频域波形
2.2.6抽样函数信号
symst
r=0.01;%采样间隔
j=sqrt(-1);
t=-15:
r:
15;
f=sin(t)./t;%计算采样函数的离散采样点
f1=sin(2*t)./(2*t);
N=500;%采样点数
W=5*pi*1;%设定采样角频率
k=-N:
N;
w=k*W/N;%对频率采样
F=r*sinc(t/pi)*exp(-j*t'*w);%计算采样函数的频谱
F1=r*sinc(2*t/pi)*exp(-j*t'*w);
subplot(211);
plot(t,f,t,f1,'b:
+');
xlabel('t');ylabel('f(t)');
subplot(212);plot(w,F,w,F1,'b:
+');
axis([-44-14]);
xlabel('w');ylabel('F(w)');
图2.9抽样函数时域频域波形
分析比较得抽样函数衰减抖动越快,频谱幅度减小,带宽增加。
2.2.7三角形脉冲信号
symst
j=sqrt(-1);t=-4:
0.001:
4;
f=tripuls(t,4,0.5)
f1=tripuls(t,2,0.5)
N=500;W=5*pi*1;w=k*W/N;
F=sinc(0.5*w/pi).^2;N1=250;%采样点数
W1=5*pi*1;%设定采样角频率
w1=k*W1/N1;%对频率采样
F1=sinc(0.5*w1/pi).^2;
subplot(211);plot(t,f,t,f1,'b:
+');
xlabel('t');ylabel('f(t)');
subplot(212);plot(w,F,w,F1,'b:
+');
axis([-202001]);
xlabel('w');ylabel('F(w)');
图2.10三角形脉冲信号时域频域波形
改变参数后,比较可得,采样点数变少,带宽变窄。
3连续非周期信号的傅立叶变换的性质仿真
3.1对称性
博里叶变换的对称性可以表示为:
若,则
(3-1)
上式表明,如果函数的频谱函数为,那么时间函数的频谱函数是,这称为傅里叶变换的对称性。
例:
设=Sa(),已信号的傅立叶变换为F(jw)=
用MATLAB求的傅立叶变换,并验证对称性。
解:
MATLAB程序如下:
symst
r=0.02;
j=sqrt(-1);
t=-20:
r:
20;
f=sin(t)./t;
f1=pi*(Heaviside(t+1)-Heaviside(t-1));
N=500;
W=5*pi*1;
k=-N:
N;
w=k*W/N;
F=r*sinc(t/pi)*exp(-j*t'*w);
F1=r*f1*exp(-j*t'*w);
subplot(221);plot(t,f);
xlabel('t');ylabel('f(t)');
subplot(222);plot(w,F);
axis([-22-14]);
xlabel('w');ylabel('F(w)');
subplot(223);plot(t,f1);
axis([-22-14]);
xlabel('t');ylabel('f1(t)');
subplot(224);plot(w,F1);
axis([-2525-37]);
xlabel('w');ylabel('F1(w)');
图3.1对称性波形
3.2尺度变换
傅里叶变换的尺度变换性质可以表示为:
若,则对于实常数有
(3-2)
上式表明,信号时域宽度与频率带宽成反比。
信号在时域中压缩等效于带宽在频域中的扩展,而时域的展宽等效于在频域中带宽的压缩。
例2-5:
设,用MATLAB求的频谱,并与的频谱进行比较。
由信号分析可知,f(t)信号的频谱为,其第一个过零点频率为,一般将此频率认为信号的带宽。
考虑到的形状,将精度提高到该值的50倍,即,据此确定取样间隔:
f(t)过程的MATLAB程序如下:
R=0.02;t=-2:
R:
2;
f=Heaviside(t+1)-Heaviside(t-1);
W1=2*pi*5;
N=500;k=0:
N;W=k*W1/N;
F=f*exp(-j*t'*W)*R;
F=real(F);
W=[-fliplr(W),W(2:
501)];
F=[fliplr(F),F(2:
501)];
subplot(2,1,1);plot(t,f);
xlabel('t');ylabel('f(t)');
title('f(t)=u(t+1)-u(t-1)');
subplot(2,1,2);plot(W,F);
xlabel('w');ylabel('F(w)');
title('f(t)的付氏变换F(w)');
图3.2尺度变换波形
y(t)过程的MATLAB程序如下:
R=0.02;t=-2:
R:
2;
f=Heaviside(2*t+1)-Heaviside(2*t-1);
W1=2*pi*5;
N=500;k=0:
N;
W=k*W1/N;
F=f*exp(-j*t'*W)*R;
F=real(F);
W=[-fliplr(W),W(2:
501)];
F=[fliplr(F),F(2:
501)];
subplot(2,1,1);
plot(t,f);
xlabel('t');ylabel('y(t)');
title('y(t)=u(2t+1)-u(2t-1)');
subplot(2,1,2);
plot(W,F);
xlabel('w');ylabel('Y(w)');
title('y(t)的付氏变换Y(w)');
图3.3尺度变换波形
比较可见,将展宽了一倍,而幅度将为的一半。
3.3时移特性
傅里叶变换的时移特性可以表示为:
设,则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 连续 周期 信号 傅立叶 变换 及其 MATLAB 实现