tag 标签: 傅立叶

相关博文
  • 热度 3
    2024-6-25 14:44
    540 次阅读|
    0 个评论
    本文简要回顾了傅里叶理论,尤其是 FFT 。本文还介绍了一些典型应用,并提供了有关如何充分利用 Keysight 示波器的 FFT 功能的一些提示。 傅里叶理论 通常,当使用示波器测量信号时,它会在时域中查看(图 1a)。也就是说,垂直轴是电压,水平轴是时间。对于许多信号,这是查看它们的最合乎逻辑和直观的方式。但是当对信号的频率内容感兴趣时,在频域中查看信号是有意义的。在频域中,垂直轴仍然是电压,但水平轴是频率(图 1b)。频域显示显示每个频率上存在多少信号能量。对于正弦波等简单信号,频域表示通常不会向我们显示太多额外信息。然而,对于更复杂的信号,时域中的频率内容很难发现,而频域可以提供更有用的信号视图。 图 1 (a) 以时间函数显示的信号。 (b) 以频率函数显示的信号。 傅里叶理论(包括傅里叶级数和傅里叶变换)在数学上将时域和频域联系起来。傅里叶变换由以下公式给出: 我们不会在这里详细讨论数学,因为有许多书籍广泛介绍了该理论(请参阅参考资料)。图 2 显示了一些在时域和频域中表示的典型信号。 图 2:频谱示例 快速傅立叶变换 傅立叶变换的离散(或数字化)版本称为离散傅立叶变换 (DFT)。此变换采用数字化时域数据并计算频域表示。虽然常规傅立叶理论有助于理解时域和频域之间的关系,但 DFT 允许我们计算真实世界时域信号的频域表示。这使傅立叶理论的强大功能脱离了数学分析的世界,进入了实际测量领域。带有测量/存储模块的 Keysight 示波器使用一种称为快速傅立叶变换 (FFT) 的特殊算法来计算 DFT。FFT 和 DFT 产生相同的结果,该功能通常简称为 FFT。 Keysight 系列示波器通常将时域波形数字化并将其存储为 4000 点记录。FFT 功能使用其中的 1000 个点(每四个点)来生成 500 点频域显示。此频域显示的频率范围从 0 到 feff /2,其中 feff 是时间记录的有效采样率(图 3a)。 图 3 (a) 采样的时域波形。 (b) 使用 FFT 得到的频域图。 有效采样率是样本间时间的倒数,取决于示波器的时间/格设置。对于 Keysight 系列示波器,有效采样率由以下公式给出: 因此,对于任何特定的时间/格设置,FFT 都会产生从 0 到 feff /2 的频域表示(图 3b)。当 FFT 功能处于活动状态时,转动时间/格旋钮或按下 ± 键时会显示有效采样率。请注意,FFT 的有效采样率可能远高于示波器的最大采样率。示波器的最大采样率为 20 MHz,但随机重复采样技术可以如此精确地及时采样,以至于 FFT 看到的采样率可以高达 20 GHz。 默认频域显示涵盖 0 到 feff /2 的正常频率范围。中心频率和频率跨度控件可用于放大 FFT 基本 0 到 feff /2 范围内较窄的频率跨度。这些控件不会影响 FFT 计算,而是导致频域点以扩展形式重新绘制。 混叠 频率 feff /2 也称为折叠频率。通常出现在 feff /2 以上(因此超出了 FFT 的有用范围)的频率会折叠回频域显示中。这些不需要的频率分量称为混叠,因为它们错误地出现在另一个频率的混叠下。如果有效采样率大于被测信号带宽的两倍,则可以避免混叠。 三角波的频率内容包括基频和大量奇次谐波,每个谐波的幅度都小于前一个谐波。在图 4a 中,在时域和频域中显示了一个 26 kHz 三角波。图 4b 仅显示频域表示。最左边的大谱线是基频。下一个重要谱线是第三谐波。下一个重要谱线是第五谐波,依此类推。请注意,较高的谐波幅度较小,第 17 次谐波刚好在 FFT 噪声基底上方可见。第 17 个谐波的频率为 17 x 26 kHz = 442 kHz,在图 4b 中位于折叠频率 feff /2(500 kSa/秒)内。因此,没有发生明显的混叠。 图 4a:26kHz 三角波的时域和频域显示。 图 4b:三角波的频谱。 图 4c:在较低的有效采样率下,上部谐波显示为混叠。 图 4d:在更低的有效采样率下,只有基波和第三谐波没有混叠。 图 4c 显示了相同波形的 FFT,其中时间/格控制向左旋转一次,导致有效采样率为 500 kSa/秒,折叠频率为 250 kSa/秒。现在,三角波的上部谐波超过了折叠频率,并在显示屏中显示为混叠。图 4d 显示了相同三角波的 FFT,但有效采样率(200 kSa/秒)和折叠频率(100 kSa/秒)更低。此频率图混叠严重。 混叠的影响通常很明显,特别是如果用户对信号的频率内容有所了解。频谱线可能出现在没有频率成分的地方。当低级混叠频率出现在测量的本底噪声附近时,混叠的影响会更加微妙。在这种情况下,由于混叠在频域中略有不同,基线可能会在每次采集之间反弹。 混叠频率成分可能会产生误导,并且在测量中是不可取的。通过确保有效采样率足够高,可以查看带宽受限的信号(即没有高于某个频率的频率成分)。通过选择快速时间/分度设置,有效采样率可以保持在尽可能高的高度。虽然快速时间/格设置可产生高有效采样率,但它们也会导致 FFT 显示的频率分辨率降低。 如果信号本身不受带宽限制,则可以将低通滤波器应用于信号以限制其频率内容(图 5)。这在经常测量相同类型信号并且可以将专用低通滤波器与示波器一起使用的情况下尤其适用。 图 5:低通滤波器可用于限制信号的带宽,避免混叠。 泄漏* FFT 针对有限长度的时间记录进行操作,试图估计傅立叶变换,该变换会对所有时间进行积分。FFT 针对有限长度的时间记录进行操作,但其效果是在所有时间上复制有限长度的时间记录(图 6)。对于图 6a 所示的波形,有限长度的时间记录很好地表示了实际波形,因此 FFT 结果将非常接近傅立叶积分。 图 6 (a) 完全适合一个时间记录的波形。 (b) 复制时不会引入任何瞬变。 但是,波形的形状和相位可能会使得在复制波形的所有时间时引入瞬变,如图 7 所示。在这种情况下,FFT 频谱不是傅立叶变换的良好近似值。 图 7 (a) 不完全适合一个时间记录的波形。 (b) 复制时,会引入严重的瞬变,导致频谱泄露。 由于示波器用户通常无法控制波形如何适应时间记录,因此通常必须假设可能存在不连续性。这种称为泄漏的效应在频域中非常明显。瞬变会导致谱线(应该看起来很细)扩散,如图 8 所示。 * 有关相关实验,请参阅“在示波器上教授数学,第 3 部分”。 图 8 当通常很细的谱线在频域中扩散时,就会发生泄漏。 解决泄漏问题的方法是将时间记录末端的波形强制为零,这样在复制时间记录时就不会出现瞬变。这是通过将时间记录乘以 WINDOW 函数来实现的。当然,窗口会修改时间记录,并在频域中产生自己的效果。对于设计合理的窗口,频域效果比不使用窗口要好得多。1 Keysight 示波器中有四种窗口函数:Hanning、Flattop、矩形和指数。 当接近时间记录的任一端时,Hanning 窗口可平滑过渡到零。图 9a 显示时间域中的正弦波,而图 9b 显示将应用于时间域数据的 Hanning 窗口。图 9c 显示了窗口化的时间域记录。即使时间域信号的整体形状发生了变化,频率内容也基本保持不变。与正弦波相关的谱线在频域中稍微扩展,如图 10.2 所示(图 10 在频率轴上展开,以清楚地显示频域中窗口的形状。) 图 9 (a) 原始时间记录。 (b) 汉宁窗。 (c) 加窗时间记录。 窗口的形状是幅度精度和频率分辨率之间的折衷。与其他常见窗口相比,汉宁窗以稍低的幅度精度为代价提供了良好的频率分辨率。 FLATTOP 窗口在频域中具有更宽(和更平坦)的特性,如图 11 所示。(同样,该图在频率轴上展开,以清楚地显示窗口的效果。)频域中谱线的顶部更平坦,可提高幅度精度,但代价是频率分辨率较差(与汉宁窗相比)。 图 10 汉宁窗在频域中具有相对较窄的形状。 图 11:平顶窗口在频域中具有更宽的平顶形状。 矩形窗口(也称为均匀窗口)实际上根本没有窗口;所有样本保持不变。虽然均匀窗口可能会出现严重的泄漏问题,但在某些情况下,时间记录中的波形在记录的两端具有相同的值,从而消除了 FFT 引入的瞬态。这种波形称为自窗口。正弦脉冲、脉冲和衰减正弦波等波形都可以自窗口化。 图 12a 显示了典型的瞬态响应。如图所示,波形是自窗口化的,因为它在时间记录的长度内消失,从而减少了泄漏问题。 图 12 (a) 自窗口化的瞬态响应。 (b) 需要窗口化的瞬态响应。 (c) 指数窗口。 (d) 窗口化的瞬态响应。 如果波形在时间记录内没有消散(如图 12b 所示),则应使用某种形式的窗口。如果将诸如 Hanning 窗口之类的窗口应用于此波形,则时间记录的开始部分将被强制为零。这恰恰是瞬态的大部分能量所在的地方,因此这种窗口是不合适的。 在这种情况下,具有衰减指数响应的窗口很有用。波形的开始部分不会受到干扰,但时间记录的末尾被强制为零。时间记录的开头可能仍存在瞬态,但此瞬态不是由 FFT 引入的。事实上,它就是被测量的瞬态。图 12c 显示了指数窗口,图 12d 显示了将指数窗口应用于图 12b 时产生的时域函数。指数窗口不适合测量除瞬态波形以外的任何波形。 1时域窗口在频域中的作用类似于扫频频谱分析仪中分辨率带宽滤波器的形状。 2应用窗口函数后,频域中的完美正弦波的形状是窗口函数的傅里叶变换。 选择窗口 大多数测量都需要使用窗口,例如 Hanning 或 Flattop 窗口。这些是典型频谱分析测量的合适窗口。在这两个窗口之间进行选择涉及频率分辨率和幅度精度之间的权衡。使用时间域解释了泄漏发生的原因后,现在用户应该切换到频域思维。窗口频域滤波器的通带越窄,分析仪就能更好地区分两个紧密间隔的谱线。同时,谱线的幅度将变得不确定。相反,窗口的频域滤波器越宽越平坦,幅度测量就越准确,当然,频率分辨率也会降低。在两个这样的窗口函数之间进行选择实际上只是在频域中选择滤波器形状。 矩形和指数窗口应被视为特殊情况的窗口。在可以保证没有泄漏效应的情况下使用矩形窗口。指数窗口用于输入信号为瞬态的情况。有关窗口的更多信息,请参阅参考文献 2 和 6。 References: Brigham, E. Oran, The Fast Fourier Transform and Its Applications., Englewood Cliffs, NJ: Prentice-Hall, Inc., 1988. Hewlett-Packard Company. "Fundamentals of Signal Analysis", Application Note 243, Publication Number 5952-8898, Palo Alto, CA, 1981. McGille Clare D. and George R. Cooper. Continuous and Discrete Signal and System Analysis. New York: Holt, Rhinehart and Winston, Inc.,1974. Ramirez, Robert W. The FFT Fundamentals and Concepts. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1985. Stanley, William D., Gary R. Dougherty and Ray Dougherty. Digital Signal Processing, 2nd ed. Reston, VA: Reston Publishing Company, Inc., 1984. Witte, Robert A. Spectrum and Network Measurements. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1991.
  • 热度 27
    2015-5-12 16:13
    9517 次阅读|
    0 个评论
    傅立叶分析是一种分析复杂周期性信号的方法。它将非正弦周期信号分解为一系列正弦波、余弦波和直流分量之和。 傅立叶分析以图表或图形方式给出信号电压分量的幅值频谱和相位频谱。傅立叶分析同时也计算了信号的总谐波失真(THD),THD定义为信号的各次谐波幅度平方和的平方根再除以信号的基波幅度。 构造电路 构造一个单管放大电路,电路中电源电压、各电阻和电容取值如图所示。该放大电路在输入信号源电压幅值达到 50mv 时,输出端电压信号已出现较严重的非线性失真,这也就意味着在输出信号中出现了输入信号中未有的谐波分量。 启动交流分析工具 执行菜单命令 Simulate/Analyses ,在列出的可操作分析类型中选择 Fourier Analysis ,则出现傅立叶分析对话框,如图所示。 傅立叶分析对话框中Analysis Parameters页的设置项目及默认值等内容见表所示。 检查分析结果 傅立叶分析结果如图所示。如果放大电路输出信号没有失真,在理想情况下,信号的直流分量应该为零,各次谐波分量幅值也应该为零,总谐波失真也应该为零。 从图可以看出,输出信号直流分量幅值约为 1.15V ,基波分量幅值约为 4.36 V , 2 次谐波分量幅值约为 1.58 V ,从图表中还可以查出 3 次、 4 次及 5 次谐波幅值。同时可以看到总谐波失真( THD )约为 35.96% ,这表明输出信号非线性失真相当严重。线条图形方式给出的信号幅频图谱直观地显示了各次谐波分量的幅值。
  • 热度 6
    2015-5-12 16:05
    2741 次阅读|
    1 个评论
    #includestdio.h #includemath.h classcomplex// 定义一个类 , 实现复数的所有操作 { doubleReal,Image;// 实部与虚部 public: complex(doubler="0",doublei="0"){Real=r;Image=i;} doubleGetR(){returnReal;}// 取出实部 doubleGetI(){returnImage;}// 取出虚部 complexoperator+(complex);// 复数加法 complexoperator-(complex);// 复数减法 complexoperator*(complex);// 复数乘法 voidoperator=(complex);// 复数赋值 }; complexcomplex::operator+(complexc)// 复数加法 { complext; t.Real=Real+c.Real; t.Image=Image+c.Image; returnt; } complexcomplex::operator-(complexc)// 复数减法 { complext; t.Real=Real-c.Real; t.Image=Image-c.Image; returnt; } complexcomplex::operator*(complexc)// 复数乘法 { complext; t.Real=Real*c.Real-Image*c.Image; t.Image=Real*c.Image+Image*c.Real; returnt; } voidcomplex::operator=(complexc)// 复数赋值 { Real=c.Real; Image=c.Image; } voidfft(complexa ; a =t; } } for(m=1;m=jishu;m++)// 第 m 级蝶形运算 , 总级数为 jishu { kind=(int)pow(2,m-1);// 第 m 级有 2^(m-1) 种蝶形运算 distance=2*kind;// 同种蝶形结相邻距离为 2^m u=complex(1,0);// 旋转因子初始值为 1 tmp=PI/kind; Wn=complex(cos(tmp),-sin(tmp));// 旋转因子 Wn for(j=0;jkind;j++)// 每种蝶形运算的起始点为 j, 共有 kind 种 { for(i=j;ilength;i+=distance)// 同种蝶形运算 { other=i+kind;// 蝶形运算的两个因子对应单元下标的距离为 2^(m-1) t=a *u;// 蝶形运算的乘积项 a =a-t;// 蝶形运算 a=a+t;// 蝶形运算 } u="u"*Wn;// 修改旋转因子 , 多乘一个基本 DFT 因子 WN } } } voidmain(void) { doublea,b; complexx ;// 此程序以 8 点序列测试 printf("8 点序列 :\n"); for(inti="0";i8;i++)// 初始化并输出原始序列 { x=complex(i,i+1); printf("x(%d)=%lf+%lfi\n",i+1,x.GetR(),x.GetI()); } fft(x,8,3);// 调用 fft 函数 printf("fft 变换的结果为 :\n"); for(i=0;i8;i++)// 输出结果 printf("X(%d)=%lf+%lfi\n",i+1,x.GetR(),x.GetI()); }
  • 热度 3
    2015-5-12 15:39
    1936 次阅读|
    0 个评论
    傅立叶变换 (动画演示) 1、为什么要进行傅里叶变换,其物理意义是什么? 傅立叶变换是数字信号处理领域一种很重要的算法。要知道傅立叶变换算法的意义,首先要了解傅立叶原理的意义。傅立叶原理表明:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。而根据该原理创立的傅立叶变换算法利用直接测量到的原始信号,以累加方式来计算该信号中不同正弦波信号的频 率、振幅和相位。 和傅立叶变换算法对应的是反傅立叶变换算法。该反变换从本质上说也是一种累加处理,这样就可以将单独改变的正弦波信号转换成一个信号。 因此,可以说,傅立叶变换将原来难以处理的时域信号转换成了易于分析的频域信号(信号的频谱),可以利用一些工具对这些频域信号进行处理、加工。最后还可以利用傅立叶反变换将这些频域信号转换成时域信号。 从现代数学的眼光来看,傅里叶变换是一种特殊的积分变换。它能将满足一定条件的某个函数表示成正弦基函数的线性组合或者积分。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。 在数学领域,尽管最初傅立叶分析是作为热过程的解析分析的工具,但是其思想方法仍然具有典型的还原论和分析主义的特征。"任意"的函数通过一定的分解,都能够表示为正弦函数的线性组合的形式,而正弦函数在物理上是被充分研究而相对简单的函数类:1. 傅立叶变换是线性算子,若赋予适当的范数,它还是酉算子;2. 傅立叶变换的逆变换容易求出,而且形式与正变换非常类似;3. 正弦基函数是微分运算的本征函数,从而使得线性微分方程的求解可以转化为常系数的代数方程的求解.在线性时不变杂的卷积运算为简单的乘积运算,从而提供了计算卷积的一种简单手段;5. 离散形式的傅立叶的物理系统内,频率是个不变的性质,从而系统对于复杂激励的响应可以通过组合其对不同频率正弦信号的响应来获取;4.著名的卷积定理指出:傅立叶变换可以化复变换可以利用数字计算机快速的算出(其算法称为快速傅立叶变换算法(FFT))。 正是由于上述的良好性质,傅里叶变换在物理学、数论、组合数学、信号处理、概率、统计、密码学、声学、光学等领域都有着广泛的应用。 2、 图像傅立叶变换的物理意义 图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的谱。从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换是将图像的频率分布函数变换为 灰度分布函数 傅立叶变换以前,图像(未压缩的位图)是由对在连续空间(现实空间)上的采样得到一系列点的集合,我们习惯用一个二维矩阵表示空间上各点,则图像可由 z=f( x,y ) 来 表示。由于空间是三维的,图像是二维的,因此空间中物体在另一个维度上的关系就由梯度来表示,这样我们可以通过观察图像得知物体在三维空间中的对应关系。 为什么要提梯度? 因为实际上对图像进行二维傅立叶变换得到频谱图,就是图像梯度的分布图,当然频谱图上的各点与图像上各点并不存在一一对应的关系,即使在 不移频的情况下也是没有。傅立叶频谱图上我们看到的明暗不一的亮点,实际上图像上某一点与邻域点差异的强弱,即梯度的大小,也即该点的频率的大小(可以这么理解,图像中的低频部分指低梯度的点,高频部分相反)。一般来讲,梯度大则该点的亮度强,否则该点亮度弱。这样通过观察傅立叶变换后的频谱图,也叫功率图,我们首先就可以看出,图像的能量分布,如果频谱图中暗的点数更多,那么实际图像是比较柔和的(因为各点与邻域差异都不大,梯度相对较小),反之,如果频谱图中亮的点数多,那么实际图像一定是尖锐的,边界分明且边界两边像素差异较大的。对频谱移频到原点以后,可以看出图像的频率分布是以原点为圆心,对称分布的。将频谱移频到圆心除了可以清晰地看出图像频率分布以外,还有一个好处,它可以分离出有周期性规律的干扰信号,比如正弦干扰,一副带有正弦干扰,移频到原点的频谱图上可以看出除了中心以外还存在以某一点为中心,对称分布的亮点集合,这个集合就是干扰噪音产生的,这时可以很直观的通过在该位置放置带阻 滤波器消除干扰 另外我还想说明以下几点: 1、图像经过二维傅立叶变换后,其变换系数矩阵表明: 若变换矩阵 Fn 原点设在中心,其频谱能量集中分布在变换系数短阵的中心附近 ( 图中阴影区 ) 。若所用的二维傅立叶变换矩阵 Fn 的原点设在左上角,那么图像信号能量将集中在系数矩阵的四个角上。这是由二维傅立叶变换本身性质决定的。同时也表明一股图像能量集中低频区域。 2  、变换之后的图像在原点平移之前四角是低频,最亮,平移之后中间部分是低频,最亮,亮度大说明低频的能量大(幅角比较大)
相关资源