MATLAB实验傅里叶分析

合集下载

实验用MATLAB计算傅里叶变换

实验用MATLAB计算傅里叶变换

实验二 用MATLAB 计算傅立叶变换(2课时)一、实验目的1、掌握用MA TLAB 计算DTFT 及系统频率响应的方法。

2、掌握用MA TLAB 计算DFT 和IDFT 的方法。

3、掌握用DFT 计算圆周卷积和线性卷积的方法。

二、实验设备计算机一台,装有MATLAB 软件。

三、实验原理和基本操作1.用MA TLAB 计算DTFT对于序列x (n ),其离散时间傅立叶变换(DTFT )定义为:∑∞-∞=-=n n j e n x j X ωω)()( (1)序列的傅立叶变换(DTFT )在频域是连续的,并且以ω=2π为周期。

因此只需要知道jw X(e )的一个周期,即ω=[0,2π],或[-π,π]。

就可以分析序列的频谱。

用MA TLAB 计算DTFT ,必须在-π≤ω≤π范围内,把ω用很密的、长度很长的向量来近似,该向量中各个值可用下式表示: w=k*dw=k*K π2 (2) 其中:d ω=Kπ2 称为频率分辨率。

它表示把数字频率的范围2π均分成K 份后,每一份的大小,k 是表示频率序数的整数向量,简称为频序向量,它的取值可以有几种方法:通常在DTFT 中,频率取-π≤ω<л的范围,当K 为偶数时,取 k 12,,1,0,1,,12,2--+--=K K K 如果K 为奇数,则取 k 5.02,,1,0,1,,5.02--+-=K K 可以为奇偶两种情况综合出一个共同的确定频序向量k 的公式; k=12K -⎢⎥-⎢⎥⎣⎦ :12K -⎢⎥⎢⎥⎣⎦(3) 上式中⎢⎥⎣⎦表示向下取整。

在MA TLAB 中的向下取整函数为floor ,floor (x )的作用是把x 向下(向-∞方向)取整,所以与(3)式等价的MATLAB 语句为 k ))5.02(:)5.02((-+-=K K floor (4) 给定了输入序列(包括序列x 及其位置向量n ),又设定了频率分辨率d ω及频序向量k ,则DTFT 的计算式(1)可以用一个向量与矩阵相乘的运算来实现。

傅里叶分析matlab程序

傅里叶分析matlab程序

x t cos 2* pi *50* t cos 2* pi *200* t
看其时域图为
2 1.5 1 0.5 0 -0.5 -1 -1.5 -2
(1.2)
0
0.05
0.1
0.15
0.2
0.25
ቤተ መጻሕፍቲ ባይዱ
0.3
0.35
0.4
0.45
0.5
图表 1 信号时域图
再看去频域的图
5000 4500 4000 3500 3000 2500 2000 1500 1000 500 0 0 50 100 150 200 250 300 350 400 450 500

j
d
为了快速技术离散傅里叶变换, 通常使用快速傅里叶变换来代替信号的傅里 叶变换。现给出 matlab 公式如下
n=length(sig);%信号sig的长度 fs=1000; %采用频率 nfft=2^nextpow2(n); X=fft(sig,nfft); %做傅里叶变换 Axx=(abs(X)); t=nfft/2-1))/nfft*fs; plot(t,Axx)作图
傅里叶分析(Fourier analysis)主要研究函数的傅里叶变换及其性质。连续函 数的傅里叶公式如下
F ( )



f (t )e jt dt
(1.1)
而信号处理领域,通常需要将时域的信号 f (t ) ,转变到频域 F( ) 来得到信 号的频域特征。这就需要傅里叶变换。 下面举例说明,为了容易理解,在这里信号举例说明的是简单的周期信号。 如有一个信号,时域表达为
如有一个信号时域表达为xtcos2pi50t??cos2pi200t12??????看其时域图为215105005115200050101502025030350404505图表1信号时域图再看去频域的图5000450040003500300025002000150010005000050100150200250300350400450500图表2信号的频域图从时域到频域需要的就是傅里叶变换在一些信号处理等利于这种变换很很常见

数字信号处理实验 matlab版 快速傅里叶变换(FFT)

数字信号处理实验 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实验二 傅里叶分析及应用复习课程

MATLAB实验二  傅里叶分析及应用复习课程

M A T L A B实验二傅里叶分析及应用实验二傅里叶分析及应用一、实验目的(一)掌握使用Matlab进行周期信号傅里叶级数展开和频谱分析1、学会使用Matlab分析傅里叶级数展开,深入理解傅里叶级数的物理含义2、学会使用Matlab分析周期信号的频谱特性(二)掌握使用Matlab求解信号的傅里叶变换并分析傅里叶变换的性质1、学会运用Matlab求连续时间信号的傅里叶变换2、学会运用Matlab求连续时间信号的频谱图3、学会运用Matlab分析连续时间信号的傅里叶变换的性质(三)掌握使用Matlab完成信号抽样并验证抽样定理1、学会运用MATLAB完成信号抽样以及对抽样信号的频谱进行分析2、学会运用MATLAB改变抽样时间间隔,观察抽样后信号的频谱变化3、学会运用MATLAB对抽样后的信号进行重建二、实验条件Win7系统,MATLAB R2015a三、实验内容1、分别利用Matlab符号运算求解法和数值计算法求下图所示信号的FT,并画出其频谱图(包括幅度谱和相位谱)[注:图中时间单位为:毫秒(ms)]。

