


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信号与系统?实验指导书黄剑航 编莆田学院机电工程学院2022年 3 月目录实验 1MATLAB 在信号处理中的应用根底 1实验 2 连续时间信号在 MATLAB 中的表示 6实验 3连续时间信号在 MATLAB 中的运算 12实验 4傅里叶变换及其性质 18实验5信号抽样及抽样定理 24实验 6连续时间 LTI 系统的时域分析 30、八 、-前言MATLAB是矩阵实验室Matrix Laboratory的简称,它是美国 MathWorks 公司出品的商业数学软件, 用于算法开发、 数据可视化、数据分析以及数值计算 的高级技术计算语言和交互式环境,主要包括 MATLAB 和 Simulink 两
2、大局部。MATLAB 的根本数据单位是矩阵,它的指令表达式与数学、工程中常用的 形式十分相似,故用 MATLAB 来解算问题要比用 C, FORTRAN 等语言完成相 同的事情简捷得多,并且 MathWorks 公司也吸收了像 Maple 等软件的优点 ,使 MATLAB 成为一个强大的数学软件。 MATLAB 可以进行矩阵运算、绘制函数和 数据、实现算法、创立用户界面、连接其他编程语言的程序等,主要应用于工程 计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析 等领域。MATLAB 在信号与系统中的应用主要包括符号运算和数值计算仿真分析。 由于信号与系统课程的许多内容都是
3、基于公式演算,而 MATLAB 借助符号数学 工具箱提供的符号运算功能, 能根本满足信号与系统课程的需要。 例如解微分方 程、傅立叶正反变换、拉普拉斯正反变换和 Z 正反变换等。 MATLAB 在信号与 系统中的另一主要应用是数值计算与仿真分析, 主要包括函数波形绘制、 函数运 算、冲激响应仿真分析、信号的时域分析、信号的频谱分析等内容。数值计算仿 真分析可以帮助学生更深入地理解信号与系统的理论知识,并为将来使用 MATLAB 进行信号处理领域的各种分析和实际应用打下根底。实验报告要求如下:1. 具体格式参照“莆田学院机电工程学院实验报告格式。2. 注意实验报告要求分析组织有条理,截图美观,结
4、论正确。实验1 MATLAB 在信号处理中的应用根底1. 实验目的熟悉MATLAB工作环境和根本操作;熟悉MATLAB数组及矩阵运算;学习 函数的编制,掌握MATLAB的编程应用。通过不同的程序结构和不同的实际编 程问题,掌握MATLAB的编程方法。2. 实验内容232.1假设x=3, y=4。利用MTLAB计算以下表达式:z X y 3,要求: (x y)31在命令窗口直接输入,得到运算结果;2编写M文档并在命令窗口执行,然后用工作空间平台查看有哪些变量在当 前工作区。1 22.2 一小球从空中下落的位移公式为:x xo vot at ,利用MATLAB计算2小球在 t=5s 时的位置,:x
5、0 1Om,vo 15m/s,a9.8m/s2.2.3计算函数f(x) x3 (x 0.98)2 /(x 1.25)3 5(x 1)2在x为如下取值时候的x函数值,x取 4.9, 3.2, 1OO, 1.5, 9.75, 2.56 16,4.9,10。2.4确定以下数组的大小,通过 whos或工作空间窗口 The workspace browse 检查你的答案。注意在本练习中后面的数组可能要用到前面数组的定义。(1) u=1O, 2O, 1O+2O v=-1;2O;3(3) w=1 O -9;2 -2 O;1 2 3 x=u' v(5) y(3,3)=-7(6) z=zeros(4,1
6、) ones(4,1) zeros(1,4)'(7) v=x(2,1)2.5执行完2.4的所有题目后,w(2,1)的值是多少? x(2,1)的值是多少? y(2,1)的值是多少?2.6 c数组的定义如下,写出下面子数组的内容。1.1000 -3.2000 3.4000 0.60000.6000 1.1000-0.6000 3.10001.30000.60005.50000(1) c(2,:) (2) c(:,end) (3) c(1:2,2:end) (4) c(6)(5) c(4:end) (6) c(1:2,2:4) (7) c(1 4,2) (8) c(2 2,3 3)2.7当赋
7、值语句执行后,以下数组的内容是多少?(1) a=1 2 3; 4 5 6; 7 8 9;a(3 1,:)=a(1 3,:);(2) a=1 2 3; 4 5 6; 7 8 9;a(1 3,:)=a(2 2,:);(3) a=1 2 3; 4 5 6; 7 8 9;a=a(2 2,:);2.8假设a,b,c和d的定义如下:1 01 23a,b,c ,d 52 1 0 1 2分别运行出以下表达式的运算结果,并思考点乘和乘法的不同(1) a + b a .* c a * b a * c(5) a + c (6) a + d (7) a .* d (8) a * d2.9 一个程序实例学习:温度转换设
8、计一个MATLAB 程序,读取一个华氏温度的输入,输出开尔文温度。华氏温度和开尔文温度的转换关系式可在物理学课本中找到。其关系式为:巩开尔文)=f|r(ia匱厘)-3卜171151I hi.在物理学参考书中举了一些例子,我们可以用来检验我们程序是否正确。例如2J21沐水湿令鞫的泡度-HO我们设计程序的步骤如下:1提示用户键入华氏温度值2读取输入值3通过关系式转换为开氏温度4输出结果,结束我们将会用in put函数输入华氏温度,用fprintf函数输出结果。% Script file:temp_c onv ersio n.m% Purpose:% To convert an in put tem
9、perature from degrees Fahre nheit to% an output temperature in kel vins.% Record of revisi ons:% Date Programmer Descripti on of cha nge% = = =% 12/01/97 S.J. Chapma n Origi nal code%Defi ne variables:% temp_f -Temperature in degrees Fahre nheit% temp_k -Temperature in kelvi ns%Prompt the user for t
10、he in put temperature.temp_f=i nput('E nter the temperature in degrees Fahre nheit:');%Con verttokelvi ns.temp_k=(5/9)*(temp_f-32)+273.15;%Writeouttheresult.fprin tf('%6.2f degrees Fahre nheit = %6.2f kelvin s.n',. temp_f,temp_k);我们输入上面的例子中的华氏温度值,以检测程序的正确性。注意用户的输入值 已用黑 体字标出。>>
11、temp_c onv ersi onEn ter the temperature in degrees Fahre nheit: 212212.00 degrees Fahre nheit = 373.15 kelvi ns.>> temp_c onv ersi onEn ter the temperature in degrees Fahre nheit: -110-110.00 degrees Fahre nheit = 194.26 kelvi ns.这个结果和物理教科书的结果相同。2.10编写一个程序,计算出坐标系中用户指定两点(X1,Y1)和(X2,Y2)之间的距离要求有
12、输入、输出及其相关提示。xx2.11双曲余弦的定义如下:. e e cosh x2编写一个程序,计算出用户指定的x的值对应的双曲余弦值。用这个程序计算双曲余弦值的假设干值,并和 MATLAB 中的内建函数cosh(x)得到的值比拟看 看是否完全相同。并用 MATLAB 打印出这个函数的图象。2.12电子工程:负载的最大输出功率一个内阻 Rs= 50Q,电动势V= 120V的电 源驱动一个负载RL。当RL为多少时,RL的功率最大?在这种情况下,功率为 多少?画以RL为自变量的RL功率图。1 1 12.13利用公式一1 1 1丄求43 5 7510为止。的近似值,直到最后一项的绝对值小于2.14
13、Fib on acci(斐波纳契序列的元素满足 Fib on acci规贝U:ak 2 ak1 ak(k 1,2,3.)且® 1® 1;现要求该序列中第一个大于 20000的并指明该兀素是序列的第几项2.15在田径比赛中,一个身高为一米八零的铅球运发动, 大概以多大的角度和 水平方向夹角推铅球,才能使铅球推得最远,并求出最远距离。不计空气阻力, 假设铅球出手点和运发动高度相等,且铅球出手瞬间初始速度大小为 14m/s,重 力加速度取g=10m/s2。2.16打印出所有的“水仙花数,所谓“水仙花数是指一个三位数,其各位数 字立方和等于该数本身。例如153是一个水仙花数,满足1
14、53= 1A3+5A3+3A3o2.17有一个函数:xx 1y 2x 11 x 10,写一程序,输入X,输出y值。3x 11 x 102.18 输入 3 个整数,要求按大小输出。2.19 编写一个 MATLAB 程序,要求输入圆柱体的半径和高,然后输出体积3. 思考3.1 MATLAB 的命令窗口的作用是什么?3.2 列出几种不同的得到 MATLAB 帮助的方法。3.3 什么是工作区?在同一工作区内,你如何决定它里面存储了什么?3.4 你怎样清空 MATLAB 工作区内的内容?3.5 数组,矩阵,向量有什么区别?3.6 答复关于以下矩阵的有关问题1.13.23.40.6C 0.61.10.63
15、.11.30.65.50.0(1)C 的大小是多少?(2) C(2,3)的值是多少?(3) 列出值为 0.6 的元素的下标3.7 脚本文件和函数文件的区别是什么?实验 2 连续时间信号在 MATLAB 中的表示1. 实验目的学会运用 MATLAB 表示常用连续时间信号的方法; 观察并熟悉这些信号的波 形和特性。2. 实验原理在某一时间区间内,除假设干个不连续点外,如果任意时刻都可以给出确定 的函数值,那么称该信号为连续时间信号,简称为连续信号。从严格意义上讲, MATLAB 数值计算的方法并不能处理连续时间信号。然而,可利用连续信号在 等时间间隔点的取样值来近似表示连续信号, 即当取样时间间隔
16、足够小时, 这些 离散样值能够被 MATLAB 处理,并且能较好地近似表示连续信号。MATLAB 提供了大量生成根本信号的函数。 比方常用的指数信号、正余弦信 号等都是 MATLAB 的内部函数。为了表示连续时间信号,需定义某一时间或自 变量的范围和取样时间间隔, 然后调用该函数计算这些点的函数值, 最后画出其 波形图。3. 实例分析3.1 典型信号的 MATLAB 表示1实指数信号实指数信号的根本形式为 f(t) Ke t 。式中, K, 为实数。当 0 时,实 指数信号随时间按指数式增长;当 0 时,实指数信号随时间按指数式衰减; 当 0 时候,那么转化为直流信号。 MATLAB 中用 e
17、xp 函数来表示实指数信号, 其语句格式为:y K *exp( a* t)例1用MATLAB命令产生单边衰减指数信号2e1.5tu(t),并绘出时间0 t 3的 波形图。解:MATLAB源程序为:clear;clc;K = 2; a = -1.5;t = 0:0.01:3;ft = K*exp(a*t); plot(t,ft);grid on axis(0,3,0,2.2);title('单边指数衰减信号');2正弦信号正弦信号的根本形式为f(t) Ksin(t )或者f(t) Kcos( t )。其中K是振幅; 是角频率;是初相位。这三个参数称为正弦信号的三要素。MATLAB
18、中可用sin或者cos函数来表示正弦信号,其语句格式为:K *sin( *t phi) K *cos( * t phi)例2用MATLAB命令产生正弦信号2sin(2 t /4),并绘出时间0 t 3的波形图。解:MATLAB源程序为:clear;clc;K = 2; w = 2*pi; phi = pi/4; t = 0:0.01:3;ft = K*s in( w*t+phi); plot(t,ft);grid on axis(0,3,-2.2,2.2); title('正弦信号');图1单边指数衰减信号图2正弦信号3抽样信号抽样信号的根本形式为Sa(t) sin(t)/t,
19、在 MATLAB 中用与Sa(t)类似的sinc(t)函数表示,定义为 sinc(t) sin( t)/( t)。可以看出,Sa(t)函数与sinc(t)没有本质的区别,只是在时间尺度上不同而已。 例3用MATLAB命令产生抽样信号Sa(t),并绘出时间为6 t 6的波形图。解:MATLAB源程序为:clear;clc;t = -6*pi: pi/100: 6*pi; ft = sin c(t/pi);plot(t,ft);grid on axis(-20,20,-0.5,1.2); title('抽样信号');fa+T'f E图3抽样信号4矩形脉冲信号矩形脉冲信号在M
20、ATLAB中可用rectpuls函数产生,其语句格式为:y rectpls (t, width )该函数用于产生一个幅度为1、宽度为width,且以t=0为对称轴的矩形脉冲信 号,width的默认值为1。f(t)2 (0 t 1)0 (t 0,t1)例4用MATLAB命令画出以下矩形脉冲信号的波形图。解:根据所定义的矩形脉冲信号,f(t)定义的矩形脉冲宽度为1,脉冲的中心位置相对于纵轴向右移动了 0.5。因此,其MATLAB源程序为:clear;clc;t = -0.5: 0.01: 3;t0 = 0.5; width = 1;图4矩形脉冲信号ft = 2* rectpuls(t-t0, wi
21、dth); plot(t,ft);grid on axis(-0.5,3,-0.2,2.2); title('矩形脉冲信号');周期性矩形波信号或方波在MATLAB中可用square函数产生,其语句格式为:y=square(t,DUTY)该函数用于产生一个周期为2 ,幅值为1的周期性方波信号,其中,DUTY参 数用来表示信号的占空比DUTY%,即在一个周期内脉冲宽度正值局部与脉冲周期比值。占空比默认值为0.5例5用MATLAB命令产生频率为10Hz,占空比为30%的周期方波信号解:MATLAB源程序为:5期方减信T图5周期方波信号clear;clc;t = 0: 0.001:
22、0.3;y = square(2*pi*10*t, 30); plot(t,y);grid on axis(0,0.3,-1.2,1.2); title('周期方波信号');还有非周期的三角波脉冲可以用tripuls函数,周期三角波锯齿波可以用 sawtooth函数实现。同学们可以通过 MATLAB help自学,或者上网搜索及其他 途径学习。3.2单位阶跃信号的MATLAB表示单位阶跃信号是信号分析中的根本信号之一,在信号与系统分析中有着十分重要的意义,常用于简化信号的时域数学表示。例如,表示分段函数信号、时限 信号和因果信号等。单位阶跃信号用符号 u(t)表示,定义为:u(
23、t)I!113I&图6单位阶跃信号例6用MATLAB命令产生单位阶跃信号u(t) 解:MATLAB源程序为:clear;clc;t = -1: 0.01: 5;ft = (t >=0 );plot(t,ft);grid onaxis(-1,5,-0.5,1.5);title('单位阶跃信号');5此外,也可以在 MATLAB的工作目录下创立 uCT的M文件,其MATLAB 源文件为:fun ctio n f = uCT(t)f = (t>=0);保存后,就可调用该函数,并运用plot命令来绘制单位阶跃信号的波形。例 如,图6中波形也可以用如下代码实现:cle
24、ar;clc;t = -1: 0.01: 5;ft = uCT(t); plot(t,ft);grid on axis(-1,5,-0.5,1.5); title('单位阶跃信号');注意,在此定义的uCT函数是阶跃信号数值表示方法,因此在数值电脑中我们将调用uCT函数。而在MATLAB的MAPLE内核中,将Heaviside函数定义为阶 跃信号符号表达式,在符号运算过程中,假设要调用它必须用 sym定义后,才能 实现。例如,还可用下面的命令会出阶跃信号,即:clear;clc;y=sym('Heaviside(t)'); %定义符号表达式ezplot(y,-1
25、,5).grid on在表示分段函数信号、时限信号时,经常用到延时的单位阶跃信号,对于延时T的单位阶跃信号u(t T),可以用uCT(t-T)来表示。解:MATLAB源程序为:(1l7 K图图7门函数波形例7用MATLAB命令实现幅度为1、宽度为1的门函数g(t)clear;clc;t = -1: 0.01: 1;ft = uCT(t+0.5)-uCT(t-0.5); plot(t,ft);grid on axis(-1,1 -0.2,1.2);title('门函数');4. 实验内容4.1利用MATLAB命令画出以下连续信号的波形图。12cos(3t/4) 2(2 et)u(
26、t)3tu(t) u(t 1)41 cos( t)u(t) u(t 2)4.2利用MATLAB命令产生幅度为1、周期为1、占空比为0.5的一个周期矩形脉冲信号。T=1;f=1/T=14.3利用MATLAB命令画出如下信号的实部、虚部、模和幅角。j _4tj_2tf (t)2 e 4 e 2 cos(pi/4*t)+jsin(pi/4*t)5. 问题与思考阶跃信号函数中语句ft = (t >=0 )的含义。实验 3 连续时间信号在 MATLAB 中的运算1. 实验目的学会运用 MATLAB 进行连续信号的时移、反折和尺度变换;学会运用 MATLAB 进行连续信号的相加、 相乘运算; 学会运
27、用 MATLAB 数值计算方法求 连续信号的卷积。2. 实验原理2.1 信号的时移、反折和尺度变换信号的时移、反折和尺度变换是针对自变量时间而言的,其数学表达式与波 形变换之间存在一定的变换规律。信号f(t)的时移就是将信号数学表达式中的t用t to替换,其中to为正实数。 因此,波形的时移变换是将原来的f(t)波形在时间轴上向左或者向右移动。f(t to)为f(t)波形向左移动to ; f(t to)为f(t)波形向右移动to。信号f(t)的反 折就是将表达式中的自变量t用t替换,即变换后的波形是原波形的 y轴镜像。 信号f (t)的尺度变换就是将表达式中的自变量t用at替换,其中,a为正实
28、数。 对应于波形的变换,那么是将原来的 f(t)的波形以原点为基准压缩a 1至原 来的 1/ a ,或者扩展 o a 1至原来的 1/ a 。上述可以推广到f(at to)的情况。2.2 MATLAB 数值计算法求连续时间信号的卷积用 MATLAB 分析连续时间信号,可以通过时间间隔取足够小的离散时间信 号的数值计算方法来实现。 可调用 MATLAB 中的 conv( )函数近似地数值求解连 续信号的卷积积分。如果对连续时间信号 f,(t)和f2(t)进行等时间间隔t足够 小均匀抽样,那么f't)和f2(t)分别变为离散序列fm t)和f2(m t)。其中m为 整数。当t足够小时,f,
29、(m t)和f2(m t)即为连续时间信号fi(t)和f2(t)。因此连续信号的卷积积分运算转化为:f(t) f1(t)* f2(t)f1( ) f2(t)dlimf1(m t) f2 (t m t) tm采用数值计算法,只求当 t n t时卷积积分f(t)的值f(n t),其中,n为整数,即f (n t)f1(m t) f2(n t m t) tmtf1(m t) f2(n m) tm其中, f1(m t) f2(n m) t实际就是离散序列f1(m t)和f2(m t)的卷积和。当 mt足够小时,f(n t)就是卷积积分的结果,从而连续时间信号f(t) f(n t) f1(n)* f2(n
30、)上式说明通过MATLAB实现连续信号f1(t)和f2(t)的卷积,可以利用各自抽 样后的离散时间序列的卷积再乘上抽样间隔t 0抽样间隔t越小,误差也就越小。3. 实例分析例 1 信号 f (t) u(t 2) u(t) ( t 1)u(t 1) u(t),试用 MATLAB 命令画 出 f(t 2)、 f(3t)、f( t)、 f( 3t 2)的波形图0解:根据信号,先建立 f(t)函数文件,即在 MATLAB的工作目录下创立 functl.m文件,MATLAB 源程序为:function f = funct1(t)f=uCT(t+2)-uCT(t)+(-t+1).*(uCT(t)-uCT(
31、t-1);然后,可以调用上述函数来绘制所求的信号波形0程序运行完,产生如图 1所示的波形0 MATLAB 源程序为:clear;clc;t = -2:0.01:4; ft1 = fun ct1(t-2);ft2 = fun ct1(3*t);ft3 = fun ct1(-t); ft4 = fun ct1(-3*t-2);subplot(221) plot(t,ft1);grid on title('f(t-2)'); axis(-2 4 -0.5 2);subplot(222) plot(t,ft2);grid ontitle('f(3t)'); axis(-
32、2 4 -0.5 2);subplot(223) plot(t,ft3);grid on title('f(-t)'); axis(-2 4 -0.5 2);subplot(224) plot(t,ft4);grid on title('f(-3t-2)'); axis(-2 4 -0.5 2);肚2)妙图 1f(t-2),f(3t),f(-t),f(-3t-2)波形图例2用MATLAB数值计算分析法求信号f,(t) u(t) u(t 2)与f2(t) e3tu(t)的 卷积积分。解:因为f2(t) e3tu(t)是一个持续时间无限长的信号,而电脑数值计算不可能
33、计 算真正的无限长时间信号,所以在 进行f2(t)的抽样离散化时,所取的时间范围 让f2(t)衰减到足够小就可以了,本例中取t 2.5。MATLAB源程序为:clear;clc;dt = 0.01; t = -1:dt:2.5; fl = uCT(t)- uCT(t-2);f2 = exp(-3*t)*uCT(t);f = con v(f1,f2)*dt;n =le ngth(f);tt = (0: n-1)*dt-2; tt 从-2 开始subplot(221), plot(t,f1),grid on; axis(-1,2.5, -021.2);title('f1(t)');
34、 xlabel('t');subplot(222), plot(t,f2),grid on; axis(-1,2.5, -0.2,1.2);title('f2(t)'); xlabel('t');subplot(212), plot(tt,f),grid on; title('f(t)=f1(t)*f2(t)' ); xlabel('t');由于£(t)和f2(t)的时间范围都是从t 1开始,所以卷积结果的时间范围从t 2开始,增量还是取样间隔t,这就是上面MATLAB语句tt = (0:n-1)*dt-
35、2的由来。对于时限信号的卷积运算,还可以利用 MATLAB中的function命令建立一 个实用函数来求卷积。例如,可以建立连续时间信号卷积运算的函数 ctsconv.m , 其MATLAB源程序为:function f,t = ctsconv(f1,f2,t1,t2,dt)f = con v(f1,f2);f = f*dt;ts = mi n(t1) +mi n( t2);te = max(t1)+max(t2);t = ts:dt:te;subplot(221)plot(t1,f1); grid onaxis( min(t1), max(t1), min(f1)- abs(min(f1)*
36、0.2 ), max(f1)+ abs(max(f1)*0.2) ) title( 'f1(t)' );xlabel( 't');subplot(222)plot(t2,f2); grid onaxis( min(t2), max(t2), min(f2)- abs(min(f2)*0.2 ), max(f2)+ abs(max(f2)*0.2) ) title( 'f2(t)' );xlabel( 't');subplot(212)plot(t,f); grid onaxis( min(t), max(t), min(f)- a
37、bs(min(f)*0.2 ), max(f)+ abs(max(f)*0.2) ) title( 'f(t)=f1(t)*f2(t)' );xlabel( 't');MATLAB 源程序为:对于例 2,可以用上面定义的 ctsconv 函数求的,clear;clc;dt = 0.01;t1 = -1:dt:2.5;f1 = uCT(t1)- uCT(t1-2);t2 = t1;f2 = exp(-3*t2).*uCT(t2);t,f = ctsconv(f1,f2,t1,t2,dt);程序运行后,可获得和例 2 相同的波形结果4. 实验内容4.1试用MATLA
38、B命令绘制信号f(t) e ' sin( 10 t) e t/2 sin(9 t)的波形图。4.2 信 号 f(t) u(t) u(t 1) (t 1)u(t 1) u(t) ,画 出 f(t) 、 f(t 2) 、 f( t)、 f( 2t 1)的波形。4.3 求信号 f1(t) u(t) u(t 2)与的卷积结果f(t)f't)* f2(t),并画出fQ, f2(t)和f(t)的波形。4.4 求信号 f1(t) u(t 0.5) u(t 0.5)与自身的卷积结果 f(t) f1(t)* f1(t) ,并画出fl(t)和f (t)的波形。5. 问题与思考MATLAB 运算符中
39、 .*和 * 的区别?可结合例子说明。 实验 1和实验 2 都 有碰到的实验4傅里叶变换及其性质1. 实验目的学会运用 MATLAB求连续时间信号的傅里叶Fourie门变换;学会运用 MATLAB求连续时间信号的频谱图;学会运用MATLAB分析连续时间信号的傅 里叶变换的性质。2. 实验原理及实例分析2.1傅里叶变换的实现信号f的傅里叶变换定义为:F( ) F f (t) f (t)e j Pt,傅里叶反变换定义为:f (t) F 1F( ) 一 f( )ej td 。2信号的傅里叶变换主要包括MATLAB符号运算和MATLAB数值分析两种方 法,下面分别加以探讨。同时,学习连续时间信号的频谱
40、图。2.1.1 MATLAB符号运算求解法MATLAB符号数学工具箱提供了直接求解傅里叶变换与傅里叶反变换的函 数fourier()和ifourier( )。Fourier变换的语句格式分为三种。(1) F=fourier(f,):它是符号函数f的Fourier变换,默认返回是关于的 函数。(2) F=fourier(f,v):它返回函数F是关于符号对象v的函数,而不是默认的 , 即 F (v) f (t)e jvtdt °(3) F=fourier(f,u,v):是对关于u的函数f进行变换,返回函数F是关于v的 函数,即 F(v) f(t)e jvudu。傅里叶反变换的语句格式也分
41、为三种。(1) f=ifourier(F):它是符号函数F的Fourier反变换,独立变量默认为,默 认返回是关于x的函数。(2) f=ifourier(F,u):它返回函数f是u的函数,而不是默认的X。(3) f=ifourier(F,u,v):是对关于v的函数F进行反变换,返回关于u的函数f。 值得注意的是,函数fourier()和ifourier()都是接受由sym函数所定义的符号变量或者符号表达式。例1用MATLAB符号运算求解法求单边指数信号f (t) e 2tu(t)的傅里叶变换解:MATLAB源程序为:ft = sym('exp(-2*t)*Heaviside(t)
42、9;);Fw = fourier(ft)运行结果为:Fw = 1/(2+i*w)例2用MATLAB符号运算法求F()乙的傅里叶逆变换f(t)1 2解:MATLAB源程序为:ft = sym('exp(-2*t)*Heaviside(t)');Fw = fourier(ft)运行结果为:ft = 1/2*exp(-t)*heaviside(t)+1/2*exp(t)*heaviside(-t) 连续时间信号的频谱图信号f(t)的傅里叶变换F()表达了信号在处的频谱密度分布情况,这就 是信号的傅里叶变换的物理含义。F()般是复函数,可以表示成F( ) F( )ej()。F( ) 与
43、()曲线分别称为非周期信号的幅度频谱与相位频谱,它们都是频率的连续函数,在形状上与相应的周期信号频谱包络线相同。非周期信号的频谱有两个特点,密度谱和连续谱。要注意到,采用fourier() 和ifourier()得到的返回函数,仍然是符号表达式。假设需对返回函数作图,那么 需应用ezplot()绘图命令。例3用MATLAB命令绘出例1中单边指数信号的幅度谱和相位谱。解:MATLAB源程序为ft = sym('exp(-2*t)*Heaviside(t)');Fw = fourier(ft);subplot(211) ezplot(abs(Fw);grid ontitle(
44、9;幅度谱')phase = ata n(imag(Fw)/real(Fw);subplot(212) ezplot(phase);grid on title('相位谱')图1单边指数信号的幅度谱和相位谱2.1.3 MATLAB数值计算求解法fourier()和ifourier()函数的一个局限性是,如果返回函数中有诸如单位冲激 函数(t)等项,那么用ezplot()函数无法作图。对某些信号求变换时,其返回函数 可能包含一些不能直接用符号表达的式子,因此不能对返回函数作图。此外,在很多实际情况中,尽管信号f(t)是连续的,但经过抽样所获得的信号那么是多组离 散的数值量f
45、(n),因此无法表示成符号表达式,此时不能应用fourier()函数对f(n) 进行处理,而只能用数值计算方法来近似求解。从傅里叶变换定义出发有F( ) f (t)e j tdt lim f(n )e j n ,当 足够小时,上式的近似情况可以满足实际需要。对于时限信号 f(t),或者在 所研究的时间范围内让f(t)衰减到足够小,从而近似地看成时限信号,那么对于上 式可以考虑有限n的取值。假设是因果信号,那么有M 1F( )f (n ) e j n ,0 n M 1n 0傅里叶变换后在域用MATLAB进行求解,对上式的角频率进行离散化。假设离散化后得到N个样值,即 k - k, 0 k N -
46、1,NM 1.因此有F(k)f(n )e j kn ,0 k N 1。采用行向量,用矩阵表示为n 0F(k);*Nf (n )爲e j kn 爲。其要点是要正确生成f(t)的M个样本向量f(n )与向量e j kn 。当 足够小时,上式的内积运算即相乘求和运算结 果即为所求的连续时间信号傅里叶变换的数值解。例4 用MATLAB数值计算法求三角脉冲幅度谱。三角脉冲的数学表达式如下:1-t 2,4 t 02f(t)-1丄 t 2,0 t 42解:MATLAB源程序为:dt = 0.01;t = -4:dt:4;ft = (t+4 )/2.*uCT(t+4)-t.*uCT(t)+(t-4)/2.*u
47、CT(t-4);N = 2000;k = -N:N;W = 2*pi*k/(2*N+1)*dt);F = dt * ft*exp(-j*t'*W); plot(W,F), grid on axis(-pi pi -1 9);xlabel('W), ylabel('F(W)') title('amplitude spectrum');w图2三角脉冲信号的幅度谱2.2傅里叶变换的性质傅里叶变换的性质包含了丰富的物理意义,并且揭示了信号的时域和频域的 关系。熟悉这些性质成为信号分析研究工作中最重要的内容之一尺度变换特性傅里叶变换的尺度变换特性为:假设f
48、(t)F(),那么有 f(at)aF(a),其/、中,a为非零实常数。例5 设矩形信号f(t) u(t 1/2) u(t 1/2),用MATLAB命令绘出该信号及其频谱图。当信号f(t)的时域波形扩展为原来的2倍,或压缩为原来的1/2时,那么 分别得到f(t/2)和f(2t),用MATLAB命令绘出f(t/2)和f(2t)的频谱图,并加 以分析比拟解:采用符号运算法求解,并分析结果。MATLAB源程序为:ft1 = sym('Heaviside(t+1/2)-Heaviside(t-1/2)'); subplot(321); ezplot(ft1,-1.5 1.5),grid
49、on Fw1 = simplify(fourier(ft1); subplot(322);ezplot(abs(Fw1),-10*pi 10*pi), grid on axis(-10*pi 10*pi -0.2 2.2);ft2 = sym( 'Heaviside(t/2+1/2)-Heaviside(t/2-1/2)'); subplot(323);ezplot(ft2,-1.5 1.5), grid onFw2 = simplify(fourier(ft2); subplot(324);ezplot(abs(Fw2),-10*pi 10*pi),grid onaxis(-
50、10*pi 10*pi -0.2 2.2);ft3 = sym( 'Heaviside(2*t+1/2)-Heaviside(2*t-1/2)'); subplot(325);ezplot(ft3,-1.5 1.5), grid onFw3 = simplify(fourier(ft3); subplot(326);ezplot(abs(Fw3),-10*pi 10*pi),grid on axis(-10*pi 10*pi -0.2 2.2);频移特性傅里叶变换的频移特性为:假设f(t) F(),那么有f(t)ej 0t F(0)。频移技术在通信系统中得到广泛应用,诸如调幅变
51、频等过程都是在频谱搬移的根底上完成的。频移的实现原理是将信号f(t)乘以载波信号cos °t或sin °t,从而完成频谱的搬移,即f (t )cosot2F(0) F(0)f (t )sin0t0) F(0)例6阅读并运行如下程序段,并观察信号调制前后的频谱。ft1 = sym( '4*(Heaviside(t+1/4)-Heaviside(t-1/4)');Fw1 = simplify(fourier(ft1); subplot(121);ezplot(abs(Fw1),-24*pi 24*pi),grid on axis(-24*pi 24*pi -0.
52、2 2.2);title'矩形信号频谱'ft2 = sym( '4*cos(2*pi*6*t)*(Heaviside(t+1/4)-Heaviside(t-1/4)');Fw2 = simplify(fourier(ft2);subplot(122);ezplot(abs(Fw2),-24*pi 24*pi),grid on axis(-24*pi 24*pi -0.2 2.2);title('矩形调制信号频谱');3. 实验内容3.1试用MATLAB命令求以下信号的傅里叶变换,并绘出其幅度谱和相位谱。1钝sin 2 (t 1)(t 1)2f2t
53、sin( t)t3.2试用MATLAB命令求以下信号的傅里叶反变换,并绘出其时域信号图1F1()103 je423.3试用MATLAB数值计算方法求门信号的傅里叶变换,并画出其频谱图门信号即g t1, t0, t/2,其中/23.4两个门信号的卷积为三角波信号,试用MATLAB命令验证傅里叶变换的时域卷积定理。4. 问题与思考傅里叶变换的其他性质可以用类似的方法加以验证,试举一例,说明你验证过程的思路。实验5信号抽样及抽样定理1. 实验目的本实验是综合性实验,实验目的主要为:学会运用 MATLAB完成信号抽样 及对抽样信号的频谱进行分析;学会运用MATLAB改变抽样间隔,观察抽样后信号的频谱变
54、化;学会运用 MATLAB对抽样后的信号进行重建。进一步加深对 信号采样和重建过程的理解。2. 实验原理及实例分析2.1信号抽样信号抽样是连续时间信号分析向离散时间信号、连续信号处理向数字信号处 理的第一步,广泛应用于实际的各类系统中。所谓信号抽样,也称为取样或采样, 就是利用抽样脉冲序列P(t)从连续信号f(t)中抽取一系列的离散样值,通过抽样 过程得到的离散样值信号称为抽样信号,用fs(t)表示。从数学上讲,抽样过程就是抽样脉冲p(t)和原连续信号f(t)相乘的过程,即:fs(t) f(t)p(t)因此可以用傅里叶变换的频移卷积性质来求抽样信号fs(t)的频谱。常用的抽样脉冲序列p(t)有
55、周期矩形脉冲序列和周期冲激脉冲序列。假设原连续信号f(t)的频谱为F(),即f(t) F();抽样脉冲p(t)是一个 周期信号,它的频谱为:p(t)巳ejn stP( ) 2 巳(n s)nn2其中,s 为抽样角频率,Ts为抽样间隔。因此,抽样信号fs(t)的频谱为:Ts1Fs( ) 2-F( )P( )F( )Pn ( n s)时(n s)nn上式说明,信号在时域被抽样后,它的频谱是原连续信号的频谱以抽样角频率为 间隔周期的延拓,即信号在时域抽样或离散化,相当于频域周期化。在频谱的周 期重复过程中,其频谱幅度受抽样脉冲序列的傅里叶加权,即被Pn加权。假设抽样信号为周期冲激脉冲序列,即:P(t
56、)(t n Ts)s (ns)nn因此,冲激脉冲序列抽样后信号的频谱为:1Fs( ) - F( n JI s n可以看出,Fs()是以s为周期等幅地重复。例1升余弦脉冲信号为f(t) -1 COS(,0 t ,E 1, ,参数2用MATLAB编程,实现该信号经冲激脉冲抽样后得到的抽样信号fs(t)及其频谱。解:升余弦脉冲信号的频谱大局部集中在0,之间,当采用抽样间隔Ts 1时,根据抽样定理,可以从抽样信号恢复出原信号。MATLAB源程序为:Ts = 1;dt = 0.1;t1 = -4:dt:4;ft =(1+cos(t1)/2).*(uCT(t1+pi)-uCT(t1-pi);subplot(221)plot(t1,ft), grid on axis(-4 4 -0.1 1.1) xlabel('Time(sec)' ),ylabel('f(t)') title('升余弦脉
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 硅冶炼在智能穿戴设备的应用考核试卷
- 篷布遮阳篷的抗风性能研究考核试卷
- 畜牧良种繁殖信息化建设与数据利用考核试卷
- 情态动词表推测微课设计
- 工厂车间管理
- 网上书店设计与实现
- 2025资产购买合同书范本
- 2025船舶维修服务合同范本
- 2025铁砂石子供货合同
- 六一儿童节课件设计指南
- 电动卷帘门合同协议
- 2025-2030中国太阳能电池板清洁系统行业市场发展趋势与前景展望战略研究报告
- 上海2025年上海市卫生健康技术评价中心上半年招聘16人笔试历年参考题库附带答案详解
- 建设分包合同保证金协议
- 2025年甘肃西北永新集团招聘11人笔试参考题库附带答案详解
- 江苏省镇江市2024-2025学年下学期七年级数学期中试卷(原卷版+解析版)
- 学校岗位安全手册指南
- 2025-2030体外诊断仪器行业市场深度分析及发展策略研究报告
- 五方股权投资合作协议书合同协议范本模板8篇
- 幼儿园大班建构游戏中幼儿自主学习行为的研究
- 《特斯拉汽车供应链管理》课件
评论
0/150
提交评论