Presentation is loading. Please wait.

Presentation is loading. Please wait.

熟悉傅里叶变换的性质 熟悉常见信号的傅里叶变换 了解傅里叶变换的MATLAB实现方法. 熟悉傅里叶变换的性质 熟悉常见信号的傅里叶变换 了解傅里叶变换的MATLAB实现方法.

Similar presentations


Presentation on theme: "熟悉傅里叶变换的性质 熟悉常见信号的傅里叶变换 了解傅里叶变换的MATLAB实现方法. 熟悉傅里叶变换的性质 熟悉常见信号的傅里叶变换 了解傅里叶变换的MATLAB实现方法."— Presentation transcript:

1

2 熟悉傅里叶变换的性质 熟悉常见信号的傅里叶变换 了解傅里叶变换的MATLAB实现方法

3 连续时间信号 直接调用专用函数法 傅里叶变换的数值计算实现法 离散时间信号 正/反Z变换 离散系统的频率特性

4 直接调用专用函数法 傅里叶变换: 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)

5 注意: 在调用函数fourier( )及ifourier( )之前,要用syms命令对所有需要用到的变量进行说明,即要将这些变量说明成符号变量。对fourier( )中的f及ifourier( )中的F也要用符号定义符syms将其说明为符号表达式。

6 注意: 采用fourier( )及ifourier( )得到的返回函数,仍然为符号表达式。在对其作图时要用ezplot( )函数,而不能用plot()函数。

7 注意: fourier( )及ifourier( )函数的应用有很多局限性
果在返回函数中含有δ(ω)等函数,则ezplot( )函数也无法作出图来。 在用fourier( )函数对某些信号进行变换时,其返回函数如果包含一些不能直接表达的式子,则此时当然也就无法作图了。 尽管原时间信号f(t)是连续的,但却不能表示成符号表达式,此时只能应用下面介绍的数值计算法来进行傅氏变换了. 当然,大多数情况下,用数值计算法所求的频谱函数只是一种近似值。

8 例1:求函数 的傅里叶反变换f(t) syms t w;                             Fw=sym('1/(1+w^2)');                 %定义频谱函数 ft=ifourier(Fw,w,t);                   %对频谱函数F(jw) 进行傅氏反变换 运行结果: ft = 1/2*exp(-t)*heaviside(t)+1/2*exp(t)*heaviside(-t)

9 傅里叶变换的数值计算实现法 例2:用数值计算法实现门函 数的傅里叶变换,并画出幅度频谱图.

