精华内容
下载资源
问答
  • 快速傅里叶变换在信号处理中应用

    万次阅读 多人点赞 2018-09-12 16:41:09
    声学、信号处理等领域有广泛的应用。计算机处理信号的要求是:时域和频域都应该是离散的,而且都应该是有限长的。而傅里叶变换仅能处理连续信号,离散傅里叶变换DFT(Discrete Fourier Transform)就是应这种...

    傅里叶变换FT(Fourier Transform)是一种将信号从时域变换到频域的变换形式。它在声学、信号处理等领域有广泛的应用。计算机处理信号的要求是:在时域和频域都应该是离散的,而且都应该是有限长的。而傅里叶变换仅能处理连续信号,离散傅里叶变换DFT(Discrete Fourier Transform)就是应这种需要而诞生的。它是傅里叶变换在离散域的表示形式。但是一般来说,DFT的运算量是非常大的。在1965年首次提出快速傅里叶变换算法FFT(Fast Fourier Transform)之前,其应用领域一直难以拓展,是FFT的提出使DFT的实现变得接近实时。DFT的应用领域也得以迅速拓展。除了一些速度要求非常高的场合之外,FFT算法基本上可以满足工业应用的要求。由于数字信号处理的其它运算都可以由DFT来实现,因此FFT算法是数字信号处理的重要基石。

    傅立叶原理表明:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。而根据该原理创立的傅立叶变换算法利用直接测量到的原始信号,以累加方式来计算该信号中不同正弦波信号的频率、振幅和相位。如图1所示,即为时域信号与不同频率的正弦波信号的关系,这是最近翻阅文献看到的对于时域频域表示的最简单明了的图,原处为参考文献中的第二个链接,有兴趣的朋友可以去原文查阅。图中最右侧展示的是时域中的一个信号,这是一个近似于矩形的波,而图的正中间则是组成该信号的各个频率的正弦波。从图中我们可以看出,即使角度几乎为直角的正弦波,其实也是由众多的弧度圆滑的正弦波来组成的。在时域图像中,我们看到的只有一个矩形波,我们无从得知他是由这些正弦波组成。但当我们通过傅里叶变换将该矩形波转换到频域之后,我们能够很清楚的看到许多脉冲,其中频域图中的横轴为频率,纵轴为振幅。因此可以通过这个频域图像得知,时域中的矩形波是由这么多频率的正弦波叠加而成的。

    图1   时域频域关系图

    这就是傅里叶变换的最基本最简单的应用,当然这是从数学的角度去看傅立叶变换。在信号分析过程中,傅里叶变换的作用就是将组成这个回波信号的所有输入源在频域中按照频率的大小来表示出来。傅里叶变换之后,信号的幅度谱可表示对应频率的能量,而相位谱可表示对应频率的相位特征。经过傅立叶变换可以在频率中很容易的找出杂乱信号中各频率分量的幅度谱和相位谱,然后根据需求,进行高通或者低通滤波处理,最终得到所需要频率域的回波。

    傅里叶变换在图像处理过程中也有非常重要的作用,设信号f是一个能量有限的模拟信号,则其傅里叶变换就表示信号f的频谱。从纯粹的数学意义上看,傅里叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅里叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅里叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数。傅里叶逆变换是将图像的频率分布函数变换为灰度分布函数。傅里叶频谱图上我们看到的明暗不一的亮点,其意义是指图像上某一点与邻域点差异的强弱,即梯度的大小,也即该点的频率的大小。一般来讲,梯度大则该点的亮度强,否则该点亮度弱。这样通过观察傅里叶变换后的频谱图,也叫功率图,我们就可以直观地看出图像的能量分布:如果频谱图中暗的点数更多,那么实际图像是比较柔和的,这是因为各点与邻域差异都不大,梯度相对较小;反之,如果频谱图中亮的点数多,那么实际图像一定是尖锐的、边界分明且边界两边像素差异较大的。

    下面我们以信号处理过程中的一个例子来详细说明FFT的效果:假设采样频率为Fs,信号频率为F,采样点数为N。那么FFT处理之后的结果就是一个点数为N点的复数。每一个点就对应着一个频率点,而每个点的模值,就是该频率值下的幅度特性。假设原始信号的峰值为A,那么在处理后除第一个点之外的其他点的模值就是A的N/2倍。而第一个点就是直流分量,它的模值就是直流分量的N倍。而每个点的相位呢,就是在该频率下的信号的相位。第一个点表示直流分量(即频率为0Hz),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率依次增加。例如某点n所表示的频率为:Fn=(n-1)*Fs/N。由上面的公式可以看出,Fn 所能分辨到的最小频率为Fs/N,如果采样频率Fs为1024Hz,采样点数N为1024点,则最小分辨率可以精确到1Hz。1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT处理,则结果可以分析到1Hz;如果采样2秒时间的信号并做FFT处理,则结果可以精确到0.5Hz。

    假设现在我们有一个输入信号,该信号总共包含3种成分信号,其一是5V的直流分量;其二是频率为50Hz、相位为-60度、幅度为10V的交流信号;第三个成分信号是频率为100Hz、相位为90度、幅度为5V的交流信号。该输入信号用数学表达式表示如下:

                                                S=5+10*cos(2*pi*50*t-pi*60/180)+5*cos(2*pi*100*t+pi*90/180)

    图2 输入信号

    图2即为S信号的图像表示。现在,我们以256Hz的采样率Fs对这个信号进行采样,采样点数N同样为256点。根据公式我们可以算出其频谱图中的频率精度为1Hz。因此对于输入信号频率包含0Hz、50Hz和100hz的复合信号,在其经过FFT处理之后,应该会在频谱图中出现3个峰值,而且频率分别为0Hz、50Hz和100Hz,处理结果如图3所示:

    图3 信号频谱全图

    结果正如我们所预料的,对输入信号’S’做FFT处理之后,图3中出现了5个峰值,这是因为对输入信号做256点的FFT处理之后并没有第257个频点信息,这也是前文中所提到的第一个点的模值是N倍的原因。因此,信号的 FFT结果具有一定的对称性。一般情况下,我们只使用前半部分的结果,即小于采样频率一半的结果。对于图像进行简单处理后,我们的前半部分的FFT结果如图4所示:

    图4  处理后的频谱图

    从图4中可以看出,三个输入信号频点的幅值依次为1280、1280、640;其他频率所对应的幅值均为0。按照公式,可以计算直流分量(频率为0Hz)的幅值为:1280/N= 1280/256=5;频率为50Hz的交流信号的幅值为:1280/(N/2)= 1280/(256/2)=10;而75Hz的交流信号的幅值为640/(N/2)=640/(256/2)=5。这也正是我们输入信号中的三个分量的直流分量值,由此可见,从频谱分析出来的幅值是正确的。

    通过上面的例子我们可以看出,对于一个输入信号,假如我们不能确定该输入信号的频率组成,我们对其进行FFT处理之后,便可以很轻松的看出其频率分量,并且可以通过简单的计算来获知该信号的幅值信息等。另外,如果想要提高频率分辨率,我们根据计算公式首先想到的就是需要增加采样点数,但增加采样点数也就意味着计算量增加,这在工程应用中增加了工程难度。解决这个问题的方法有频率细分法,比较简单的方法是采样较短时间的信号,然后在后面补充一定数量的0,使其长度达到需要的点数(一般为2的幂次方的点数),然后再做FFT,就能在一定程度上提高频率分辨率。

     

    参考文献

    https://blog.csdn.net/guyuealian/article/details/72817527

    https://blog.csdn.net/Best_Coder/article/details/39560287

    https://blog.csdn.net/wordwarwordwar/article/details/68951605

    https://wenku.baidu.com/view/aa227c1e650e52ea55189866.html

    https://wenku.baidu.com/view/c33302126edb6f1aff001f04.html

    https://blog.csdn.net/xz_wang/article/details/24926415

    https://blog.csdn.net/djzhao/article/details/78333996

    https://blog.csdn.net/liuuze5/article/details/40051395

     

     

     

    展开全文
  • 西安交通大学数字信号处理-快速傅里叶变换FFT实验报告
  • 零阶保持器:每个采样周期内保持数字信号为常值 2 信号 2.1 模拟信号、连续信号 时间和函数值均连续的信号。 如模拟电路的电流值、电压值。 2.2 数字信号、采样信号、离散信号、序列 模拟信号>>>>>...

    1 几个重要的概念、定义

    A: Analog 模拟
    D: Digital 数字
    A/D转换器:
    采样器、采样开关
    D/A转换器:
    零阶保持器:每个采样周期内保持数字信号为常值

    2 信号

    2.1 模拟信号、连续信号、连续时间信号

    时间和函数值均连续的信号。
    如模拟电路中的电流值、电压值。
    在这里插入图片描述

    2.2 数字信号、采样信号、离散信号、离散时间信号、序列

    模拟信号>>>>>采样>>>>>>数字信号
    只知道采样时间点的函数值。时间和函数值均离散的信号。
    数学上:只在离散时间点上函数值有定义。
    误区:其他时间点的函数值并非为0,只是没有定义。
    在这里插入图片描述
    有的教科书HIA表示为:
    在这里插入图片描述
    在这里插入图片描述

    2.3 信号的MATLAB实现

    2.3.1 信号的表示

    严格意义上MATLAB不能用来实现连续信号
    采样时间很小的离散信号>>>>>>逼近>>>>>>>>>>连续信号

    t=0:0.001:10;
    f=sin(t);
    plot(t,f,'.-r')
    

    2.3.2 符号函数专用绘图

    syms t
    f=sin(t)/t;
    ezplot(f,[-10,10])
    

    2.3.3 常用的信号表示

    阶跃信号
    syns t
    f=heaviside(t);
    ezplot(f,[-10,10])
    门信号、矩形信号
    syns t
    f=heaviside(t+1)-heaviside(t-1);
    ezplot(f,[-10,10])
    单位冲激函数信号: diract(t) 可用于计算,绘制不出图形。
    符号函数信号: sgn(t)

    3 卷积运算

    卷积积分,简称卷积。
    卷积的引入:任意信号f(t)经过某系统的零状态响应为f(t)与h(t)的卷积,h(t)为系统的冲击响应函数。(时域分析)
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    4 连续时间周期函数的傅里叶级数 CFS、连续时间 周期信号的频谱

    4.1 傅里叶级数复指数形式:

    在这里插入图片描述

    4.2 傅里叶级数三角函数形式:

    在这里插入图片描述

    4.3 级数的系数求取:参考文献[1]

    4.4 连续时间周期信号的频谱:

    振幅频谱、频谱:横坐标为频率w,纵坐标为三角函数的幅值。
    周期信号的频谱是离散的。
    在这里插入图片描述
    谐波叠加例子:
    在这里插入图片描述
    在这里插入图片描述

    5 连续时间 非周期函数的傅里叶变换 CFT、连续时间 非周期信号的频谱

    5.1 反变换

    在这里插入图片描述

    5.2 正变换

    在这里插入图片描述
    可知连续时间 非周期信号的频谱F(jw)是频率w的连续函数

    5.3 频谱

    横坐标为连续频率w,纵坐标为幅值、相位。

    在这里插入图片描述

    6 连续时间 周期函数的傅里叶变换

    由上可知,周期函数的傅里叶级数是离散的,非周期函数的傅里叶变换是连续的。为了应用方便,把周期函数和非周期函数统一到傅里叶变换。
    在这里插入图片描述
    略。

    7 傅里叶变换收敛条件、狄利赫里条件

    在这里插入图片描述

    8 时域采样定理

    采样信号的频谱是连续信号频谱的周期延拓
    为了不产生混叠,采样周期必须满足香农采样定理。

    在这里插入图片描述

    9 离散信号的傅里叶变换

    在这里插入图片描述
    在这里插入图片描述
    离散信号的频谱是beta的连续函数,beta=w*Ts成为数字频率,注意yu8频率w区别开来。
    在这里插入图片描述
    在这里插入图片描述

    8 FFT在信号分析中的应用

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    参考文献
    [1] 陈金西
    在这里插入图片描述
    [2]

    展开全文
  • 数字信号处理:研究时域离散的模拟信号基本概念时域离散信号(采样)时域与频域波形特点 离散周期信号的傅里叶级数(DFS) 离散非周期信号的傅里叶变换(DTFT) 离散时间傅里叶变换(DTFT,频率连续) 离散傅里叶变换...

    数字信号处理:研究时域离散的模拟信号

    一、离散傅里叶变换

    1.信号基本概念

    连续信号与离散信号从横轴时间上分析
    模拟信号与数字信号从纵轴幅值上分析

    狭义数字信号:时间离散,幅值离散
    幅度离散信号:时间连续,幅值离散(特殊数字信号)

    狭义模拟信号:时间连续,幅值连续
    时域离散信号:时间离散,幅值连续(t\特殊模拟信号)

    2.频谱基本概念

    信号的频谱

    在这里插入图片描述

    F(nw1)F(nw1)频谱
    F(nw1)()|F(nw1)|幅度频率特性(幅频特性)、幅度频谱图(幅度谱)
    φn\varphi_n相位频率特性(相频特性)、相位频谱图(相位谱)

    在这里插入图片描述
    F(w)F(w)频谱密度函数,简称频谱函数
    F(w)()|F(w)|幅度频率特性(幅频特性)、幅度频谱图(幅度谱)
    φ(w)\varphi(w)相位频率特性(相频特性)、相位频谱图(相位谱)

    系统频谱

    单位冲击响应h(t)或h(n)
    连续信号的系统函数H(s)H(s),频率响应特性(函数)H(jw)H(jw)
    H(jw)=H(jw)φ(w),H(jw)φ(w)H(jw)=|H(jw)|\varphi(w),|H(jw)|幅频特性,\varphi(w)相频特性
    离散信号的系统函数H(z)H(z),频率响应特性(函数)H(ejw)H(e^{jw})
    H(ejw)=Hg(w)ejθ(w)Hg(w)θ(w)H(e^{jw})=H_g(w)e^{j\theta(w)},H_g(w)幅度特性(振幅响应),\theta(w)相位特性(相位响应)
    在这里插入图片描述
    在这里插入图片描述

    2.理想采样信号的傅里叶变换(FT)

    原模拟信号:傅里叶变换结果的横坐标Ωf\Omega 或f

    模拟角频率Ω=2πf\Omega=2 \pi f——信号带限频率Ωc\Omega_c
    模拟频率(线频率)ff——信号带限频率fcf_cfmaxf_{max}
    数字信号没有线频率

    模拟周期冲击信号:

    周期冲击信号乘以原模拟信号得到理想采样信号
    采样周期TsT_s(或T)——周期冲击信号的周期
    采样频率fsFs=1Tsf_s或F_s=\frac{1}{T_s}——周期冲击信号的模拟频率。注:Fs/2F_s/2折叠频率
    采样角频率Ωs=2πTs\Omega_s=\frac{2\pi}{T_s}——周期冲击信号模拟角频率Ω\Omega

    理想采样信号:一般模拟信号,只能FT得到横轴Ωf\Omega或f

    理想采样信号xa(t)\overset{-}{x_a(t)}是对连续模拟信号采样:
    模拟信号乘以冲击信号的和
    在这里插入图片描述

    时域离散信号:特殊模拟信号,可DTFT(横轴ww)

    时域离散信号x(n)x(n):横轴为nT省略成n,纵轴为x(nT)省略成x(n)——离散时间傅里叶变换DTFT,
    数字域频率w=ΩTs=ΩFs=2πffsw= \Omega T_s=\frac{\Omega}{F_s}=2 \pi\frac{ f}{f_s},归一化频率范围0,2π【0,2\pi】
    时域离散信号的周期为NN,满足x(n)=x(n+N),x(w0n)=x(w0(n+N))x(n)=x(n+N),即x(w_0n)=x(w_0(n+N))
    w0N2π,w0N=2πkw_0N是2\pi的整数倍,w_0N=2\pi k
    NT=2πΩkkN即NT=\frac{2\pi}{\Omega}k,采样信号的模拟周期是原模拟信号周期的k倍,过了N个点波形重复

    周期冲击信号的FT与理想采样信号的FT

    在这里插入图片描述

    理想采样信号FT与时域离散信号DTFT 等价

    上一讲得到理想采样信号的连续傅里叶变换(FT)的频谱是模拟信号频谱周期性延拓
    这一讲得到时域离散信号的离散傅里叶变换(DTFT)的频谱也是模拟信号频谱周期性延拓

    证明如下:
    在这里插入图片描述
    在这里插入图片描述

    3.离散非周期信号的离散时间傅里叶变换(DTFT)

    在这里插入图片描述

    4.离散周期信号的傅里叶级数(DFS)

    在这里插入图片描述

    5.离散周期信号的离散时间傅里叶变换(DTFT)

    在这里插入图片描述

    5.1基本序列的傅里叶变换

    在这里插入图片描述

    5.2复指数信号的离散时间傅里叶变换

    在这里插入图片描述

    6.离散傅里叶变换(DFT):与DFS密切相关

    在这里插入图片描述

    6.1为什么有DFT?

    非周期连续信号x(t)x(t):FT连续非周期的频谱密度函数F(w)F(w)

    问题1:FT不行,计算机无法输入的连续时域信号

    计算机可以输入采样的非周期离散信号x(n)x(n):FT是F(w)周期延拓或DTFT得到连续周期频谱密度函数X(ejw)X(e^{jw})

    问题2:x(n)可以无失真恢复x(t)吗?——时域采样定理
    问题3:FT/DTFT不行,计算机依然无法输出周期连续的频谱

    非周期离散信号周期延拓得到xˇ(n)\check x(n):DFS离散周期的频谱密度函数Xˇ(k)\check X(k)(一个要点:DFS的傅里叶级数没有1/N,X(k)是频谱密度函数不是频谱,就是让X(k)直接变成连续信号的采样)

    问题4:Xˇ(k)\check X(k)能够恢复出X(ejw)X(e^{jw})吗?——频域采样定理
    问题5:DFS不行,计算机无法输入输出都是无限长的

    非周期离散信号周期傅里叶级数时域和频域截取主值序列即DFT
    DFS是对DTFT的在每个2π2\pi区间上的N点等间隔采样
    DFT是对DFS的时域和频域取主值序列N个点

    6.2时域采样定理(奈奎斯特采样定理或奈奎斯特定理):

    原理:
    时域连续非周期的信号x(t)x(t)通过FT得到频域非周期连续F(jΩ)F(j\Omega)
    时域离散非周期的理想采样信号x(t)x(t)'通过FT得到频域周期连续的X(jΩ)X(j\Omega)'
    时域离散非周期的时域离散信号x(n)x(n)通过DTFT得到频域周期连续X(ejw)X(e^{jw})

    理解:
    非周期时域采样得到不同点数的时域离散信号
    研究能否通过采样后的x(t)x(t)'x(n)x(n)恢复x(t)
    即研究能不能通过周期连续的频谱X(jΩ)X(j\Omega)'X(ejw)X(e^{jw})恢复非周期连续的频谱F(jΩ)F(j\Omega)
    即研究x(n)通过低通滤波器能否恢复成x(t)——如果发生频谱混叠,x(n)无法恢复x(t)

    结论:
    连续非周期信号的持续时间TpT_p一定,采样间隔越小,采样点数M越多,采样频率越高
    采样信号x(n)通过低通滤波器恢复原信号x(t),频域无混叠
    条件如下:
    采样周期TsT_s足够小
    采样频率足够大Fs2>fmax\frac{F_s}{2}>f_{max}fs>2fcf_s>2f_c
    采样角频率足够大Ωs2Ωc\Omega_s\ge2\Omega_c
    在这里插入图片描述

    时域采样定理的内插公式:
    频域通过乘以低通滤波器恢复
    时域通过卷积低通滤波器时域表达式sa函数恢复
    在这里插入图片描述

    6.3 频域采样定理:

    原理:
    时域离散非周期的理想采样信号x(t)x(t)'通过FT得到频域周期连续的X(jΩ)X(j\Omega)'
    时域离散非周期的时域离散信号x(n)x(n)通过DTFT得到频域周期连续X(ejw)X(e^{jw}),周期2π2\pi
    时域离散周期的x(n)x(n)'通过DFS得到频域周期离散X(k)X(k)'
    ——DFT对应以N为周期的xN(n)x_N(n)'进行DFS得到以N为周期的XN(k)X_N(k)',再截取主值序列
    时域离散非周期的x(n)x(n)通过N点DFT得到频域非周期离散X(k)X(k)

    理解:
    X(k)X(k)是对连续频谱X(ejw)X(e^{jw})一个周期做N点等间隔采样得到的频域离散信号
    研究能否通过采样后的X(k)X(k)恢复连续的频谱X(ejw)X(e^{jw})一个2π2\pi区间
    即研究能否通过采样后的XN(k)X_N(k)'恢复连续的频谱X(ejw)X(e^{jw})
    即研究能否通过xN(n)x_N(n)'恢复x(n)x(n)
    即研究xN(n)x_N(n)'的主值序列是不是x(n)x(n)——如果发生时域混叠,则X(k)X(k)无法恢复频谱X(ejw)X(e^{jw})

    结论:
    连续非周期信号的采样时间TpT_p一定,频率分辨率一定,同时采样间隔一定即采样点数就为M点,
    进行DFT的点数越多,在频域上的采样点数越多
    DFT点数N>=信号有效点数M——IDFT的结果即XN(k)X_N(k)'主值序列就是x(n),无时域混叠

    频域采样定理的内插公式:
    时域通过截取主值序列恢复,通过乘以矩形窗恢复
    频域通过卷积sa函数进行恢复
    在这里插入图片描述

    6.4 DFT误差分析

    理想采样信号FT:时域离散非周期,频域周期连续;
    时域离散信号DTFT:时域离散非周期,频域周期连续

    横轴 横轴起点 检测的最高频率成分 一个周期终点 信号实际包含的最高成分
    Ω=2πf模拟角频率\Omega=2\pi f 0 Ωs/2\Omega_s/2 Ωs=2πTs\Omega_s=\frac{2\pi}{T_s} Ωc信号带限频率\Omega_c
    f=Ω2π模拟频率f=\frac{\Omega}{2\pi} 0 fs/2f_s/2,折叠频率 fs=1Tsf_s=\frac{1}{T_s}  fc信号带限频率\ f _c
    w=ΩTs=2πffs数字域频率w=\Omega T_s=2\pi\frac{f}{f_s} 0 π\pi 2π\pi 2πfcfs2\pi \frac{f_c}{f_s}
    归一化数字频率 0 11 22 2fcfs2 \frac{f_c}{f_s}

    采样周期TsT_s,检测信号的不同的频率成分,TsT_s越小,检测的频率成分越多
    信号持续时间TpT_p
    有效采样点数N=TpTs=TpFSN=\frac{T_p}{T_s}=T_pF_S
    频率分辨率F(单位Hz)是对模拟信号频谱的采样间隔,只和TpT_p有关,越接近真实频谱,频率分辨率越高
    F=FsN=1NT=1TpF=\frac{F_s}{N}=\frac{1}{NT}=\frac{1}{T_p}

    时域信号长度TpTp一定,只缩短采样周期来增加原信号有效采样点数
    周期信号周期不改变,频谱密集程度一定,即频率分辨率不变
    理想采样信号频谱延拓,Ωsfs\Omega_s、f_s增加,信号的真实频谱范围增加
    DFT低频信号带宽占02π0到2\pi范围减小,02π0到2\pi反映的信号频率成分更全面,归一化反映不是真实的信号频率

    时域采样周期不变,给信号补零来增加信号DFT在频域采样点数
    采样间隔T不变,理想采样信号频谱不搬移,反映的仍然是信号真实频率的仍是较低一段,没有让反映信号的频率成分更全面。但是这一段频率更靠近连续谱了,减小栅栏效应,增加观察分辨率
    若数据在补零位置就是0确实提高了频率分辨率,但数据在补零位置不是零,我们的频谱逼近的是在补零位置为0的连续频谱,故频率分辨率没有提高

    N越大会怎么样
    数字DFT或FFT:时域离散非周期,频域离散非周期,连续频谱频域N点等间隔采样
    离散周期傅里叶级数是分解到单位圆上的N个相量,跳转能力在2π2\pi内的N个点,离散非周期序列的DTFT的连续谱的N点等间隔采样,N越大分解成的相量个数越多那么越靠近连续谱
    一定提高了观察分辨率,频率分辨率有没有提高不一定,也许现有了截断效应那么频率无法完善

    频谱混叠:
    频谱搬移程度不够,频谱发生混叠

    截断效应:
    非周期信号很长,就需要截取非周期信号的一段

    栅栏效应:
    非周期信号当成周期信号,从连续谱编程离散谱,肯定存在栅栏效应

    非周期连续信号的FT是连续非周期信号F(jw)
    周期连续信号的FT是离散非周期的,是对F(jw)以w1=2πTpw_1=\frac{2\pi}{ T_p}为间隔采样
    非周期离散信号(理想采样)的FT是连续周期的,是对F(jw)以Ωs=2πTs\Omega_s=\frac{2\pi}{T_s}为周期延拓——在信号长度不变下,采样周期减小,采样点数增加,模拟信号的频谱搬移增加
    非周期离散信号(时域离散)的DTFT是连续周期的,是对F(jw)的0Ωs0到\Omega_s的频谱压缩到02π0到2\pi上再延拓——在信号长度不变下,采样周期减小,采样点数增加,反映的信号频率成分更全面
    周期离散信号的DFS是离散周期的,是对上面每个02π0到2\pi上N点等间隔采样
    非周期离散信号的DFT是离散非周期的,是取上面02π0到2\pi上N点即一个区间
    模拟的横轴是频率Ωsfs\Omega_s或f_s
    DFT横轴是角度,要除以T归一化为Ω\Omega,除以2π2\pi归一化为fsf_s

    7. 快速傅里叶变换(FFT)

    连续信号的抽样点数可以自己进行设置

    DFT的优化
    补零法:
    同时知道了补零点的作用,其仅仅是提高了计算分辨率,
    得到的是高密度频谱,并不能得到高分辨率谱,要提高频率
    分辨率,则要通过增加数据记录长度来提高物理分辨率

    matlab应用:FFT与IFFT

    二、z变换

    z变换是将信号做不同常数级衰减之后再进行离散时间傅里叶变换
    在单位圆外说明需要衰减,在单位圆内说明扩大都没事!

    DTFT傅里叶变换与z变换

    在这里插入图片描述

    零极点分布与幅频特性

    H(ejw)H(e^{jw})变换成零极点类型,根据零极点大致判断H(ejw)H(e^{jw})的幅频特性曲线
    ejwe^{jw}是在复平面单位圆上移动的点,从0到2π2\pi一次循环
    分子变成零点矢量,由零点指向单位圆上的点
    分母变成极点矢量,由极点指向单位圆上的点

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    线性相位FIR零极点分布的特点

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    三、手工滤波器设计

    模拟滤波器、数字滤波器
    低通滤波器、高通滤波器、带通滤波器、带阻滤波器
    在这里插入图片描述

    1.模拟滤波器设计

    模拟滤波器设计方法:
    巴特沃斯滤波器:通带平坦,单调下降的幅频特性
    切比雪夫滤波器:通带或阻带具有等波纹特性
    椭圆滤波器:通带具有等波纹特性
    贝塞尔滤波器:通带具有线性相位特性

    设计指标

    Ωp\Omega_p通带边界频率,αp,αp\alpha_p通带最大衰减,即幅度下降\alpha_p
    ——通带衰减不能超过这个指标
    Ωs\Omega_s阻带截止频率,αsαs\alpha_s阻带最小衰减,即幅度下降\alpha_s
    ——阻带衰减必须超过这个指标
    Ωc3dB22,\Omega_c 是3dB频率,幅度下降到\frac{\sqrt[]{2}}{2},功率下降了一半
    在这里插入图片描述

    在这里插入图片描述

    设计巴特沃斯低通滤波器的一般步骤与实例

    在这里插入图片描述

    请添加图片描述

    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述

    利用巴特沃斯模拟低通滤波器设计模拟高通滤波器

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    利用巴特沃斯模拟低通滤波器设计模拟带通滤波器

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.数字滤波器设计

    数字滤波器设计方法:
    无限长单位脉冲响应IIR滤波器、有限长单位脉冲响应FIR滤波器
    在这里插入图片描述
    在这里插入图片描述

    2.1 IIR滤波器设计

    在这里插入图片描述

    例1:设计IIR数字低通滤波器-脉冲响应不变法(间接法)

    脉冲响应不变法是利用z变换与拉普拉斯变换之间的对应关系,但是要转换为零极点增益模型
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    简单实例:
    在这里插入图片描述

    例2:设计IIR数字低通滤波器-双线性变换法(间接法)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    例3:设计IIR数字高通滤波器-双线性变换法(间接法,不能用脉冲响应不变法)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.2 FIR滤波器设计

    第一类线性相位:h(n)偶对称

    频域特点:θ(w)=τw\theta(w)=-\tau w
    时域特点:h(n)τ,τ=N12,h(n)=h(N1n)h(n)以\tau 为中心偶对称,\tau=\frac{N-1}{2},即h(n)=h(N-1-n)
    N为奇数时,对称轴有数值;N为偶数时,对称轴可以没有数值的小数
    在这里插入图片描述

    第二类线性相位:h(n)奇对称

    频域特点:θ(w)=π2τw\theta(w)=-\frac{\pi}{2}-\tau w
    时域特点:h(n)τ,τ=N12,h(n)=h(N1n)h(n)以\tau 为中心奇对称,\tau=\frac{N-1}{2},即h(n)=-h(N-1-n)
    N为奇数时,对称轴有数值且数值必须为0;N为偶数时,对称轴可以没有数值的小数
    在这里插入图片描述

    线性相位FIR滤波器幅度响应的特点(三角函数形式的傅里叶变换)

    一类线性相位h(n)偶对称,N为奇数

    在这里插入图片描述

    一类线性相位h(n)偶对称,N为偶数(H(π)=0H(\pi)=0,不能高通、带阻)

    在这里插入图片描述

    二类线性相位h(n)奇对称,N为偶数(H(0)=H(π)=0H(0)=H(\pi)=0,不能低通、带阻、高通)

    在这里插入图片描述

    二类线性相位h(n)奇对称,N为奇数(H(0)=0H(0)=0,不能低通、带阻)

    在这里插入图片描述

    窗函数法

    目标滤波器的频域特性Hd(w)H_d(w),对应目标滤波器的时域特性hd(n)h_d(n)
    对目标滤波器的时域特性做怎样的处理(选取怎样的窗函数w(n)w(n)
    实际能实现滤波器的时域特性h(n)h(n),实际能实现滤波器的频域特性H(w)H(w)
    在这里插入图片描述

    在这里插入图片描述
    使用矩形窗的滤波器实际频域H(w)
    在这里插入图片描述

    其他窗函数的时域w(n)w(n)表达式与频域H(w)图像
    在这里插入图片描述
    窗函数的技术指标:N越大W(w)H(w)W(w)与H(w)过渡带越窄
    在这里插入图片描述
    给定指标阻带最小衰减αs\alpha_s,找到衰减更厉害一些满足条件的窗的A
    给定指标过渡带宽Δw\Delta w(通过条件计算出来)
    N=AΔwN=\frac{A}{\Delta w}

    频率采样法

    等波纹逼近法

    展开全文
  • 数字信号处理课件--离散傅里叶变换 3.1 引言 3.2 周期序列的离散傅里叶级数(DFS) 3.3 离散傅里叶级数(DFS)的性质 3.4 有限长序列离散傅里叶变换(DFT) 3.5 离散傅里叶变换的性质(1-3) 3.6 频域采样理论 ...
  • 它对傅里叶变换的理论没有新的发现,但它的出现让离散傅里叶变换在计算机系统得到了广泛的应用。 设x(n)为N项的复数序列,对其进行DFT,任一X(m)的计算都需要N次复数乘法和N-1次复数加法,因此要求出N项复序列的X...

    文章首发于我的个人博客

    1、FFT背景

    快速傅里叶变换(FFT)是离散傅里叶变换(DFT)的快速算法,它是根据离散傅里叶的奇、偶、虚、实等特性,在DFT的基础上进行改进获得的。它对傅里叶变换的理论没有新的发现,但它的出现让离散傅里叶变换在计算机系统中得到了广泛的应用。

    设x(n)为N项的复数序列,对其进行DFT,任一X(m)的计算都需要N次复数乘法和N-1次复数加法,因此要求出N项复序列的X(m),大约需要N2N^2次运算。当N逐渐增大时,运算量将呈指数式增长,这在实际应用中是一场灾难。而在FFT中,利用WNW_N的周期性和对称性,把一个N项序列(设N=2k)分为两个N/2项的子序列,每个N/2点DFT变换需要(N2)2(\frac{N}{2})^2次运算,再用N点运算把两个N/2点的DFT变换组合成一个N点的DFT变换。这样的变换总运算次数为N+2(N2)2=N+N22N+2(\frac{N}{2})^2=N+\frac{N^2}{2}。如果将这种一分为二的思想一直继续下去,知道分成两两一组的DFT运算单元,那么N点的DFT变换就只需要Nlog2N次运算,当N为1024点时,运算量仅为10240次,是使用DFT算法的1%,点数越多,运算量的减少就越显著,这是FFT的优越性。

    2、FFT推导

    图1

    详细的推导在这里我不再重复,我推荐去看程佩青版本的《数字信号处理》基2DIT-FFT部分。

    在此,我只通过一个8点DFT流图来说明FFT算法的核心原理,在我使用Python实现FFT代码的过程中,也是先实现上图所示的FFT流图,并不断地根据代码输出结果与正确结果之间的差别来DEBUG代码,不断完善,最终拓展到2048点的FFT。

    实现基2DIT-FFT主要有三个步骤:

    • 补零
    • 抽取奇偶序列(倒序)
    • 三个循环
      • L级蝶形运算
      • 2Lm2^{L-m}个蝶形运算块
      • 每个蝶形运算块中有2m12^{m-1}次蝶形运算

    首先,将序列输入FFT算法之前,首先要判断序列长度是否满足N=2LN=2^L,如果不满足情况,需要对输入序列进行补零操作,然后再送入算法。其次,要使最终输出FFT结果为正序排列,需要对输入的数据进行奇偶抽取(倒序)。倒序是指将指数n。倒序是指将数n的二进制码颠倒后的数n^\hat{n}。例如当N=8时,采用三位二进制码,n=(110)=6n=(110)=6,则n^=(011)=3\hat{n}=(011)=3。因而要将输入序列x(6)和x(3)互换,即做变址运算。N=8时变址结果如下图(与图1中输入序列顺序一致)

    图2

    接下来,我以图1为例重点说明FFT运算的流程。首先规定,图1为8点FFT,共有L=3级蝶形运算,当前进行蝶形运算的级用m表示。

    以第一级m=1为例,第一级需要2Lm=231=42^{L-m}=2^{3-1}=4个蝶形运算块,每个蝶形运算块中有2m1=211=12^{m-1}=2^{1-1}=1次蝶形运算。从图1中也可以明显看出,第一级被分为4个蝶形运算块,每个蝶形运算块中有1次蝶形运算。

    以第二级m=2为例,第二级需要2Lm=232=22^{L-m}=2^{3-2}=2个蝶形运算块,每个蝶形运算块中有2m1=221=2^{m-1}=2^{2-1}=次蝶形运算。从图1中也可以明显看出,第二级被分为2个蝶形运算块,每个蝶形运算块中有2次蝶形运算。

    以此类推…

    在进行第m级蝶形运算时,我们需要用到以下公式:
    Xm(k)=Xm1(k)+WNrXm1(k+2m1) X_m(k)=X_{m-1}(k)+W_N^rX_{m-1}(k+2^{m-1})

    Xm(k+2m1)=Xm1(k)WNrXm1(k+2m1) X_m(k+2^{m-1})=X_{m-1}(k)-W_N^rX_{m-1}(k+2^{m-1})

    从公式中我们可以看出,在进行蝶形运算时,旋转因子WNrW_N^r的计算是至关重要的,其中r的求法便是核心。具体步骤如下:

    将地址k乘以2Lm2^{L-m}(即左移L-m位):

    • 将k变为L位二进制数
    • 将此二进制数左移L-m位,右边空出的位置补零,结果即为r的值。

    以第二级m=2为例,将k=0写成3位二进制数,然后左移(3-2)=1位,右边补零得到r=0。将k=1写成3位二进制数,然后左移(3-2)=1位,右边补零得到r=2。与图1中示意图结果相比,一致。

    图3

    至此,我们便完成了FFT中最关键步骤的解释。在熟悉了FFT公式推导原理的基础上,再加上述我用8点FFT梳理的FFT算法关键点,你便可以写出FFT的代码了。

    3、FFT核心代码

    def fft_transform(Xn, N=None):
    	if N == None:
    		N = len(Xn)
    	xx = Xn.copy()
        # 首先判断序列长度是否满足2的幂次,若不满足,补零
    	if math.modf(math.log2(N))[0] != 0:
    		N_ = int(math.pow(2,math.modf(math.log2(N))[1]+1))
    		print(N_, N)
    		xx = np.pad(xx,(0,N_-N),mode="constant",constant_values=0)
    		N = N_
    	print("xx:",len(xx))
        # 对输入序列进行倒序
    	Xn_copy = reverse_order(xx, N)
    
        # 提前计算旋转因子,在进行蝶形运算时,根据r的值调用以计算的旋转因子即可
    	rotation_factor = get_rotation_factor(N)
    	sum = 0
        # 共有L级蝶形运算
    	L = int(math.log2(N))
    	for m in range(L):
            # 第m级蝶形运算
    		m = m + 1
            # 每个蝶形运算块中,蝶形运算次数
    		k_sum = int(math.pow(2,m-1))
            # 每一级蝶形运算块的总数总count来表示
            # 这里我并没有直接使用2^(L-m)来算出蝶形运算块的总数
            # 而是使用累计计数的方式,count表示当前蝶形运算时刻所在的是哪个蝶形运算块
            # 为什么要采用这种方式?因为我们每一级的蝶形运算结果都保存在一个数组内,
            # 为了方便数组位置寻址,所以采用这种方式,不同的蝶形运算块可以直接使用count计算得到
            # 该蝶形运算结果应该存放的位置
            # 如果对这个步骤依旧不是很理解,可以多花点时间仔细研究
    		count = 0
    		while count < N:
    			for k in range(k_sum):
                    # 蝶形运算公式后半部分
    				tt = Xn_copy[count+k+k_sum]*rotation_factor[k<<(L-m)]
    				t_1 = Xn_copy[count+k] + tt
    				t_2 = Xn_copy[count+k] - tt
    				Xn_copy[count+k] = t_1
    				Xn_copy[count+k+k_sum] = t_2
    			count = count + int(math.pow(2,m))	# 在这里更新蝶形运算块
    	#print(Xn_copy)
    	return Xn_copy, running_time
    

    4、实现效果

    4.1 基2DIT-FFT与DFT效率对比

    图4 DIT-FFT与DFT效率比较

    图5 DIT-FFT与DFT运行效率对比

    图6 dft/fft/fft_real/scipy_fft运行效率对比

    4.2 基2DIT-FFT与matlab fft运行结果对比

    首先,我使用三个模拟频率分别为10HZ、100HZ、200HZ的正弦波序列作为输入序列,然后分别对这三个序列进行FFT变换,并将其时域曲线和频谱曲线可视化。如图7所示为我用Python实现的DIT-FFT算法变换的结果,图8为使用matlab提供的fft()函数对序列进行变换的结果。从最终结果来看,二者的效果相同。

    图7

    图8

    之后,我将这三个频率不同,持续时间相同的正弦波信号混合得到x(n)混合序列,然后对其进行FFT变换。图9为使用DIT-FFT算法变换的结果,图10为使用matlab提供的fft()函数对其进行变换的结果。从最终呈现的效果来看,二者都可以很清晰地看到三个混合的信号在频谱中对应的谱线。

    图9

    图10

    我将刚刚的混合信号x(n)时间长度设置为1。然后分别对其进行128点,256点,512点的FFT变换,并可视化其频率的幅度谱和相位谱。图11为使用DIT-FFT变换的结果,图12为使用matlab提供的fft()函数进行变换的结果。

    从结果中可以看出,当使用128点FFT时,此时频率为100HZ和200HZ的频谱发生混叠。当使用256点FFT时,频率为200HZ的频谱发生混叠。当使用512点FFT时,频谱不混叠,可以在幅度谱中看到频率为50HZ、100HZ、200HZ的谱线。

    图11

    图12

    当我使用对输入信号为600点的序列进行DIT-FFT变换时,此时不满足N=2LN=2^L条件,需要先对输入序列进行补零,然后再进行变换。图13为使用我用Python实现的DIT-FFT算法对补零到到1024点的序列进行变换的结果。图14为将600点输入序列用matlab提供的fft()算法进行变换的结果。从结果中我们可以看到,我自己实现的DIT-FFT算法频谱有明显的拖尾现象,而matlab变换的结果频谱曲线却很干净。经过一番思考之后,我首先将输入matlab fft()算法的序列先进行1024点补零,然后输入fft()算法,最终得到了如图15所示的效果。由此我们可以发现,matlab提供的fft()算法是基于混合基的DIT-FFT。当输入序列满足条N=2LN=2^L件时,进行基2DIT-FFT算法,如果不满足该条件则使用混合基DIT-FFT算法,而不是进行补零操作。

    图13 600点fft

    图14 matlab_600点fft

    图15 matlab_补零后600点fft

    5、完整代码

    如果需要可在码云获取,代码链接:FFT-Implement。(其中fft_implement.py为FFT实现,tools.py为计算旋转因子、输入序列倒序代码)

    展开全文
  • 这是对应《数字图像处理》第二章的最后一个例子,今天我们聊一聊傅里叶变换在数字图像处理领域应用。作为一名工科生,即便早已经把什么傅里叶级数、DFT/FFT、变换/逆变换这些公式忘得一干二净了,但是提到傅里叶...
  • 数字信号处理实验报告-(2)-离散傅里叶变换(DFT),有代码,几乎每行都有注释,高清原图,完全能看得懂的那种
  • 傅里叶变换在实际有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅里叶变换就表示f的频谱。从纯粹的数学意义上看,傅里叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅里叶变换是将...
  • 傅里叶变换信号分析的根基,当初自己花了3个多星期才将傅里叶变换信号分析大致掌握,当然走了许多弯路,以下是我整理的两篇对理解傅里叶变换非常有用的文章,应该说,如果你能静心研究至少2个星期,你将完全掌握...
  • 数字信号处理课件,离散傅里叶变换及反变换在数字滤波器设计应用
  • word教育资料 实验三 快速傅里叶变换及其应用 一:实验目的 加深对FFT的理解熟悉matlab的有关函数 应用FFT对典型信号进行频谱分析 了解应用FFT进行信号频谱分析过程可能出现的问题以便实际正确应用FFT. 应用...
  • 1.理解二维傅里叶变换的定义 1.1二维傅里叶变换 二维Fourier变换: 逆变换: 1.2二维离散傅里叶变换 一个图像尺寸为M×N的 函数的离散傅里叶变换由以下等式给出: 其中 和。其中变量u和v用于确定它们的...
  • 3、通过实验对离散傅里叶变换的主要性质及 FFT 在数字信号处理中的重要作用有进一步的了解。 二、实验要求及内容 第一题代码: clear all; N=32; n=0:N-1; xn=sin(2pin/32); subplot(2,1,1); plot(n,xn); xlabel(‘n...
  • 文章目录1. FFT推导2. FFT为什么快?3. 一些加速措施3.1 查表...但是离散傅里叶变换计算量巨大,通常实时信号处理时是无法使用的,直到快速傅里叶变换(FFT)算法被发现。 与DFT不同,FFT是一种算法而非理论,因此...
  • 在信号处理领域,存在诸多变换,比如标题的五个变换。本文将对这五个变换进行介绍和比较。开始之前,我们需要先理清什么是平稳信号,什么是非平稳信号。 我们知道,自然界几乎所有信号都是非平稳信号,比如...
  • 以离散傅里叶变换,和数字滤波器为例,探讨了matlab在数字信号主力应用
  • 离散傅里叶变换的定义 离散傅里叶变换的基本性质 频率域采样 DFT的应用举例
  • 分数阶傅里叶变换在信号检测与图像处理中应用研究(李琼) 发展历史 特性 二维分数阶傅里叶变换 基于分数阶傅里叶变换的图像分析 分数阶变换图像的能量分布 分数阶傅里叶变换的图像的幅度和相位信息 分数...
  • 一、离散时间傅里叶变换(DTFT) 周期性:离散时间傅里叶变换是关于w的周期函数,周期为2*pi 对称性:实部偶对称,虚部奇对称 例1: >> n=-1:3; >> x=1;5; >> k=0:500; >> x=1:5; >...
  • 模拟图像处理(Analog image processing);...模拟处理包括:光学处理(利用透镜)和电子处理,如:照相、遥感图像处理、电视信号处理等,电视图像是模拟信号处理的典型例子,它处理的是活动图像,25帧/秒。
  • 中图分类号:TP37 文献标识码:A ... 教学过程,通过Matlab设计具体的仿真实例,运用图形化的方式来讲解抽象的理论知识和技术理论,使学生更好的理解数字信号处理课程的概念和设计方法,从而提高学生的应用能力。
  • 数字图像处理-傅里叶变换马殿富 dfma@nlsde.buaa.edu.cn 2002.9.29 变换问题的引入 数字图像正交变换 傅里叶变换 沃尔什变换 哈达玛变换 离散余弦变换 K-L变换 小波变换 傅里叶变换 傅里叶变换是线性系统分析的一个...
  •  傅里叶变换把空间域和频域联系起来,一个空间域的序列可以通过其变换得到对应的频域的序列。而通过反变换亦能得到原始的序列。卷积定理的意义:图像增强分为频域和空间域两类。对于空间滤波来讲,对整个图像
  • 傅立叶变换、拉普拉斯变换、Z变换最全攻略 作者:时间:2015-07-19来源:网络  傅立叶变换、拉普拉斯变换、Z变换的联系?他们的本质和区别是什么?为什么要进行这些变换。研究的都是什么?从几方面讨论下。 ...
  • 冈萨雷斯版里面的解释非常形象:一个恰当的比喻是将傅里叶变换比作一个玻璃棱镜。棱镜是可以将光分解为不同颜色的物理仪器,每个成分的颜色由波长(或频率)来决定。傅里叶变换可以看作是数学上的棱镜,将函数基于...
  • 相关函数在数字信号处理中应用

    千次阅读 2016-10-06 23:22:41
    根据相关函数的几条基本性质,简要分析了相关函数在数字信号处理当中的一些应用。由分析可知,相关函数方法简洁,在数字信号处理中,可以方便地对信号的周期性进行检测,确定未知参数的线性系统的频域响应,检测噪声...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,990
精华内容 2,396
关键字:

傅里叶变换在数字信号处理中的应用