Code:ft = sym('(t+2)*(heaviside(t+2)-heaviside(t+1))+(heaviside(t+1)-heaviside(t-1))+(2-t)*(heaviside(t-1)-heaviside(t-2))');fw = simplify(fourier(ft));subplot(2, 1, 1);ezplot(abs(fw)); grid on;title('amp spectrum');phi = atan(imag(fw) /real(fw));subplot(2, 1, 2);ezplot(phi); grid on;符号运算法Code:dt = 0.01;t = -2: dt: 2;ft = (t+2).*(uCT(t+2)-uCT(t+1))+(uCT(t+1)-uCT(t-1))+(2-t).*(uCT(t-1)-uCT(t-2));N = 2000;k = -N: N;w = pi * k / (N*dt);fw = dt*ft*exp(-i*t'*w);fw = abs(fw);plot(w, fw), grid on;axis([-2*pi 2*pi -1 3.5]);t(20 π ex p(-3 t) heaviside(t) - 8 π ex p(-5 t) heaviside(t))/(2 π)数值运算法2、试用Matlab 命令求ωωωj 54-j 310)F(j ++=的傅里叶反变换,并绘出其时域信号图。

matlab如何做傅里叶变换

matlab如何做傅里叶变换

matlab如何做傅里叶变换# MATLAB中的傅里叶变换## 引言傅里叶变换是一种在信号处理和频谱分析中广泛使用的数学工具,能够将一个信号从时域转换为频域。

MATLAB作为一个强大的数值计算工具,提供了丰富的函数和工具箱,使得进行傅里叶变换变得相对简单。

本文将介绍MATLAB中如何执行傅里叶变换,包括基本概念、使用的函数以及示例应用。

## 傅里叶变换的基本概念傅里叶变换通过将一个时域信号分解为不同频率的正弦和余弦函数的组合,从而提供了在频域中分析信号的能力。

在MATLAB中,傅里叶变换主要有两种类型:离散傅里叶变换(DFT)和连续傅里叶变换(FFT)。

DFT适用于离散信号,而FFT是一种更快的算法,通常用于实际计算。

## MATLAB中的傅里叶变换函数### 1. 离散傅里叶变换(DFT)在MATLAB中,`fft`函数用于计算离散傅里叶变换。

下面是一个简单的例子,演示如何使用该函数:```matlab% 定义信号t = 0:0.01:1; % 时间向量f = 5; % 信号频率signal = sin(2*pi*f*t);% 计算离散傅里叶变换fft_result = fft(signal);% 绘制原始信号和频谱subplot(2,1,1);plot(t, signal);title('原始信号');subplot(2,1,2);plot(abs(fft_result));title('频谱');```上述代码创建了一个简单的正弦信号,并使用`fft`函数计算了其频谱。

通过绘制原始信号和频谱,我们可以直观地理解信号在频域中的表示。

### 2. 连续傅里叶变换(FFT)MATLAB中的`fft`函数也可以用于执行连续傅里叶变换。

以下是一个示例,展示了如何应用FFT来分析一个包含多个频率成分的信号:```matlab% 定义包含多个频率成分的信号t = 0:0.01:2;f1 = 3;f2 = 8;signal = sin(2*pi*f1*t) + 0.5*cos(2*pi*f2*t);% 计算连续傅里叶变换fft_result = fft(signal);% 绘制原始信号和频谱subplot(2,1,1);plot(t, signal);title('原始信号');plot(abs(fft_result));title('频谱');```通过这个例子,我们可以看到如何利用FFT来分析包含多个频率成分的信号,从而更全面地了解信号的频谱特性。

MAtlab-傅里叶变换-实验报告

MAtlab-傅里叶变换-实验报告

MAtlab-傅里叶变换-实验报告陕西科技大学实验报告班级信工082 学号16 姓名刘刚实验组别实验日期室温报告日期成绩报告内容:(目的和要求,原理,步骤,数据,计算,小结等)1.求信号的离散时间傅立叶变换并分析其周期性和对称性;给定正弦信号x(t)=2*cos(2*pi*10*t),fs=100HZ,求其DTFT。

(a)代码:f=10;T=1/f;w=-10:0.2:10;t1=0:0.0001:1;t2=0:0.01:1;n1=-2;n2=8;n0=0;n=n1:0.01:n2;x5=[n>=0.01];x1=2*cos(2*f*pi*t1);x2=2*cos(2*f*pi*t2);x3=(exp(-j).^(t2'*w));x4=x2*x3;subplot(2,2,1);plot(t1,x1);axis([0 1 1.1*min(x2) 1.1*max(x2)]);xlabel('x(n)');ylabel('x(n)');title('原信号x1');xlabel('t');ylabel('x1');subplot(2,2,3);stem(t2,x2);axis([0 1 1.1*min(x2) 1.1*max(x2)]);title('原信号采样结果x2');xlabel('t');ylabel('x2');第页subplot(2,2,2);stem(n,x5);axis([0 1 1.1*min(x5) 1.1*max(x5)]);xlabel('n');ylabel('x2');title('采样函数x2');subplot(2,2,4);stem(t2,x4);axis([0 1 -0.2+1.1*min(x4) 1.1*max(x4)]);xlabel('t');ylabel('x4');title('DTFT结果x4');(b)结果:2.用以下两个有限长序列来验证DTFT的线性、卷积和共轭特性;x1(n)=[1 2 3 4 5 6 7 8 9 10 11 12];x2(n)=R10(n)(1)线性:(a)代码:w=linspace(-8,8,10000);nx1=[0:11]; nx2=[0:9];x1=[1 2 3 4 5 6 7 8 9 10 11 12];第页x2=[1 1 1 1 1 1 1 1 1 1];x3=[x2,zeros(1,(length(x1)-length(x2)))];x4=2*x1+3*x3;X1=x1*exp(-j*nx1'*w);%频率特性X3=x3*exp(-j*nx1'*w);%频率特性X4=x4*exp(-j*nx1'*w);%频率特性subplot(5,3,1),stem(nx1,x1),axis([-1,13,0,15]);title('x1'), ylabel('x(n)');subplot(5,3,2),stem(nx2,x2),axis([-1,13,0,5]);title('x2'); subplot(5,3,3),stem(nx1,x4),axis([-1,13,0,26]);title('x4=2*x1+3* x3');subplot(5,3,4),plot(w,abs(X1)); ylabel('幅度')subplot(5,3,7),plot(w,angle(X1));ylabel('相位')subplot(5,3,10),plot(w,real(X1));ylabel('实部')subplot(5,3,13),plot(w,imag(X1)); ylabel('虚部')subplot(5,3,5),plot(w,abs(X3));subplot(5,3,8),plot(w,angle(X3));subplot(5,3,11),plot(w,real(X3));subplot(5,3,14),plot(w,imag(X3));subplot(5,3,6),plot(w,abs(X4));subplot(5,3,9),plot(w,angle(X4));subplot(5,3,12),plot(w,real(X4));subplot(5,3,15),plot(w,imag(X4));(b)结果:第页(2)卷积:(a)代码:nx1=0:11; nx2=0:9; nx3=0:20;w=linspace(-8,8,40); %w=[-8,8]分10000份x1=[1 2 3 4 5 6 7 8 9 10 11 12];x2=[1 1 1 1 1 1 1 1 1 1];x3=conv(x1,x2);% x1卷积x2x4=x1*exp(-j*nx1'*w);% x1频率特性x5=x2*exp(-j*nx2'*w);% x2频率特性x6=x3*exp(-j*nx3'*w);% x1卷积x2频率特性x7=x4.*x5;subplot(2,2,1),stem(nx1,x1),axis([-1,15,0,15]),title('x1'); subplot(2,2,2),stem(nx2,x2),axis([-1,15,0,5]),title('x2'); subplot(2,1,2),stem(nx3,x3),axis([-1,25,0,80]);title('x1卷积x2第页结果x3');figure,subplot(2,2,1),stem(x4,'filled'),title('x1的DTFT结果x4');subplot(2,2,2),stem(x5,'filled'),title('x2的DTFT结果x5');subplot(2,2,3),stem(x6,'filled'),title('x3的DTFT结果x6');subplot(2,2,4),stem(x7,'filled'),title('x4的DTFT结果x7');figure,subplot(3,2,1),stem(w,abs(x6)), ylabel('幅度'),title('x1卷积x2的DTFT');subplot(4,2,3),stem(w,angle(x6)),ylabel('相位')subplot(4,2,5),stem(w,real(x6)),ylabel('实部')subplot(4,2,7),stem(w,imag(x6)),ylabel('虚部')subplot(4,2,2),stem(w,abs(x7)), title('x1与x2的DTFT的乘积');subplot(4,2,4),stem(w,angle(x7));subplot(4,2,6),stem(w,real(x7));subplot(4,2,8),stem(w,imag(x7));(b)结果:第页第页(3)共轭:(a)代码:x1n=[1 2 3 4 5 6 7 8 9 10 11 12];w=-10:10;N1=length(x1n);n1=0:N1-1;x1=real(x1n);x2=imag(x1n);x2n=x1-j*x2;X1=x2n*(exp(-j).^(n1'*w));X2=x1n*(exp(j).^(n1'*w));x3=real(X2);x4=imag(X2);X2=x3-j*x4;figure,subplot(211);stem(w,X1,'.');title('x1n共轭的DTFT');第页subplot(212);stem(w,X2,'.');title('x1n的DTFT取共轭且反折'); (b)结果:3. 求LTI系统的频率响应给定系统H(Z)=B(Z)/A(Z),A=[0.98777 -0.31183 0.0256]B=[0.98997 0.989 0.98997],求系统的幅频响应和相频响应。

matlab傅里叶谱方法求解微分方程

matlab傅里叶谱方法求解微分方程

matlab傅里叶谱方法求解微分方程1. 前言微分方程作为数学中重要的研究对象之一,其在各个领域均有着重要的应用。

而求解微分方程的方法也有很多种,其中傅里叶谱方法是一种常用且有效的方法之一。

本文将介绍如何使用matlab中的傅里叶谱方法求解微分方程,并通过一个具体的例子来说明其求解过程和结果。

2. 傅里叶谱方法简介傅里叶谱方法(Fourier spectral method)是一种基于傅里叶级数展开的方法,通过将微分方程转化为频域上的代数方程来求解。

其基本思想是将微分方程中的未知函数表示为一组正交基(通常是正弦函数和余弦函数)的线性组合,然后通过傅里叶级数的性质将微分方程转化为方便求解的代数方程。

3. matlab中傅里叶谱方法的实现在matlab中,可以使用fft函数来进行傅里叶变换,将微分方程转化为频域上的代数方程。

接下来,我们通过一个具体的例子来演示如何使用matlab中的傅里叶谱方法求解微分方程。

4. 例子:求解一维热传导方程考虑一维热传导方程:∂u/∂t = α*∂^2u/∂x^2其中,u(x, t)为温度分布,α为热传导系数。

为了使用傅里叶谱方法求解该方程,首先需要进行空间上的离散化,将u(x, t)表示为傅里叶级数的形式:u(x, t) = Σ(A_k(t)*exp(i*k*2πx/L))其中,A_k(t)为待定系数,L为空间的长度,k为频率。

将上述形式代入热传导方程,得到:∂A_k/∂t = -α*(2πk/L)^2*A_k通过这一步变换,我们将原本的偏微分方程转化为了关于A_k(t)的一组常微分方程,可以通过常微分方程的数值计算方法求解。

5. 结果展示通过matlab编写代码,可以对上述常微分方程进行数值求解,得到A_k(t)的解。

进而通过傅里叶级数的线性叠加,可以得到u(x, t)的近似解,并画出其空间分布随时间的演化图。

这样就可以直观地观察到热传导方程的解随时间的变化规律。

傅里叶变换matlab实验总结

傅里叶变换matlab实验总结

傅里叶变换matlab实验总结(完整)快速傅里叶变换fft的Matlab实现实验报告尊敬的读者朋友们:一、实验目的1在理论学习的基础上,通过本实验加深对快速傅立叶变换的理解;2熟悉并掌握按时间抽取FFT算法的程序;3了解应用FFT进行信号频谱分析过程中可能出现的问题,例如混淆、泄漏、栅栏效应等,以便在实际中正确应用FFT。

二、实验内容1仔细分析教材第六章‘时间抽取法FFT'的算法结构,编制出相应的用FFT进行信号分析的C语言(或MATLAB语言)程序;用MATLAB语言编写的FFT源程序如下:%%输入数据f、N、T及是否补零clc;clear;f=input('输入信号频率f:');N=input('输入采样点数N:');T=input(’输入采样间隔T:');C=input('信号是否补零(补零输入1,不补零输入0):’); %补零则输入1,不补则输入0if(C==0)t=0:T:(N—1)*T;=in(2*pift);b=0;eleb=input(’输入补零的个数:');while(log2(N+b),=fi(log2(N+b)))b=input(’输入错误,请重新输入补零的个数:’);endt=0:T:(N+b—1)*T;=in(2*pi*f*t)。

(t<=(N—1)*T);end%%fft算法的实现A=bitrevorder();% 将序列按二进制倒序N=N+b;M=log2(N);% M为蝶形算法的层数W=ep(—j2pi、N);for L=1:1:M% 第L层蝶形算法B=2^L、2;%B为每层蝶形算法进行加减运算的两个数的间隔K=N、(2^L);%K为每层蝶形算法中独立模块的个数for k=0:1:K-1for J=0:1:B-1p=J2^(M—L);%p是W的指数q=A(k2^L+J+1);%用q来代替运算前面那个数A(k2^L+J+1)=q+W^p*A(k2^L+J+B+1);A(k*2^L+J+B+1)=q—W^p*A(k*2^L+J+B+1);endendend%%画模特性的频谱图z=ab(A);% 取模z=z。

matlab 傅里叶变换后结果

matlab 傅里叶变换后结果

傅里叶变换是信号处理和频谱分析中非常重要的一种方法。

通过傅里叶变换,我们可以将一个信号从时域转换到频域,从而能够更清晰地看到信号的频率成分和振幅分布。

而在matlab中,傅里叶变换可以通过内置的fft函数来实现。

我们可以对信号进行傅里叶变换,并得到其频谱图像和频谱特征。

1. 信号的傅里叶变换在matlab中,可以使用fft函数对信号进行傅里叶变换。

我们需要获取信号的时间域数据,然后利用fft函数将其转换到频域。

具体操作如下:```matlab生成一个长度为N的随机信号N = 1000;x = randn(1,N);对信号进行傅里叶变换X = fft(x);计算频率分辨率fs = 1000; 采样频率f = (0:N-1)*(fs/N);绘制频谱图像plot(f,abs(X));xlabel('Frequency (Hz)');ylabel('Magnitude');title('Frequency spectrum of the signal');```通过以上代码,我们可以得到信号的频谱图像,从而了解信号的频率成分和频谱特征。

2. 傅里叶变换的结果分析在得到信号的频谱图像之后,我们可以对其进行进一步的分析。

主要可以从以下几个方面进行分析:2.1 频率成分分析通过观察频谱图像,我们可以清晰地看到信号中的频率成分。

一般来说,频谱图像中的峰值对应着信号的主要频率成分,而峰值的高度则代表了对应频率成分的振幅大小。

通过对频谱图像的分析,我们可以得知信号中各个频率成分的分布情况,从而了解信号的频率特征。

2.2 峰值频率提取除了直接观察频谱图像外,我们还可以通过编程的方式对频谱图像进行进一步分析,提取其中的峰值频率。

这可以通过寻找频谱图像中的峰值点并确定其对应的频率来实现。

这样一来,我们就可以准确地获取信号中的各个主要频率成分,并进一步分析它们的振幅和相位信息。

信号与系统matlab实验傅里叶分析及应用报告答案

信号与系统matlab实验傅里叶分析及应用报告答案

实验二傅里叶分析及应用姓名学号班级一、实验目的(一)掌握使用Matlab进行周期信号傅里叶级数展开和频谱分析1、学会使用Matlab分析傅里叶级数展开,深入理解傅里叶级数的物理含义2、学会使用Matlab分析周期信号的频谱特性(二)掌握使用Matlab求解信号的傅里叶变换并分析傅里叶变换的性质1、学会运用Matlab求连续时间信号的傅里叶变换2、学会运用Matlab求连续时间信号的频谱图3、学会运用Matlab分析连续时间信号的傅里叶变换的性质(三)掌握使用Matlab完成信号抽样并验证抽样定理1、学会运用MATLAB完成信号抽样以及对抽样信号的频谱进行分析2、学会运用MATLAB改变抽样时间间隔,观察抽样后信号的频谱变化3、学会运用MATLAB对抽样后的信号进行重建二、实验条件需要一台PC机和一定的matlab编程能力三、实验内容2、分别利用Matlab符号运算求解法和数值计算法求下图所示信号的FT,并画出其频谱图(包括幅度谱和相位谱)[注:图中时间单位为:毫秒(ms)]。

符号运算法: Ft=sym('t*(Heaviside(t+2)-Heaviside(t+1))+Heaviside(t+1)-Heaviside(t-1)+(-t)*(Heavi side(t-1)-Heaviside(t-2))'); Fw = fourier(Ft); ezplot(abs(Fw)),grid on; phase = atan(imag(Fw)/real(Fw)); ezplot(phase);grid on; title('|F|'); title('phase');3、试用Matlab 命令求ωωωj 54-j 310)F(j ++=的傅里叶反变换,并绘出其时域信号图。

[注意:(1)写代码时j i]syms tFw = sym('10/(3+iw)-4/(5+iw)');ft = ifourier(Fw,t);F = abs(ft);ezplot(F,[-3,3]),grid on;4、已知门函数自身卷积为三角波信号,试用Matlab命令验证FT的时域卷积定理。

[经验]matlab完成傅里叶变换

[经验]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 应用于频谱分析需要注意的两个问题:即采样可能导致信号混叠和截断信号引起的频谱泄漏。

第九节用MATLAB求傅里叶级数及其实验

第九节用MATLAB求傅里叶级数及其实验

an = 2*(n^2*pi^2*sin(n*pi)-2*sin(n*pi)+2*n*pi*co s(n*pi))/n^3/pi^3 bn = 0 再输入程序: >> syms x n fun=x^2; l=1; a0 =2/3; an =2*(n^2*pi^2*sin(n*pi)-2*sin(n*pi)+2*n*pi*cos(n*pi))/n^3/pi^ 3; bn =0; S=safourier(fun,a0,an,bn,l,9) 运行后屏幕显示在闭区间 [1,1] 上将函数 f ( x) x 2 的傅里叶 级数的前 10 项为: S= 1/3-1125899906842624/8727491006471547*pi*cos(pi*x)+2 81474976710656/8727491006471547*pi*cos(2*pi*x)-1125899 906842624/78547419058243923*pi*cos(3*pi*x)+70368744177 664/8727491006471547*pi*cos(4*pi*x)-1125899906842624/21 8187275161788675*pi*cos(5*pi*x)+281474976710656/785474 19058243923*pi*cos(6*pi*x)-1125899906842624/4276470593 17105803*pi*cos(7*pi*x) 【例 2 】 设 f(x)是周期为 2 的周期函数 它在[ ] 上的表达式为 f(x)x 将 f(x)展开成傅里叶级数。 解 所给函数满足收敛定理的条件 它在点 x+2n (n0 1 2 )处不连续 在其它点处连续 从而由收敛定 理知道 f( x)的傅里叶级数收敛 并且当 x+2n (n0 1 2 )时收敛于

MATLAB实验二 傅里叶分析及应用

MATLAB实验二 傅里叶分析及应用

实验二傅里叶分析及应用一、实验目得(一)掌握使用Matlab进行周期信号傅里叶级数展开与频谱分析1、学会使用Matlab分析傅里叶级数展开,深入理解傅里叶级数得物理含义2、学会使用Matlab分析周期信号得频谱特性(二)掌握使用Matlab求解信号得傅里叶变换并分析傅里叶变换得性质1、学会运用Matlab求连续时间信号得傅里叶变换2、学会运用Matlab求连续时间信号得频谱图3、学会运用Matlab分析连续时间信号得傅里叶变换得性质(三)掌握使用Matlab完成信号抽样并验证抽样定理1、学会运用MATLAB完成信号抽样以及对抽样信号得频谱进行分析2、学会运用MATLAB改变抽样时间间隔,观察抽样后信号得频谱变化3、学会运用MATLAB对抽样后得信号进行重建二、实验条件Win7系统,MATLAB R2015a三、实验内容1、分别利用Matlab符号运算求解法与数值计算法求下图所示信号得FT,并画出其频谱图(包括幅度谱与相位谱)[注:图中时间单位为:毫秒(ms)]。

符号运算法数值运算法2、试用Matlab 命令求得傅里叶反变换,并绘出其时域信号图、(20 π ex p(-3 t) heaviside(t) - 8 π ex p(-5 t) heaviside(t))/(2 π)ﻩﻩﻩﻩ两个单边指数脉冲得叠加3、已知门函数自身卷积为三角波信号,试用Matlab命令验证FT得时域卷积定理、4、设有两个不同频率得余弦信号,频率分别为,;现在使用抽样频率对这三个信号进行抽样,使用MATLAB命令画出各抽样信号得波形与频谱,并分析其频率混叠现象>> > x 10-3-101Time/s f (t )012345-3ωf (w )Cos freq-505x 10-3-101Time/sf s (t )Sample signal-2-100246-3ωf s wSample fref1 = 100H z 将代码中f 1设为3800即可↓-505x 10-3-11Time/s f (t )Cosine curve-2-1012x 104012345-3ωf (w )Cos freq spectrum-505x 10-3-11Time/sf s (t )Sample signal-2-1012x 1040246-3ωf s wSample freq spectrumf 2 = 3800Hz 5、结合抽样定理,利用M ATL AB 编程实现信号经过冲激脉冲抽样后得到得抽样信号及其频谱[建议:冲激脉冲得周期分别取4*pi/3 s 、pi s 、2*p i/3 s 三种情况对比],并利用构建信号。

matlab编程实现傅里叶变换

matlab编程实现傅里叶变换

傅里叶变换是信号处理和图像处理中的重要数学工具,可以将一个信号或图像从时域转换到频域。

MATLAB作为一款强大的数学软件,可以方便地实现傅里叶变换并进行相应的分析和处理。

本文将介绍如何使用MATLAB编程实现傅里叶变换,并探讨其在信号处理和图像处理中的应用。

一、MATLAB中的傅里叶变换函数在MATLAB中,可以使用fft函数来进行一维离散傅里叶变换(DFT)的计算,使用fft2函数进行二维离散傅里叶变换(DFT)的计算。

这两个函数的基本语法如下:1. 一维离散傅里叶变换Y = fft(X)其中,X是输入的一维信号(向量),Y是输出的一维频谱(向量)。

2. 二维离散傅里叶变换Y = fft2(X)其中,X是输入的二维图像(矩阵),Y是输出的二维频谱(矩阵)。

除了fft和fft2函数外,MATLAB还提供了ifft和ifft2函数用于进行离散傅里叶逆变换。

通过这些函数,我们可以方便地实现傅里叶变换和逆变换的计算。

二、MATLAB中的傅里叶变换实例为了更好地理解MATLAB中的傅里叶变换实现,我们可以通过一个具体的实例来进行演示。

假设我们有一个包含两个正弦波的信号,我们首先可以使用MATLAB生成这个信号,并对其进行傅里叶变换。

生成信号fs = 1000; 采样频率为1000Hzt = 0:1/fs:1-1/fs; 时间范围为1秒f1 = 50; 第一个正弦波的频率为50Hzf2 = 120; 第二个正弦波的频率为120Hzx = 0.7*sin(2*pi*f1*t) + sin(2*pi*f2*t); 生成包含两个正弦波的信号进行傅里叶变换N = length(x); 信号的长度X = fft(x)/N; 进行离散傅里叶变换,并进行归一化处理f = (0:N-1)*(fs/N); 计算频率轴figure;subplot(2,1,1);plot(f,abs(X)); 绘制频谱幅度title('单边频谱');xlabel('频率/Hz');ylabel('幅度');subplot(2,1,2);plot(f,angle(X)); 绘制频谱相位title('频谱相位');xlabel('频率/Hz');ylabel('相位');通过上面的实例,我们可以看到,MATLAB可以很方便地实现最常见的傅里叶变换,并且提供了丰富的绘图功能来呈现变换结果。

使用matlab进行傅里叶分析和滤波

使用matlab进行傅里叶分析和滤波

使⽤matlab进⾏傅⾥叶分析和滤波傅⾥叶分析公式法下例是将振幅为1的5Hz正弦波和振幅为0.5的10Hz正弦波相加之后进⾏傅⾥叶分析。

clear allN=512;dt=0.02;n=0:N-1;t=n*dt;x=sin(2*pi*5*t)+0.5*sin(2*pi*10*t);%⽣成和信号%傅⾥叶变换m = floor(N/2)+1;a=zeros(1,m);b=zeros(1,m);for k=0:m-1for ii=0:N-1a(k+1) = a(k+1)+2/N*x(ii+1)*cos(2*pi*k*ii/N);b(k+1) = b(k+1)+2/N*x(ii+1)*sin(2*pi*k*ii/N);endc(k+1)=sqrt(a(k+1).^2+b(k+1).^2);end%傅⾥叶逆变换if(mod(N,2) ~=1)a(m)=a(m)/2;endfor ii=0:N-1xx(ii+1)=a(1)/2;for k=1:m-1xx(ii+1)=xx(ii+1)+a(k+1)*cos(2*pi*k*ii/N)+b(k+1)*sin(2*pi*k*ii/N);endend%绘图subplot(3,1,1),plot(t,x,'LineWidth',2);title('原始信号'),xlabel('时间/s');subplot(3,1,2),plot((0:m-1)/(N*dt),c,'LineWidth',2);title('傅⾥叶变换'),xlabel('频率/Hz');subplot(3,1,3),plot((0:N-1)*dt,xx,'LineWidth',2);title('合成信号'),xlabel('时间/s');运⾏结果如下所⽰:快速傅⾥叶matlab中的快速傅⾥叶有两种调⽤形式:y=fft(x)。

MAtlab-傅里叶变换-实验报告(最新-编写)

MAtlab-傅里叶变换-实验报告(最新-编写)

MAtlab-傅里叶变换-实验报告(最新-编写)一、实验目的1. 了解傅里叶变换的基本概念及其在信号处理中的应用;2. 掌握使用Matlab软件进行傅里叶变换的方法;3. 通过实验掌握傅里叶变换的计算与图像分析方法。

二、实验原理1. 傅里叶级数傅里叶级数是一类振幅、频率和相位相同的正弦(余弦)函数构成某一周期函数的和。

若函数f(t)可以表示为周期2π的函数,则有:f(t) = a0 + ∑[an*cos(nwt) + bn*sin(nwt)] (1)其中,a0、an、bn为常数,w=2π/T为角频率,T为周期。

傅里叶级数引入相位角,使得函数形态可以更加丰富,而且描述更加直观。

假设n=0时,a0是函数f(t)的常数项,且an、bn分别表示f(t)的奇、偶对称部分的振幅,即:a0 = (1/2π)∫[f(t)]dt,an = (1/π)∫[f(t)*cos(nwt)]dt,bn =(1/π)∫[f(t)*s in(nwt)]dt式中,*为乘积,∫为积分。

在时域中,傅里叶分析用来分析周期性信号的性质。

但是,在实际应用中,很少有真正的周期性信号,因此需要将傅里叶分析推广到非周期性信号上,即傅里叶变换。

原信号可以表示为一个函数f(t),其傅里叶变换可以表示为:F(w) = ∫[f(t)*e^(-jwt)]dt其中,j为虚数单位,w为角频率。

傅里叶变换将信号从时域变换到频域,通常使用复数表示幅值与相位。

同时,傅里叶变换也具有很高的线性性质。

即,若有两个函数f1(t)和f2(t),其傅里叶变换分别是F1(w)和F2(w),则下列变换同样成立:a1*f1(t) + a2*f2(t)的傅里叶变换为a1*F1(w) + a2*F2(w)其中,a1、a2为常数。

最后,傅里叶变换的性质包括线性、平移、频移、反褶和自相关性等,这些性质都对信号处理和分析具有实际意义。

三、实验内容本实验主要分为两个部分:1. 计算周期波形的傅里叶级数并绘制其频谱图和振幅谱图。

matlab的傅里叶变换小实验

matlab的傅里叶变换小实验

三项电压波形程序如下:A=xlsread('yl.xls'); %读取yl.xls中的数据x=A(:,1);y1=A(:,3);y2=A(:,4);y3=A(:,5); %x为矩阵A的第一列;y1为矩阵A的第三列;y2为矩阵A的第%四列;y3为矩阵A的第五列figure();plot(x,y1,'r'); %画出A项波形图形hold on; %保持图形plot(x,y2,'g'); %画出B项波形图形hold on; %保持图形plot(x,y3,'b'); %画出C项波形图形hold on; %保持图形xlabel('时间/t'); %x轴标注为时间/tylabel('电压/Kv'); %y轴标注为电压/Kv三项电压波形如下图所示:图一三项电压波形将上述程序改写后依次得到A,B,C单独电压波形,如下图所示:图二A项电压波形图三B项电压波形图四C项电压波形将上述三项电压波形中A,B,C项分别进行傅立叶变换,程序如下:A=xlsread('yl.xls'); %读取yl.xls中的数据x=A(:,1);y1=A(:,3);y2=A(:,4);y3=A(:,5); %x为矩阵A的第一列;y1为矩阵A的第三列;y2为矩阵A的第四列;y3为矩阵A的第五列dt=x(2)-x(1); %用diff(t)看了下,采样时间间隔一样,就只算了一个差值fs=1/dt; %傅里叶变换后的坐标轴的最大值就是采样频率fs,与dt是倒数关系ay1=abs(fft(y1));ay2=abs(fft(y2));ay3=abs(fft(y3)); %fft是matlab中傅里叶变换的命令,abs是求模f=(0:length(x)-1)*fs/length(x); %频谱图横轴,总共2479个点,最大值是fs,每个点就是fs/2479subplot(131);plot(f,ay1,'r');xlabel('频率/Hz');ylabel('振幅'); %画出A项电压傅里叶变换后的波形subplot(132);plot(f,ay2,'g');xlabel('频率/Hz');ylabel('振幅'); %画出B项电压傅里叶变换后的波形subplot(133);plot(f,ay3,'b');xlabel('频率/Hz');ylabel('振幅'); %画出C项电压傅里叶变换后的波形三项电压波形中A,B,C项分别进行傅立叶变换波形如下图所示:图五A项电压傅里叶变换后波形图六A项电压傅里叶变换后波形(放大后)分析阐述:A项电压傅里叶变换后,从波形图得出:50Hz频率的幅值最大(大约为210000);100Hz频率的幅值大约为17000;150Hz频率的幅值大约为24000;200Hz频率的幅值大约为90000;300Hz频率的幅值大约为9000;500Hz频率的幅值大约为23000;从此看出:A项电压的工频为50Hz,谐波频率主要有200Hz,150Hz,500Hz,100Hz,300Hz图七B项电压傅里叶变换后波形分析阐述:B项电压傅里叶变换后,从波形图得出:50Hz频率的幅值最大(大约为210000);100Hz频率的幅值大约为20000;150Hz,250Hz,300Hz频率的幅值大约为10000;200Hz频率的幅值大约为110000;500Hz频率的幅值大约为20000;从此看出:B项电压的工频为50Hz,谐波频率主要有200Hz,100Hz,500Hz,100Hz,150Hz,250Hz,300Hz图九C项电压傅里叶变换后波形分析阐述:C项电压傅里叶变换后,从波形图得出:50Hz频率的幅值最大(大约为198000);100Hz,150Hz频率的幅值大约为20000;300Hz频率的幅值大约为11000;从此看出:C项电压的工频为50Hz,谐波频率主要有100Hz,150Hz,300Hz,A,B,C项电压傅里叶变换后图形幅值的比重,程序如下:A=xlsread('yl.xls'); %读取yl.xls中的数据x=A(:,1);y1=A(:,3);y2=A(:,4);y3=A(:,5); %x为矩阵A的第一列;y1为矩阵A的第三列;y2为矩阵A的第四列;y3为矩阵A的第五列dt=x(2)-x(1); %用diff(t)看了下,采样时间间隔一样,就只算了一个差值fs=1/dt; %傅里叶变换后的坐标轴的最大值就是采样频率fs,与dt是倒数关系ay1=abs(fft(y1));ay2=abs(fft(y2));ay3=abs(fft(y3)); %fft是matlab中傅里叶变换的命令,abs是求模f=(0:length(x)-1)*fs/length(x); %频谱图横轴,总共2479个点,最大值是fs,每个点就是fs/2479subplot(311);ymin=min(ay1);ymax=max(ay1);x1=linspace(ymin,ymax,20); %将最大最小区间分成20个等分点(19等分),然后分别计算各个区间的个数yy1=hist(ay1,x1); %计算各个区间的个数yy1=yy1/length(ay1); %计算各个区间的个数bar(x1,yy1,'r'); %画出概率密度分布图xlabel('振幅');ylabel('比重');subplot(338);ymin=min(ay2);ymax=max(ay2);x2=linspace(ymin,ymax,20); %将最大最小区间分成20个等分点(19等分),然后分别计算各个区间的个数yy2=hist(ay2,x2); %计算各个区间的个数yy2=yy2/length(ay2); %计算各个区间的个数bar(x2,yy2,'g'); %画出概率密度分布图xlabel('振幅');ylabel('比重');subplot(339);ymin=min(ay3);ymax=max(ay3);x3=linspace(ymin,ymax,20); %将最大最小区间分成20个等分点(19等分),然后分别计算各个区间的个数yy3=hist(ay3,x3); %计算各个区间的个数yy3=yy3/length(ay2); %计算各个区间的个数bar(x3,yy3,'b'); %画出概率密度分布图xlabel('振幅');ylabel('比重');图十一A项电压傅里叶变换后幅值比重图十二B项电压傅里叶变换后幅值比重图十三C项电压傅里叶变换后幅值比重。

matlab的傅里叶变换解释

matlab的傅里叶变换解释

matlab的傅里叶变换解释
傅里叶变换是一种将信号在时间域和频率域之间转换的数学工具。

它将一个连续或离散的时间域信号分解成不同频率的正弦和余弦基函数的叠加。

通过傅里叶变换,我们可以了解信号中存在的频率分量以及它们的相对强度。

在MATLAB中,傅里叶变换可以使用fft函数来实现。

fft函数接受一个时间域信号作为输入,并返回该信号在频率域上的表示。

它将信号分解成一系列复数值,其中每个复数表示了对应频率的振幅和相位信息。

在使用fft函数时,需要注意输入信号的采样率。

采样率决定了能够表示的最大频率,根据奈奎斯特采样定理,最大可表示的频率为采样率的一半。

因此,如果想要正确地表示高频成分,需要选择足够高的采样率。

傅里叶变换的结果可以用来分析信号的频谱特性,例如找出信号的主频率、频率响应以及滤波操作。

通过对信号在频率域上的分析,我们可以更好地理解信号的特性,为后续的信号处理和分析提供基础。

总而言之,傅里叶变换是一种十分有用的数学工具,可以将信号在时间域和频率域之间进行转换。

MATLAB提供了方便的函数供我们进行傅里叶变换的计算和分析。

通过傅里叶变换,我们可以更深入地了解信号的频谱特性,并在信号处理中发挥重要作用。

MATLAB实验傅里叶分析

MATLAB实验傅里叶分析

MATLAB实验傅里叶分析实验七 傅里叶变换一、实验目的傅里叶变换是通信系统、图像处理、数字信号处理以及物理学等领域内的一种重要的数学分析工具。

通过傅里叶变换技术可以将时域上的波形分 布变换为频域上的分布,从而获得信号的频谱特性。

MATLAB 提供了专门的函数fft 、ifft 、fft2(即2维快速傅里叶变换)、ifft2以及fftshift 用于实现对信号的傅里叶变换。

本次实验的目的就是练习使用fft 、ifft 以及fftshift 函数,对一些简单的信号处理问题能够获取其频谱特性(包括幅频和相频特性)。

二、实验预备知识1. 离散傅里叶变换(DFT)以及快速傅里叶变换(FFT)简介设x (t )是给定的时域上的一个波形,则其傅里叶变换为2()() (1)j ft X f x t e dt π∞--∞=⎰显然X ( f )代表频域上的一种分布(波形),一般来说X ( f )是复数。

而傅里叶逆变换定义为:2()() (2)j ftx t X f e df π∞-∞=⎰因此傅里叶变换将时域上的波形变换为频域上的波形,反之,傅里叶逆变换则将频域上的波形变换为时域上的波形。

由于傅里叶变换的广泛应用,人们自然希望能够使用计算机实现傅里叶变换,这就需要对傅里叶变换(即(1)式)做离散化处理,使之符合电脑计算的特征。

另外,当把傅里叶变换应用于实验数据的分析和处理时,由于处理的对象具有离散性,因此也需要对傅里叶变换进行离散化处理。

而要想将傅里叶变换离散化,首先要对时域上的波形x (t )进行离散化处理。

采用一个时域上的采样脉冲序列: δ (t -nT ), n = 0, 1, 2, …, N -1;可以实现上述目的,如图所示。

其中N 为采样点数,T 为采样周期;f s = 1/T 是采样频率。

注意采样时,采样频率f s 必须大于两倍的信号频率(实际是截止频率),才能避免混迭效应。

接下来对离散后的时域波形()()()(x t x t t n T x n T δ=-=的傅里叶变换()X f 进行离散处理。

利用matlab中powergui对数列进行傅里叶分析

利用matlab中powergui对数列进行傅里叶分析

第一步:
建立仿真文件,加入powergui和示波器如下图所示:
第二步:
设置示波器参数,将示波器测出的数据导入matlab工作区,如下图所示:
其中Variable name随你怎么命名。

我这里命名的是s。

第三步:运行仿真文件,并将所要进行的傅里叶数列导入结构数据s(在workspace中可以看到)中。

如下面的是将函数y=abs(sin(100*pi*t))进行傅里叶分解:
1.在command window窗口中输入函数的准备数据,并将准备数据导入示波器的结构数据s 中:
t=0:0.0001:0.2;
y=abs(sin(50*pi*t));
s.time=t’;
s.signals.values=y’;
注意:结构数据中的数据必须为列向量,否则powergui将不能仿真。

2.进入simulink,现在可以正常的仿真了,点击FFT Analysis
打开后的界面为:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB实验傅里叶分析
实验七 傅里叶变换
一、实验目的
傅里叶变换是通信系统、图像处理、数字信号处理以及物理学等领域内的一种重要的数学分析工具。

通过傅里叶变换技术可以将时域上的波形分 布变换为频域上的分布,从而获得信号的频谱特性。

MATLAB 提供了专门的函数fft 、ifft 、fft2(即2维快速傅里叶变换)、ifft2以及fftshift 用于实现对信号的傅里叶变换。

本次实验的目的就是练习使用fft 、ifft 以及fftshift 函数,对一些简单的信号处理问题能够获取其频谱特性(包括幅频和相频特性)。

二、实验预备知识
1. 离散傅里叶变换(DFT)以及快速傅里叶变换(FFT)简介
设x (t )是给定的时域上的一个波形,则其傅里叶变换为
2()() (1)j ft X f x t e dt π∞--∞=⎰
显然X ( f )代表频域上的一种分布(波形),一般来说X ( f )是复数。

而傅里叶逆变换定义为:
2()() (2)j ft
x t X f e df π∞-∞
=⎰
因此傅里叶变换将时域上的波形变换为频域上的波形,反之,傅里叶逆变换则将频域上的波形变换为时域上的波形。

由于傅里叶变换的广泛应用,人们自然希望能够使用计算机实现傅里叶变换,这就需要对傅里叶变换(即(1)式)做离散化处理,使
之符合电脑计算的特征。

另外,当
把傅里叶变换应用于实验数据的分
析和处理时,由于处理的对象具有
离散性,因此也需要对傅里叶变换
进行离散化处理。

而要想将傅里叶
变换离散化,首先要对时域上的波
形x (t )进行离散化处理。

采用一个
时域上的采样脉冲序列: δ (t -nT ), n = 0, 1, 2, …, N -1;
可以实现上述目的,如图所示。

其中N 为采样点数,T 为采样周期;f s = 1/T 是采样频率。

注意采样时,采样频率f s 必须大于两倍的信号频率(实际是截止频率),才能避免混迭效应。

接下来对离散后的时域波形()()()(x t x t t n T x n T δ=
-=的傅里叶变换()X f 进行离散处理。

与上述做法类
似,采用频域上的δ脉冲序列: x (t δ x (t )δ t t t
δ ( f -n/T 0), n = 0, 1, 2, …, N -1;T 0= NT 为总采样时间
可以实现傅里叶变换()X f 的离散化,如下图示。

不难看出,离散后的傅里叶变换其频率间隔(频率轴上离散点的间隔,即频域分辨
率)
011 (3)s f f T NT N ∆===
因此要增加分辨率须增加采样
点数目N 。

频域上每个离散点对
应的频率为:
0; 0,1,2,...,-1 (4)s n f n n f n n N T NT N ====显然n = 0的点对应于直流成分。

经过以上离散化处理之后,连续积分的傅里叶变换(1)式转变为如下离散形式:
12/0()(), 0,1,2,..., 1 (5)
N j nk N n k k X f x t e n N π--===-∑其中t k = kT
(k =0,1,2,…,N-1)代表采样点时刻。

X ( f n )一般是复数,因此离散傅里叶变换(DFT)后变成一个N 点(采样点数)的复数序列。

X ( f n )绝对值代表振幅,其幅角代表相位,因此由(5)式可以给出DFT 的振幅频谱和相位频谱。

(5)式通常又简写f f f ()X f δ (f -X
(混
成如下形式:
10()(), 0,1,2,..., 1 (6)
N nk N k X n x k W n N -===-∑
其中 2/ j N N W e π-=,x 是采样点数据,它是一个N 个点的向量,DFT 的结果X 是N 个点的复数向量。

(5)式或(6)式就是对傅里叶变换进行数值计算的基础。

一般采样点数N 越大,DFT 的结果越接近真实的情况,但是当N 较大时,(6)式的计算量很大,因为使用计算机求解(6)式时,总共要执行N 2次复数乘法和N×(N-1)次复数加法。

所以直接用DFT 算法(即(5)式)进行谱分析和信号的实时处理是不切实际的。

为了减轻计算的压力,人们提出了一种所谓快速傅里叶变换(FFT )的思想:
取N =2m ,首先将N 个点的采样数据011[,,...,]N x x x x -=分成两个N /2点的序列:
1022[,,...,]N x x x x -= (偶数序列)
2131[,,...,]N x x x x -= (奇数序列)
这样处理的好处是可以把(6)式分解为两个N/2点的DFT ,使计算量降下来。

接下来再将N/2点的序列x 1仿照上述做法进一步分裂成2个N/4
点的序列x3和x4,另一序列x2亦做如此处理,分裂成2个N/4点的序列x5和x6。

这样两个N/2点的序列分成了更短的4个N/4点的序列,依次类推,最后的结果是将一个N点的序列x裂成了N个点的单点序列:x0, x1, x2, …, x N-1。

这样做可以将DFT的运算效率提高1-2个数量级,为数字信号处理技术应用于各种信号的实时处理创造了条件,从而推动数字处理技术的发展。

由此可见FFT的思想实质是不断地把长序列的DFT计算分解成若干短序列的DFT,并利用旋转因子(即W N )的周期性和对称性来减少DFT 的运算次数。

所以FFT就是DFT的快速算法。

有关FFT算法的详细介绍和理论推导参见有关的书籍,这里不做进一步介绍。

2. FFT的MATLAB实现
为了实现快速傅里叶变换,MATLAB提供了fft、ifft、fft2、ifft2以及fftshift函数,分别用于一维和二维离散傅里叶变换(DFT)及其逆变换。

借助这些函数可以完成很多信号处理任务。

考虑到信号处理包含的领域很广泛,这里只介绍一维傅里叶变换及其逆变换函数。

相关文档
最新文档