10 MATLAB程序如下: R=0.02;       %取样间隔0.02 t=-2:R:2;      % t为从-2到2,间隔为0.02的行向量 %有201个样本点 ft=[zeros(1,50),ones(1,101),zeros(1,50)];      % 产生f(t) % 的样值矩阵(即f(t) 的样本值组成的行向量) W1=10*pi;                              %取要计算的频率范围 M=500; k=0:M; w=k*W1/M;        %频域采样数为M, w %为频率正半轴的采样点 Fw=ft*exp(-j*t'*w)*R;       %求傅氏变换               FRw=abs(Fw);           %取振幅

11 W=[-fliplr(w),w(2:501)] ;           %形成负半轴和
正半轴的2M+1个频率点W FW=[fliplr(FRw),FRw(2:501)];      %形成对应于 2M+1个频率点的值 subplot(2,1,1) ; plot(t,ft) ;grid;          xlabel('t') ; ylabel('f(t)');                title('f(t)=u(t+1)-u(t-1)');               subplot(2,1,2) ; plot(W,FW) ;grid;      xlabel ('W') ; ylabel ('F(W)');            title('f(t)的振幅频谱图');              

12

13 在MATLAB语言中有专门对信号进行正反Z变换的函数ztrans( ) 和itrans( )。其调用格式分别如下:
F=ztrans( f )      对f(n)进行Z变换,其结果为F(z) F=ztrans(f,v)   对f(n)进行Z变换,其结果为F(v) F=ztrans(f,u,v)    对f(u)进行Z变换,其结果为F(v) f=iztrans ( F )      对F(z)进行Z反变换,其结果为f(n) f=iztrans(F,u)   对F(z)进行Z反变换,其结果为f(u) f=iztrans(F,v,u )    对F(v)进行Z反变换,其结果为f(u) 注意: 在调用函数ztrans( )及iztrans( )之前,要用syms命令对所有需要用到的变量(如t,u,v,w)等进行说明,即要将这些变量说明成符号变量。

14 Fz=ztrans(f) %对离散信号进行Z变换 运行结果如下: Fz = 2*z/(2*z-1)
例3.用MATLAB求出离散序列   的Z变换 MATLAB程序如下: syms k z f=0.5^k;          %定义离散信号 Fz=ztrans(f)       %对离散信号进行Z变换 运行结果如下: Fz = 2*z/(2*z-1)

15 例4.已知一离散信号的Z变换为 ,求出它所对应的离散信号f(k)
MATLAB程序如下: syms k z Fz=2*z/(2*z-1);       %定义Z变换表达式 fk=iztrans(Fz,k)        %求反Z变换 运行结果如下: fk = (1/2)^k

16 离散系统的频率特性 MATLAB为我们提供了专门用于求解离散系统频率响应的函数freqz() ,其调用格式如下:        [H,w]=freqz(B,A,N)    其中,B和A分别是表示待分析的离散系统的系统函数的分子,分母多项式的向量,N为正整数,返回向量H则包含了离散系统频率响应函数 在范围内的N个频率等分点的值。向量w则包含上半个圆范围内的N个频率等分点。在默认情况下N=512。         [H,w]=freqz(B,A,N,'whole')  其中,B,A和N的意义同上,而返回向量H包含了频率响应函数 在 范围内N个频率等分点的值。

17 离散系统的频率特性 由于调用freqz()函数只能求出离散系统频率响应的数值,不能直接绘制曲线图,因此,我们可以先用freqz()函数求出系统频率响应的值,然后再利用MATLAB的abs()和angle()函数以及plot()命令,即可绘制出系统在范围内的幅频特性和相频特性曲线。

18 例5.用MATLAB计算前面离散系统在频率范围内200个频率等分点的频率响应值,并绘出相应的幅频特性和相频特性曲线。
[H,w]=freqz(B,A,200); [H,w]=freqz(B,A,200,'whole');   %求出对应 范围内200 %个频率点的频率响应样值 HF=abs(H);                    %求出幅频特性值 HX=angle(H);                  %求出相频特性值 subplot(2,1,1);plot(w,HF)         %画出幅频特性曲线 subplot(2,1,2);plot(w,HX)         %画出相频特性曲线

19 运行结果如下: 运行结果分析:从该系统的幅频特性曲线可以看出,该系统呈高通特性,是一阶高通滤波器。

20 如果用FFT对模拟信号进行谱分析,首先要把模拟信号转换成数字信号
转换时要求知道模拟信号的最高截止频率,以便选择满足采样定理的采样频率。 一般选择采样频率是模拟信号中最高频率的3~4倍。 要选择对模拟信号的观测时间,如果采样频率和观测时间确定,则采样点数也确定了。这里观测时间和对模拟信号进行谱分析的分辨率有关,最小的观测时间和分辨率成倒数关系。 要求选择的采样点数和观测时间大于它的最小值。

21 用FFT作谱分析时,要求做FFT的点数服从2的整数幂,这一点在上面选择采样点数时可以考虑满足,即使满足不了,可以通过在序列尾部加0完成。

22 如果要进行谱分析的模拟信号是周期信号,最好选择观测时间是信号周期的整数倍。如果不知道信号的周期,要尽量选择观测时间长一些,以减少截断效应的影响。

23 用DFT对连续信号作谱分析。已知 xa(t)=cos(200*pi*t)+sin(100*pi*t)+cos(50*pi*t);
选取不同的截取长度Tp,观察用DFT进行频谱分析时存在的截取效应(频谱泄漏和谱间干扰)。 在计算机上用DFT对模拟信号进行谱分析时,只能以有限大的采样频率fs对模拟信号采样。 对有限点样本序列(等价于截取模拟信号一段进行采样)作DFT变换得到模拟信号的近似频谱

24 clear;close all; fs=400;T=1/fs; Tp=0. 04;N=Tp. fs; N1=[N,4. N,8
clear;close all; fs=400;T=1/fs; Tp=0.04;N=Tp*fs; N1=[N,4*N,8*N]; %三种长度0.04s 4*0.04s 8*0.04s %矩形窗截断 for m=1:3 n=1:N1(m); xn=cos(200*pi*n*T)+sin(100*pi*n*T)+cos(50*pi*n*T); Xk=fft(xn,4096); fk=fs*[0:4095]/4096; subplot(3,2,2*m-1);plot(fk,abs(Xk)/max(abs(Xk))); if m==1 title('矩形窗截断'); end

25 %加海明窗截断 for m=1:3 n=1:N1(m); wn=hamming(N1(m)); xn=(cos(200*pi*n*T)+sin(100*pi*n*T)+cos(50*pi*n*T)).*wn'; Xk=fft(xn,4096); fk=fs*[0:4095]/4096; subplot(3,2,2*m) plot(fk,abs(Xk)/max(abs(Xk))); if m==1 title('hamming窗截断'); end

26

27  1、 求出下列离散序列的Z变换

28  2、 分别以变换区间 N=8,N=16 进行FFT,画出相应的幅频特性曲线。 


Download ppt "熟悉傅里叶变换的性质 熟悉常见信号的傅里叶变换 了解傅里叶变换的MATLAB实现方法. 熟悉傅里叶变换的性质 熟悉常见信号的傅里叶变换 了解傅里叶变换的MATLAB实现方法."

Similar presentations


Ads by Google