实验三MATLAB求Fourier变换及逆变换
信号与系统实验报告三
一.实验目的1. 深入理解系统频率响应的物理意义2. 掌握利用Matlab 分析系统频率响应的方法3. 理解系统对信号的作用关系二.实验原理傅里叶变换是信号分析 的最重要的内容之一。
从已知信号()f t 求出相应的频谱函数()F j ω的数学表示为:()F j ω()j t f t e dt ω∞--∞=⎰()f t 的傅里叶变换存在的充分条件是()f t 在无限区间内绝对可积,即()f t 满足下式:()f t dt ∞-∞<∞⎰但上式并非傅里叶变换存在的必要条件。
在引入广义函数概念之后,使一些不满足绝对可积条件的函数也能进行傅里叶变换。
傅里叶反变换的定义为:1()()2j t f t F j e d ωωωπ∞-∞=⎰。
在这一部分的学习中,大家都体会到了这种数学运算的麻烦。
在MATLAB 语言中有专门对信号进行正反傅里叶变换的语句,使得傅里叶变换很容易在MATLAB 中实现。
在MATLAB 中实现傅里叶变换的方法有两种,一种是利用MATLAB 中的Symbolic Math Toolbox 提供的专用函数直接求解函数的傅里叶变换和傅里叶反变换,另一种是傅里叶变换的数值计算实现法。
下面分别介绍这两种实现方法的原理。
1.直接调用专用函数法①在MATLAB 中实现傅里叶变换的函数为:F=fourier( f ) 对f(t)进行傅里叶变换,其结果为F(w)F =fourier(f,v) 对f(t)进行傅里叶变换,其结果为F(v)F=fourier( f,u,v ) 对f(u)进行傅里叶变换,其结果为F(v) ②傅里叶反变换f=ifourier( F ) 对F(w)进行傅里叶反变换,其结果为f(x)f=ifourier(F,U) 对F(w)进行傅里叶反变换,其结果为f(u)f=ifourier( F,v,u ) 对F(v)进行傅里叶反变换,其结果为f(u)由于MATLAB 中函数类型非常丰富,要想了解函数的意义和用法,可以用mhelp 命令。
东北大学 matlab实验
《MATLAB 语言与应用》上机实验作业第一部分2、 用MATLAB 语句输入矩阵A 和B⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1423143212344321A , ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡++++++++++++++++=4j 11j43j 22j34j 11j 42j 33j 24j 13j 22j 31j 41j 42j 33j 24j 1B前面给出的是44⨯矩阵,如果给出5)6,5(=A 命令将得出什么结果? MATLAB 结果:>> A=[1 2 3 4;4 3 2 1;2 3 4 1;3 2 4 1];>> B=[1+4j 2+3j 3+2j 4+1j;4+1j 3+2j 2+3j 1+4j;2+3j 3+2j 4+1j 1+4j;3+2j 2+3j 4+1j 1+4j]; >> A A =1 2 3 4 4 3 2 1 2 3 4 1 3 2 4 1>> B B =1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i 4.0000 + 1.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 1.0000 + 4.0000i 2.0000 + 3.0000i 3.0000 + 2.0000i 4.0000 + 1.0000i 1.0000 + 4.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 4.0000 + 1.0000i 1.0000 + 4.0000i>> A(5,6)=5 A =1 2 3 4 0 0 4 3 2 1 0 0 2 3 4 1 0 0 3 2 4 1 0 00 0 0 0 0 53、假设已知矩阵A,试给出相应的MATLAB命令,将其全部偶数行提取出来,赋给B矩阵,用magic(8)A=命令生成A矩阵,用上述命令检验一下结果是不是正确。
信号与系统实验(MATLAB版) (1)
《信号与系统MATLAB实现》实验指导书电气信息工程学院2014年2月长期以来,《信号与系统》课程一直采用单一理论教学方式,同学们依靠做习题来巩固和理解教学内容,虽然手工演算训练了计算能力和思维方法,但是由于本课程数学公式推导较多,概念抽象,常需画各种波形,作题时难免花费很多时间,现在,我们给同学们介绍一种国际上公认的优秀科技应用软件MA TLAB,借助它我们可以在电脑上轻松地完成许多习题的演算和波形的绘制。
MATLAB的功能非常强大,我们此处仅用到它的一部分,在后续课程中我们还会用到它,在未来地科学研究和工程设计中有可能继续用它,所以有兴趣的同学,可以对MATLAB 再多了解一些。
MATLAB究竟有那些特点呢?1.高效的数值计算和符号计算功能,使我们从繁杂的数学运算分析中解脱出来;2.完备的图形处理功能,实现计算结果和编程的可视化;3.友好的用户界面及接近数学表达式的自然化语言,易于学习和掌握;4.功能丰富的应用工具箱,为我们提供了大量方便实用的处理工具;MATLAB的这些特点,深受大家欢迎,由于个人电脑地普及,目前许多学校已将它做为本科生必须掌握的一种软件。
正是基于这些背景,我们编写了这本《信号与系统及MATLAB实现》指导书,内容包括信号的MA TLAB表示、基本运算、系统的时域分析、频域分析、S域分析、状态变量分析等。
通过这些练习,同学们在学习《信号与系统》的同时,掌握MATLAB的基本应用,学会应用MATLAB的数值计算和符号计算功能,摆脱烦琐的数学运算,从而更注重于信号与系统的基本分析方法和应用的理解与思考,将课程的重点、难点及部分习题用MATLAB进行形象、直观的可视化计算机模拟与仿真实现,加深对信号与系统的基本原理、方法及应用的理解,为学习后续课程打好基础。
另外同学们在进行实验时,最好事先预习一些MATLAB的有关知识,以便更好地完成实验,同时实验中也可利用MATLAB的help命令了解具体语句以及指令的使用方法。
《信号与系统》实验三
三:
源程序:
(1):τ/T=1/4时的周期矩形脉冲的幅度谱和相位谱:
n=-20:20;
F=zeros(size(n));
forii=-20:20
F(ii+21)= sin(ii*pi/4)/(ii*pi+eps);
end
F(21)=1/4;
实验
内容
1.求图1所示周期信号( , )的傅里叶级数,用Matlab做出其前3、9、21、45项谐波的合成波形与原信号作比较,并做出其单边幅度谱和相位谱。
图1 周期为2的三角脉冲信号
2. 求图2所示的单个三角脉冲( )的傅里叶变换,并做出其幅度谱和相位谱。
图2 单个三角脉冲
3. 求不同占空比下周期矩形脉冲的幅度谱和相位谱,例如 、 。
y=1/4;
forn=1:m
y=y+4/(n*n*pi*pi)*(1-cos(n*pi/2)).*cos(n*pi.*t);
end
源代码:
t=-6:0.01:6;
d=-6:2:6;
fxx=pulstran(t,d,'tripuls');
f1=fourierseries(3,t);
f2=fourierseries(9,t);
n=1:10;
a=zeros(size(n));
fori=1:10
a(i)=angle(4/(i*i*pi*pi)*(1-cos(i*pi/2)))
end
n=0:pi:9*pi
stem(n,a,'fill','linewidth',2);
axis([0,9*pi,-0.2,0.2])
实验三利用MATLAB求取状态空间模型的相似变换及其标准型、控制系统的不同状态模型实现
现代控制理论第一次上机实验报告实验三 利用MATLAB 求取状态空间模型的相似变换及其标准型、控制系统的不同状态模型实现实验目的:1、通过实验掌握线性系统的对角线标准型、约旦标准型、模态标准型以及伴随矩阵标准型的表示及相应变换阵的求解;2、通过编程、上机调试,掌握系统可控性和可观测性的判别方法、系统的可控性和可观测性分解等;3、加深理解由控制系统传递函数建立能控、能观、约当标准型等不同状态模型的方法。
实验要求:1.实现同一系统传递函数的状态模型是唯一的吗?2.系统传递函数除上面三种不同状态模型实现外,常见的还有串连实现,对否? 3.对于上述系统传递函数,其输出稳态值与输入阶跃信号幅值有何关系? 实验步骤:1. 根据所给系统的已知条件(可自行参阅选择刘豹教材中的例题或习题),如传递函数、零极点模型或(A 、B 、C 、D ),实现状态空间模型之间的相似变换、写出其对角线标准型、约当标准型、模态标准型以及伴随矩阵标准型的表示及求解相应变换阵,采用MATLAB 的相关函数编写m-文件。
已知系统的传递函数如下:3211()(1)( 2.5)(5)8.52012.5160.270.11 2.55G s s s s s s s s s s ==++++++-=+++++运行如下m-文件,得到传递函数的状态空间模型: num=[0 0 0 1]; den=[1 8.5 20 12.5]; [A,B,C,D]=tf2ss(num,den) 得到 A =-8.5000 -20.0000 -12.5000 1.0000 0 0 0 1.0000 0 B = 1 0 0 C =D =因此,传递函数的一个状态空间实现是G=ss(A,B,C,D);(1)对角线标准型:计算矩阵A的特征值及与特征值对应的对角型变换矩阵D的m-如下:[V,D]=eig(A)[V,D]=eig(A)V =-0.9798 0.9184 0.57740.1960 -0.3674 -0.5774-0.0392 0.1469 0.5774D =-5.0000 0 00 -2.5000 00 0 -1.0000由对角线标准型的变换阵D,运行下列m-文件的到对角线标准型矩阵系数:G1=ss2ss(G,D)a =x1 x2 x3x1 -8.5 -40 -62.5x2 0.5 0 0x3 0 0.4 0b =u1x1 -5x2 0x3 0c =x1 x2 x3d =u1y1 0Continuous-time model.由上可得,对角线标准型:对角型变换矩阵为:(2)约旦标准型:计算矩阵A变换为约当标准型J,并得到变换矩阵V,运行下列m-文件:>> [V,J]=jordan(A)V =2.5000 -1.6667 0.1667-0.5000 0.6667 -0.16670.1000 -0.2667 0.1667J =-5.0000 0 00 -2.5000 00 0 -1.0000根据得到的约当标准型的变换矩阵V,运行下列文件得到约当标准型的矩阵系数:G1=ss2ss(G,V)a =x1 x2 x3x1 -104 -613.6 -697.1x2 21 123.1 139.6x3 -4.2 -24.28 -27.58b =u1x1 2.5x2 -0.5x3 0.1c =x1 x2 x3y1 1 7.5 12.5d =u1y1 0Continuous-time model由上可得,约旦标准型:约旦标准型的变换矩阵为:(3)模态标准型运行以下m-程序可得到模态标准型系数矩阵和其变换矩阵:>> [G1,V]=canon(G,'modal')a =x1 x2 x3x1 -5 0 0x2 0 -2.5 0x3 0 0 -1b =u1x1 -0.825x2 -0.95x3 0.375c =x1 x2 x3y1 -0.1212 0.2807 0.4444d =u1y1 0Continuous-time model.V =-0.8250 -2.8875 -2.0625-0.9500 -5.7000 -4.75000.3750 2.8125 4.6875由上可得,模态标准型:模态标准型的变换矩阵为:(4)伴随矩阵标准型运行以下m-程序可得到伴随矩阵标准型系数矩阵和其变换矩阵:>> [G1,V]=canon(G,'companion')a =x1 x2 x3x1 0 0 -12.5x2 1 0 -20x3 0 1 -8.5b =u1x1 1x2 0x3 0c =x1 x2 x3y1 0 0 1d =u1y1 0Continuous-time model.V =1.0000 8.5000 20.00000 1.0000 8.50000 0 1.0000由上可得,伴随矩阵标准型:模态标准型的变换矩阵为:2.根据所给系统的已知条件(可自行参阅选择刘豹教材中的例题或习题),如(A、B、C、D)模型,判断其可控性和可观测性并进行可控性和可观测性分解。
数字信号处理实验 matlab版 快速傅里叶变换(FFT)
实验14 快速傅里叶变换(FFT)(完美格式版,本人自己完成,所有语句正确,不排除极个别错误,特别适用于山大,勿用冰点等工具下载,否则下载之后的word 格式会让很多部分格式错误,谢谢)XXXX 学号姓名处XXXX一、实验目的1、加深对双线性变换法设计IIR 数字滤波器基本方法的了解。
2、掌握用双线性变换法设计数字低通、高通、带通、带阻滤波器的方法。
3、了解MA TLAB 有关双线性变换法的子函数。
二、实验内容1、双线性变换法的基本知识2、用双线性变换法设计IIR 数字低通滤波器3、用双线性变换法设计IIR 数字高通滤波器4、用双线性变换法设计IIR 数字带通滤波器三、实验环境MA TLAB7.0四、实验原理1、实验涉及的MATLAB 子函数(1)fft功能:一维快速傅里叶变换(FFT)。
调用格式:)(x fft y =;利用FFT 算法计算矢量x 的离散傅里叶变换,当x 为矩阵时,y 为矩阵x每一列的FFT 。
当x 的长度为2的幂次方时,则fft 函数采用基2的FFT 算法,否则采用稍慢的混合基算法。
),(n x fft y =;采用n 点FFT 。
当x 的长度小于n 时,fft 函数在x 的尾部补零,以构成n点数据;当x 的长度大于n 时,fft 函数会截断序列x 。
当x 为矩阵时,fft 函数按类似的方式处理列长度。
(2)ifft功能:一维快速傅里叶逆变换(IFFT)。
调用格式:)(x ifft y =;用于计算矢量x 的IFFT 。
当x 为矩阵时,计算所得的y 为矩阵x 中每一列的IFFT 。
),(n x ifft y =;采用n 点IFFT 。
当length(x)<n 时,在x 中补零;当length(x)>n 时,将x 截断,使length(x)=n 。
(3)fftshift功能:对fft 的输出进行重新排列,将零频分量移到频谱的中心。
调用格式:)(x fftshift y =;对fft 的输出进行重新排列,将零频分量移到频谱的中心。
matlab实现傅里叶变换
一、傅立叶变化的原理;(1)原理正交级数的展开是其理论基础!将一个在时域收敛的函数展开成一系列不同频率谐波的叠加,从而达到解决周期函数问题的目的。
在此基础上进行推广,从而可以对一个非周期函数进行时频变换。
从分析的角度看,他是用简单的函数去逼近(或代替)复杂函数,从几何的角度看,它是以一族正交函数为基向量,将函数空间进行正交分解,相应的系数即为坐标。
从变幻的角度的看,他建立了周期函数与序列之间的对应关系;而从物理意义上看,他将信号分解为一些列的简谐波的复合,从而建立了频谱理论。
当然Fourier积分建立在傅氏积分基础上,一个函数除了要满足狄氏条件外,一般来说还要在积分域上绝对可积,才有古典意义下的傅氏变换。
引入衰减因子e^(-st),从而有了Laplace变换。
(好像走远了)。
(2)计算方法连续傅里叶变换将平方可积的函数f(t)表示成复指数函数的积分或级数形式。
这是将频率域的函数F(ω)表示为时间域的函数f(t)的积分形式。
连续傅里叶变换的逆变换 (inverse Fourier transform)为即将时间域的函数f(t)表示为频率域的函数F(ω)的积分。
一般可称函数f(t)为原函数,而称函数F(ω)为傅里叶变换的像函数,原函数和像函数构成一个傅里叶变换对(transform pair)。
二、傅立叶变换的应用;DFT在诸多多领域中有着重要应用,下面仅是颉取的几个例子。
需要指出的是,所有DFT的实际应用都依赖于计算离散傅里叶变换及其逆变换的快速算法,即快速傅里叶变换(快速傅里叶变换(即FFT)是计算离散傅里叶变换及其逆变换的快速算法。
)。
(1)、频谱分析DFT 是连续傅里叶变换的近似。
因此可以对连续信号x(t)均匀采样并截断以得到有限长的离散序列,对这一序列作离散傅里叶变换,可以分析连续信号x(t)频谱的性质。
前面还提到DFT 应用于频谱分析需要注意的两个问题:即采样可能导致信号混叠和截断信号引起的频谱泄漏。
傅立叶(Fourier)变换方法
s *j ,l = s j ,l − (aϕ j ,l + bϕ j +1,l + cϕ j −1,l + dϕ j ,l +1 + eϕ j ,l −1 ) 其中
特别地,若 ϕ B 很小,可简单地取 ϕ 的内点值为0
s *j ,l = s j ,l 非边界邻点处
s *,l = s j ,l − λBϕB ,边界邻点处 j
周期边界条件
s
F1 = F2 N −1,F2 = F2 N
S j = s j,(2 ≤ j ≤ N − 1),SN = 0 S j = −s2N − j,(N + 1 ≤ j ≤ 2N − 2),S 2N −1 = 0
x1
xN
x2 N −1
F j = −F2N − j = f j,(2 ≤ j ≤ N − 1) F1 = −F2N −1 = 0,FN = F−N = 0
傅立叶变换:
g
Байду номын сангаас
m
=
∑
N
f je
i
2 π mj N
j =1
逆变换:
f
j
=
m
N + 1 = − + 1 2
∑
N 2
g
m
e
− i
2 π mj N
可推广到多维 (如2D)
g
m ,n
=
∑ ∑
j =1
M
N
f
N
j ,l
e
i
2 π mj M
e
i
2 π nl N
l =1
2 θm 2 θn = −4sin ( ) + sin ( ) 2 210
实验三 MATLAB符号计算
expr1 =
x^3+2*exp(-t)*x^2+(1+exp(-t)^2)*x+exp(-t) expr2 = x*exp(-t)^2+(2*x^2+1)*exp(-t)+(x^2+1)*x
expand使用指令 y=0.14-(1.2e+002)*(-2.4005*(0.445-x)^7+4.2505*(0.445x)^6-2.2336*(0.445-x)^5+0.4993*(0.445-x)^40.0514*(0.445-x)^3+0.0025*(0.445-x)^2);
符号矩阵的生成
符号矩阵可通过函数sym来生成。符号矩阵中的元素是任何不带等号的符 号表达式,各符号表达式的长度可以不相同;符号矩阵中,以空格或逗号 分隔的元素指定的是不同列的元素而分号分隔的元素指定的是不同行的元 素。 例:
syms x; A=sym(‘[cos(x),sin(x),x;-x+1 x^2+x+1 tan(x)]’) A= [ cos(x), sin(x), x] [ -x+1, x^2+x+1, tan(x)] >> size(A) %求符号矩阵的大小 ans = 2 3 > a=[1 2 3 4;4 5 6 7]; >> b=sym(a) b= [ 1, 2, 3, 4] [ 4, 5, 6, 7]
40.Fourier变换的定义
f (t ) F
e
t
dt 2 e
0
t
dt
2
存在, 所以根据Fourier变换的反演公式
1
2 1 2 2 2
2 i t e d 2 2
2
1
2
2
(cos t i sin t )d
F [ f ( t )]
F
1
f ( t )e
i t
dt ,
i t
1 [ F ( )] 2
F ( )e d .
如果f (t)满足Fourier积分定理条件, 那么在f (t) 的连续点处成立Fourier变换的反演公式
f (t )= F
1
F
[ f ( t )] .
例1 设 f ( x ) e
b2 x 2
(b 0), 求 F [ f ( x )].
根据定义,有 解 运行下面的 MATLAB语句.
b x ib x positive >> syms x w;syms F [ f ( x )] e dx e
2 2
i x b2 x 2 2 b
e dx . e >> r=simple(F) % 化简
4 b2
2
b xi 2 2b
2
2
O
x
r=
下面计算 e 因为 e
b2 z 2
b xi 2 2b
实验三 信号的时域运算Matlab实现
向量,f 和 k 为返回的和序列及其的时间序列向量
k=min(min(k1),min(k2)):max(max(k1),max(k2)); %构造和序列的长度
s1=zeros(1,length(k));s2=s1;
%初始化新向量
s1(find((k>=min(k1))&(k<=max(k1))==1))=f1;
2) f4 (t) = −[ f1(−t) + f1(t)]
3) f5 (t) = f2 (t) × f3 (t)
4) f6 (t) = f1 (t) × f2 (t)
4. 已知离散序列 f (k ) = {3,0,1,2, 3,3,3,3,0,3},用 MATLAB 绘出下列 ↑ 序列的波形。
1) f (k − 2)ε (k)
2) f (−k)
3) f (−k + 2)
4) f (k − 2)ε (k − 2)
【四】 思考题
实验三 信号的时域运算、时域变换及 MATLAB 实现
在对信号进行平移、反折和尺度变换时,运算顺序对结果是否有影响?在运算中应该注 意什么?
【五】 实验报告要求
1.简述实验目的及实验原理; 2.实验内容及结果分析:
~ n1 + m1 +( L1 + L2 )- 2 非零。因此,对于 f1 (k ) 和均为有限期间非零的情况,我们只
需要计算序列 f (k ) 在区间( n1 + m1 )~ n1 + m1 +( L1 + L2 )- 2 的序列值,便可以表征
根据前面的介绍,我们可用符号运算来实现上述过程,MATLAB 命令如下: syms t; f=sym('(t/2+1)*(heaviside(t+2)-heaviside(t-2))'); subplot(2,3,1),ezplot(f,[-3,3]); y1=subs(f,t,t+2); subplot(2,3,2),ezplot(y1,[-5,1]); y2=subs(f,t,t-2); subplot(2,3,3),ezplot(y2,[-1,5]); y3=subs(f,t,-t); subplot(2,3,4),ezplot(y3,[-3,3]); y4=subs(f,t,2*t); subplot(2,3,5),ezplot(y4,[-2,2]); y5=-f; subplot(2,3,6),ezplot(y5,[-3,3]); 运行结果如图 3.1 所示。
信号与系统实验指导书(matlab软件仿真)
信号与系统实验指导书(MATLAB仿真)目录实验一MATLAB 基本应用 (2)实验二信号的时域表示 (7)实验三连续信号卷积 (11)实验四典型周期信号的频谱表示 (18)实验五傅立叶变换性质研究 (23)实验六离散信号分析 (26)实验七离散系统的Z域分析 (29)Matlab相关符号及函数说明 (37)实验一MATLAB 基本应用一、实验目的:学习MATLAB的基本用法,了解 MATLAB 的目录结构和基本功能以及MATLAB在信号与系统中的应用。
二、实验内容:例一已知x的取值范围,画出y=sin(x)的图型。
参考程序:x=0:0.05:4*pi;y=sin(x);plot(y)例二计算y=sin(π/5)+4cos(π/4)例三已知z 取值范围,x=sin(z);y=cos(z);画三维图形。
z=0:pi/50:10*pi;x=sin(z);y=cos(z);plot3(x,y,z)xlabel('x')ylabel('y')zlabel('z')例四已知x的取值范围,用subplot函数绘图。
参考程序:x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(2,2,1),plot(x,y1),title('sin(x)')subplot(2,2,2),plot(x,y2),title('1.5*cos(x)')subplot(2,2,3),plot(x,y3),title('sin(2*x)')subplot(2,2,4),plot(x,y4),title('5*cos(2*x)')连续信号的MATLAB表示1、指数信号:指数信号Ae at在MATLAB中可用exp函数表示,其调用形式为:y=A*exp(a*t) (例取A=1,a=-0.4)参考程序:A=1;a=-0.4;t=0:0.01:10;ft=A*exp(a*t);plot(t,ft);grid on;注:grid on是一个函数,表示在画图的时候添加网格线。
数字信号处理第二版(吴镇扬)第三,四次实验(山师)
实验三快速Fourier变换(FFT)及其应用一、实验目的1.在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB 中的有关函数。
2.应用FFT对典型信号进行频谱分析。
3. 了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
4.应用FFT实现两个序列的线性卷积和方法。
二、实验原理与方法上机实验内容:(1)、观察高斯序列的时域和幅频特性,固定信号xa(n)中参数p=8,改变q的值,使q分别等于2,4,8,观察它们的时域和幅频特性,了解当q取不同值时,对信号序列的时域幅频特性的影响;固定q=8,改变p,使p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,观察p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。
程序:function [x, F]=gauss(p,q);n=0:15;x(n+1)=exp(-(n+1-p).^2/q);F=fft(x);endclear all;figure(1)[x1,F1]=gauss(8,2);n=0:15;subplot(3,2,1);plot(n,x1);text(6,0.2,'p=8,q=2');grid on;xlabel('n');ylabel('时域');subplot(3,2,2);plot(abs(F1));text(7.5,2,'p=8,q=2');grid on;xlabel('k');ylabel('频域');[x2,F2]=gauss(8,4);n=0:15;subplot(3,2,3);plot(n,x2);text(6,0.2,'p=8,q=4');grid on;xlabel('n');ylabel('时域');subplot(3,2,4);plot(abs(F2));text(7.5,2,'p=8,q=4'); grid on;xlabel('k');ylabel('频域');[x3,F3]=gauss(8,8);n=0:15;subplot(3,2,5);plot(n,x3);text(6,0.2,'p=8,q=8'); grid on;xlabel('n');ylabel('时域');subplot(3,2,6);plot(abs(F3));text(7.5,2,'p=8,q=8'); grid on;xlabel('k');ylabel('频域');figure(2)[x4,F4]=gauss(8,8);n=0:15;subplot(3,2,1);plot(n,x4);text(6,0.2,'p=8,q=8'); grid on;xlabel('n');ylabel('时域');subplot(3,2,2);plot(abs(F4));text(7.5,2,'p=8,q=8'); grid on;xlabel('k');ylabel('频域');[x5,F5]=gauss(13,8);n=0:15;subplot(3,2,3);plot(n,x5);text(6,0.2,'p=13,q=8'); grid on;xlabel('n');ylabel('时域');subplot(3,2,4);plot(abs(F5));text(7.5,2,'p=13,q=8'); grid on ;xlabel('k');ylabel('频域');[x6,F6]=gauss(14,8); n=0:15;subplot(3,2,5);plot(n,x6);text(6,0.2,'p=14,q=8'); grid on ;xlabel('n');ylabel('时域'); subplot(3,2,6);plot(abs(F6));text(7.5,2,'p=14,q=8'); grid on ;xlabel('k'); ylabel('频域');5101500.51p=8,q=2n时域0510152024p=8,q=2k频域5101500.51p=8,q=4n时域0510152024p=8,q=4k频域5101500.51p=8,q=8n时域51015200510p=8,q=8k频域5101500.51p=8,q=8n时域51015200510p=8,q=8k频域5101500.51p=13,q=8n时域510152005p=13,q=8k频域5101500.51p=14,q=8n时域510152005p=14,q=8k频域(2)、观察衰减正弦序列xb(n)的时域和幅频特性,a=0.1,f=0.0625,检查谱峰出现位置是否正确,注意频谱的形状,绘出幅频特性曲线,改变f ,使f 分别等于0.4375和0.5625,观察这两种情况下,频谱的形状和谱峰出现位置,有无混叠和泄漏现象?说明产生现象的原因。
fourier变换及逆变换
fourier变换及逆变换
Fourier变换是一种常用于信号和图像处理的数学工具,它将一个信号在时域中的表示转换为在频域中的表示。
Fourier变换能够将信号分解成一系列正弦和余弦函数的组合,从而分析信号的频谱特性。
在数学上,Fourier变换定义为:
F(ω) = ∫f(t)e^(-iωt)dt
其中,F(ω)表示在频域中的信号表示,f(t)表示在时域中的信号表示,e^(-iωt)表示复指数函数,ω表示角频率。
Fourier逆变换是Fourier变换的逆操作,它将在频域中的信号表示转换回时域中的信号表示。
逆变换定义为:
f(t) = (1/2π)∫F(ω)e^(iωt)dω
其中,f(t)表示在时域中的信号表示,F(ω)表示在频域中的信号表示,e^(iωt)表示复指数函数,ω表示角频率。
通过Fourier变换和逆变换,我们可以在信号的时域和频域之间进行转换,并分析信号的频谱特性,包括频率分量、幅度和相位。
这对于信号处理、滤波、图像处理等应用非常重要。
matlab 离散傅里叶逆变换
标题:探究Matlab中离散傅里叶逆变换的原理与应用在Matlab中,离散傅里叶变换(Discrete Fourier Transform,DFT)和离散傅里叶逆变换(Inverse Discrete Fourier Transform,IDFT)是信号处理中极为重要的概念和工具。
它们在数字信号处理、通信系统、图像处理等领域有着广泛的应用。
在本文中,我们将探讨Matlab 中离散傅里叶逆变换的原理与应用,从简单到复杂地解释这一概念,以便读者更深入地理解和运用。
1. 离散傅里叶变换(DFT)和离散傅里叶逆变换(IDFT)的基本概念在信号处理中,DFT和IDFT是将信号从时域转换到频域或者从频域转换到时域的重要数学工具。
DFT将离散的时域信号转换成相应的频率谱,而IDFT则是将频域信号还原回时域信号。
在Matlab中,我们可以使用fft和ifft函数来进行DFT和IDFT的计算,其中ifft即代表离散傅里叶逆变换。
2. Matlab中离散傅里叶逆变换的实现在Matlab中,我们可以使用ifft函数来进行离散傅里叶逆变换的计算。
ifft函数的基本语法为:```matlabx = ifft(X)```其中X为输入的频域信号,x为输出的时域信号。
在实际应用中,我们可以通过ifft函数将频域信号恢复为原始的时域信号,以便进行进一步的分析和处理。
3. 离散傅里叶逆变换在信号重构中的应用离散傅里叶逆变换在信号重构中起着重要作用。
通过DFT将信号转换到频域,对频域信号进行处理后,可以利用IDFT将处理后的频域信号还原为时域信号,实现信号的重构和恢复。
在通信系统中,信号的调制、解调等过程中也会涉及到离散傅里叶逆变换的应用。
4. 个人观点和理解离散傅里叶逆变换作为信号处理中的重要工具,在Matlab中的实现方式简单明了,但其背后的数学原理较为复杂。
通过学习和理解离散傅里叶逆变换,我们可以更好地理解信号的频域特性,实现信号的分析和处理。
信号与系统MATLAB实验
2016-2017学年第一学期信号与系统实验报告班级:姓名: 学号: 成绩:指导教师:实验一 常见信号的MATLAB 表示及运算一.实验目的1.熟悉常见信号的意义、特性及波形2.学会使用MATLAB 表示信号的方法并绘制信号波形 3. 掌握使用MATLAB 进行信号基本运算的指令 4. 熟悉用MATLAB 实现卷积积分的方法二.实验原理信号一般是随时间而变化的某些物理量。
按照自变量的取值是否连续,信号分为连续时间信号和离散时间信号,一般用()f t 和()f k 来表示。
若对信号进行时域分析,就需要绘制其波形,如果信号比较复杂,则手工绘制波形就变得很困难,且难以精确。
MATLAB 强大的图形处理功能及符号运算功能,为实现信号的可视化及其时域分析提供了强有力的工具。
根据MATLAB 的数值计算功能和符号运算功能,在MATLAB 中,信号有两种表示方法,一种是用向量来表示,另一种则是用符号运算的方法。
在采用适当的MATLAB 语句表示出信号后,就可以利用MATLAB 中的绘图命令绘制出直观的信号波形了。
下面分别介绍连续时间信号和离散时间信号的MATLAB 表示及其波形绘制方法。
1.连续时间信号所谓连续时间信号,是指其自变量的取值是连续的,并且除了若干不连续的点外,对于一切自变量的取值,信号都有确定的值与之对应。
从严格意义上讲,MATLAB 并不能处理连续信号。
在MATLAB 中,是用连续信号在等时间间隔点上的样值来近似表示的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。
在MATLAB 中连续信号可用向量或符号运算功能来表示。
⑴ 向量表示法对于连续时间信号()f t ,可以用两个行向量f 和t 来表示,其中向量t 是用形如12::t t p t 的命令定义的时间范围向量,其中,1t 为信号起始时间,2t 为终止时间,p 为时间间隔。
向量f 为连续信号()f t 在向量t 所定义的时间点上的样值。
信号与系统Matlab实验作业
实验一典型连续时间信号和离散时间信号一、实验目的掌握利用Matlab画图函数和符号函数显示典型连续时间信号波形、典型时间离散信号、连续时间信号在时域中的自变量变换。
二、实验内容1、典型连续信号的波形表示(单边指数信号、复指数信号、抽样信号、单位阶跃信号、单位冲击信号)1)画出教材P28习题1-1(3) ()[(63)(63)]t=----的波形图。
f t e u t u t2)画出复指数信号()()j t f t e σω+=当0.4, 8σω==(0<t<10)时的实部和虚部的波形图。
t=0:0.01:10;f1='exp(0.4*t)*cos(8*t)';f2='exp(0.4*t)*sin(8*t)';figure(1)ezplot(f1,t);grid on;figure(2)ezplot(f2,t);grid on;3)画出教材P16图1-18,即抽样信号Sa(t)的波形(-20<t<20)。
t=-10:0.01:10;f='sin(t)/t';ezplot(f,t);grid on;4)用符号函数sign画出单位阶跃信号u(t-3)的波形(0<t<10)。
t=0:0.01:10;f='(sign(t-3)+1)/2';ezplot(f,t);grid on;5)单位冲击信号可看作是宽度为∆,幅度为1/∆的矩形脉冲,即t=t 1处的冲击信号为11111 ()()0 t t t x t t t otherδ∆⎧<<+∆⎪=-=∆⎨⎪⎩画出0.2∆=, t 1=1的单位冲击信号。
t=0:0.01:2;f='5*(u(t-1)-u(t-1.2))';ezplot(f,t);grid on;axis([0 2 -1 6]);2、典型离散信号的表示(单位样值序列、单位阶跃序列、实指数序列、正弦序列、复指数序列)编写函数产生下列序列:1)单位脉冲序列,起点n0,终点n f,在n s处有一单位脉冲。
MATLAB矩阵及其运算-实验三
实验三 MATLAB矩阵及其运算学号:3121003210 姓名:李书杰专业:电子信息工程2班日期:10.15 一实验目的1.熟悉MATLAB变量和数据操作。
2.掌握MATLAB矩阵及其操作。
3.熟悉MATLAB运算与矩阵分析。
二实验环境一台计算机、Windows 7、MATLAB7.1三实验内容完成书本P54第2题第3题以及思考题第5题的(1)四实验结果1.已知A,B矩阵,求相应的表达式2.已知A矩阵,完成下列操作2.1输入A在[10.25]范围内的全部元素实验结果分析:k=find(A>=10&A<=25) A(k)2.2取出A前3行构成矩阵B,前两列构成矩阵C,右下角3*2子矩阵构成矩阵D,B与C的乘积构成矩阵E实验结果分析:B=A(1:3,:)C=A(:,1:2)D=A(2:4,3:4)E=B*C2.3分别求表达式3. 求下列矩阵的主对角元素,上三角矩阵,下三角矩阵,逆矩阵,行列式的值,秩,范数,条件数,迹3.1实验结果分析:主对角线元素,上三角,下三角D=diag(A)D1=triu(A)D2=tril(A)3.2实验结果分析:逆矩阵,行列式的值,秩3.3实验结果分析:范数,对1,对 2,对无穷的范数V1=norm(A,1)V2=norm(A)V3=norm(A,inf)3.4实验结果分析: 条件数,对1,对 2,对无穷的条件数C1=cond(A,1)C2=cond(A)C3=cond(A,inf)3.4实验结果分析:迹ji=trace(A)五实验总结通过对Matlab实验现象和实验数据分析,熟悉了Matlab的操作环境及对矩阵的基本操作方法,同时熟悉MATLAB的一些基本函数,为以后的学习打下了基础。
信号与系统MATLAB实验全
实验篇 信号与系统实验指导实验一、MATLAB 编程基础及典型实例一、实验目的(1) 熟悉MATLAB 软件平台的使用; (2) 熟悉MATLAB 编程方法及常用语句; (3) 掌握MATLAB 的可视化绘图技术;(4) 结合《信号与系统》的特点,编程实现常用信号及其运算。
二、实验原理连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点以外,信号都有确定的值与之对应。
严格来说,MATLAB 并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。
当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。
矩阵是MATLAB 进行数据处理的基本单元,矩阵运算是MATLAB 最重要的运算。
通常意义上的数量(也称为标量)在MATLAB 系统中是作为1×1的矩阵来处理的,而向量实际上是仅有一行或者一列的矩阵。
通常用向量表示信号的时间取值范围,如n = -5:5,但信号x(n)、向量n 本身的下标都是从1开始的,因此必须用一个与向量x 等长的定位时间变量n ,以及向量x ,才能完整地表示序列x(n)。
这一点详情可参考预备篇示例7的程序说明。
三、实验内容与步骤(1) 新建一个文件夹,以自己的汉语名字命名,以后就用该文件夹专门存放自己所编制的M 文件和产生的图形;将该文件夹设置成当前工作目录。
(2) 绘制信号t)32sin(e x(t)t 2-=的曲线,t 的范围在0 ~ 30s ,取样时间间隔为0.1s.(3) 在n = [-10:10] 范围产生离散序列:⎩⎨⎧≤≤-=其余n0,3n 32n,x(n) ,并绘图。
四、实验报告要求整理并给出“实验内容与步骤”(2)、(3)的程序代码与产生的图形;并回答下面的问题。
(1) 在调用某一函数文件时,该文件中除了输入、输出变量外的其它变量在调用函数结束后是否还存在?这些变量是全局还是局部变量?(2) 设n = -10:0.2:20,你可以通过哪些方法查看向量n 的维数?经过关系运算y = (n >= 3)以后,y 的维数是多少?y 又等于什么?(3) 通过MATLAB 的帮助系统,学习fliplr 函数的功能和使用方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Fourier 变换
解 syms t w; ut=sym('Heaviside(t)'); % 定义 0 时刻起跳的单位阶跃函数 UT=fourier(ut) % 实施 Fourier 变换,给出与理论一致的结果 UT = pi*Dirac(w)-i/w
2、simple 指令 matlab中simple函数的用法
注释:
(1)sym的意思是symbol,就是后面括号里面是个 代数式,要进行符号运算,不加意思就完全变了 (2)Dirac-----δ函数
(3)Heaviside----一般表示为阶跃函数 function f=heaviside(t) f=(t>0);小于0的都为0;大于0的为1;就是阶跃函数.
simple(‘s’),s是字符, 如果是对某个字符函数,如
y=(2+x)/x 化简,直接用simple(y)就得到2/x+1; 有
时表达式比较复杂,一次化简结果不太理想,就再
次化简,可以用simple(simple(y)) simplify和simple是Matlab符号数学工具箱提供 的两个简化函数,区别如下: simplify的调用格 式为:simplify(S);对表达式S进行化简。Simple 是通过对表达式尝试多种不同的方法(包括simplify) 进行化简,以寻求符号表达式S的最简形式
例6 写出下列【Matlab源程序】的结果
syms t w; syms beta positive;%定义符号参量beta
g=sym('Heaviside(t)');
f=t*exp(-beta*t)*g;
F=fourier(f) %结果为: F=
1/(beta+i*w)^2
例7 求 FW We 3wuw 的Fourier逆变换.
4、fourier 的缺省调用格式的使用
例2 求
的 Fourier 变换.
演示: fourier 的缺省调用格式的使用要十分谨慎.
syms t x w;ft=exp(-(t-x))*sym('Heaviside(t-x)');
F1=simple(fourier(ft,t,w))
% 给出以 w 为频率变量的正确结果
解: 【Matlab源程序】 syms t u w ifourier(w*exp(-3*w)*sym('Heaviside(w)')) %结果为: ans =1/2/(-3+i*x)^2/pi
例8 矩形脉冲信号的傅氏变换
编写信号 M=8; tend=1; T=10; N=2^M; dt=T/N; n=0:N-1; t=n*dt; w=zeros(size(t,2),1); Tow=find((tend-t)>0); w(Tow,1)=ones(length(Tow),1);
F2=simple(fourier(ft)) % 误把 x 当作时间变量
F3=simple(fourier(ft,t))
% 误把 x 当作时间变量,又误把 t 当作频率变量
F1 = 1/exp(i*x*w)/(1+i*w)
F2 =i*exp(-i*t*w)/(i+w)
F3 =i*exp(-t*(2+i*t))/(i+t)
例5 求函数 f cosat, g sinat的Fourier 变换
解:【Matlab源程序】 syms t w a; syms a positive;%定义符号参量a f=cos(a*t); g=sin(a*t); F=simple(fourier(f)) G=simple(fourier(g)) F= %结果为: pi*(dirac(-w+a)+dirac(w+a)) G= i*pi*(-dirac(-w+a)+dirac(w+a))
对上述例1 求 Fourier 变换 syms t w;ut=sym('Heaviside(t)'); % 定义 0 时刻起跳的单位阶跃函数 <1> UT=fourier(ut) % 实施 Fourier 变换,给出与理论一致的结果 UTC=maple('convert',UT,'piecewise','w') % 计算结果起指示作用 <3> UTS=simple(UT) % 在此是 5.3 版的运算结果,简化导致漏项! UT = pi*Dirac(w)-i/w UTC = PIECEWISE([undefined, w = 0],[0, otherwise]) UTS = pi*Dirac(w)-i/w
3、ifourier(Yw,w,t)逆变换命令的使用
对上述例1 求 Fourier 逆变换进行验算 解 syms t w; UT = pi*Dirac(w)-i/w; Ut=ifourier(UT,w,t) % 结果与原函数相等 Ut =heaviside(t)
或解1 syms t w; Yw = pi*Dirac(w)-i/w; ifourier(Yw,w,t) ans =heaviside(t)
plot(t,w,'b','LineWidth',2.5); title('矩形脉冲信号');xlabel('t --->'); 在命令窗口输入cftbyfft(w,t);得到该信号的傅氏变换频谱图 或者在命令窗口输入exp8_2_;得到该信号的傅氏变换频谱图与理论
解:【Matlab源程序】 syms x w; syms b positive ;%定义符号参量b f=exp(-b^2*x^2); F=simple(fourier(f)) %结果为: F =1/b*pi^(1/2)*exp(-1/4*w^2/b^2)
求多个函数的Fourier 变换【Matlab源程序】
实验三 MATLAB求Fourier变换及逆变换
(一) 实验类型:综合性 (二) 实验类别:基础实验 (三) 实验学时数:2学时
.
基本命令
1、fourier 指令的使用 F = fourier(f,u,v) 其中f是需要变换的表达式;u是变量; v是算子 就是最后的表达式是z或者v的函数
例1 求
例3 求函数f t 1的Fourier变换
t
【Matlab源程序】 syms t W
fourier(1/t) %结果为:
ans = i*pi*(1-2*heaviside(w))
求Fourier变换还可用方法:fourier, simple 指令 的配合使用
例4 求函数f eb2x2 (b 0)的Fourier变换