分数傅立叶变换

2024-07-21

分数傅立叶变换(精选7篇)

分数傅立叶变换 篇1

随着互联网技术的迅速发展, 人们可以轻松地从因特网上获取各种多媒体信息, 这使得非法复制、篡改变得更加容易, 如何保护多媒体信息的版权, 成为迫在眉睫解决的问题。数字水印技术是指利用数字产品的信息冗余性, 把一些标识信息 (水印) 直接嵌入多媒体内容中, 并能够检测或提取水印的技术。数字水印技术作为数字产品版权保护的有效手段正得到广泛的研究和应用。本文探讨了一种应用于图象保护的基于分数傅立叶变换域的数字水印算法。

1 分数傅立叶变换

分数傅立叶变换是传统Fourier变换在分数级次上的推广, 将傅立叶变换视为一个整数阶算子, 对该算子进行分数分解, 得到一种分数阶的算子, 这就是分数傅立叶变换 (FRFT) 。信号在分数阶Fourier域上得表示, 同时融合了信号在时域和频域使得信息, 因此被认为是一种时频分析工具, 与其他时频分析工具有着极其密切的联系。信号f (t) 的阶数为a的分数傅立叶变换的定义为:

其积分核

二维分数傅立叶变换可以通过先作x轴 (或沿y轴) 的一维分数傅立叶变换, 再作沿y轴 (或沿x轴) 的一维分数傅立叶变换来实现。对于二维图像信号f (p, g) , 其二维离散分数傅立叶变换分别为:

其中K (A, B) (p, q, m, n) =KaaKB, KA和KB为一维离散分数傅立叶变换的核函数。

2 算法设计及实现

本算法采用的原始图像采用alfa=0.1, 256×256大小、256灰度级的经典Lena图象, 水印信号为字体“苏工职院“的图象, 如图1所示。

2.1 水印嵌入

本文所采用的水印嵌入方法流程如图2所示。

(1) 离散分数傅立叶变换

对于Lena图象进行px=0.4, py=0.1的256×256二维离散分数傅立叶变换, 对变换后的矩阵分别进行列和行降序排列, 在变换域的载体图像矩阵与排序后的矩阵之间存在一定的一一映射关系, 见图3所示。

(2) 嵌入水印

将进行了Arnold置乱后的加密水印图象嵌入到分数傅立叶变换并排序的矩阵中, 水印嵌入强度alfa=0.1, 得到DFRFT域含水印的幅度谱矩阵。

(3) 还原图像

将DFRFT域含水印的幅度谱矩阵按照排序前后的一一映射关系映射回去, 再与之前所得相位谱相结合, 进行px=-0.4, py=-0.1二维分数傅立叶变换, 即分数傅立叶的逆变换 (IDFRFT) , 即可还原成含水印的图像, 如图4所示。

经实验发现, 在不同级次的分数傅里叶变换下进行水印嵌入, 所得含水印图像的PSNR也不同。在优化的过程中, 应尽量选取分数级次较小的区域, 一般级次应选择小于0.5。

2.2 水印提取

图5为水印信号的提取过程, 输入的信号是嵌入水印的数据和原始数据。输出信号是恢复出的水印信息。将含水印的图像和载体图像分别进行分数傅立叶变换, 然后比较两变换域数据的差别, 提取水印信息, 再对其解密, 即可获得原始的水印信息。

(1) 水印载体图像的大小设定

为了避免含水印图像在发布和传送过程中大小发生了变化而使得水印提取失败, 在提取水印之前, 先将改图像恢复到载体图像大小 (256×256) 。

(2) 分数傅立叶变换

分别对载体图像和含水印的图像进行px=0.4, py=0.1二维分数傅立叶变换 (DFRFT) , 变换结果下图6所示。

3 提取水印信息

对分数傅立叶变换域的载体图像幅度谱分别进行列和行的降序排列。对含水印的图像也按照变换后的载体图像幅度谱与排序后的矩阵之间的映射关系进行同样的映射。将所得的两个矩阵进行比较, 从所得的差中可提取到的水印信息。原始水印图象和提取水印图象如下图7所示。

4 性能分析

由于含水印图像要对外公布, 它可能会受到很多种方式的攻击, 对算法进行攻击测试是对水印鲁棒性检测的一种必要手段, 一个好的水印算法必须经过各种攻击测试才能对之做出客观的评价。图8、图9、图10给出压缩因子为85%时的JPEG压缩攻击、均值为0, 方差为0.01的高斯白噪声攻击以及边角1/4剪切攻击的测试结果。

从上图提取的水印可以看出, 该算法对于抵抗一定的JPEG压缩及噪声攻击以及剪切攻击具有比较强的鲁棒性。

5 结束语

本文基于基于离散分数傅里叶变换提出一种图像数字水印算法。实验结果显示, 在原始图像及水印都为静态图像的前提下, 嵌入与提取的效果都比较理想, 实现了水印的不可见性。攻击测试表明, 本章所提出的水印算法具有较好的鲁棒性, 能够抵抗常见的图像处理操作, 如JPEG压缩、噪声等。

参考文献

[1]刘粤钳, 姚红玉.Fourier变换的改进形式——分数傅立叶变换[J].安庆师范学院学报 (自然科学版) , 2005, (3) .

[2]刘家胜.基于混沌的图像加密技术研究[J].

[3]叶天语.MATLAB在图像数字水印技术研究中的应用[J].计算机与数字工程, 2005, 33 (10) .

[4]刘正君, 赵海发, 朱邦, 刘树田.分数傅里叶域数字水印算法[J].光子学报, 2003, 32 (3) .

分数傅立叶变换 篇2

1 关于平顶光束传输环节的分析

在激光应用过程中, 光束的传输及其变换是非常重要的应用环节, 在下文中, 笔者将会通过对平顶光束的模型的应用, 进行平顶光束的基膜高斯光束的相干叠加效果的呈现。在激光日常应用过程中, 其光束的光强一边都是均匀进行平顶分布的, 该光束拥有良好的应用前景。通过对复高斯函数展开法等的应用, 进行分数傅立叶变换系统光强分布情况的分析, 进行不同的解析公式的应用, 从而实现对平地光束光强的数值计算, 这又涉及到平顶光束的光束阶数、分数傅立叶变换阶数等因素, 进行光强影响因素的探究。随着阶数M值的增大, 光束的形状越来越接近矩形, 且阶数M越大, 平顶光束的场分布随着M的变化越小。当M=1时, 平顶光束的光强分布简化为熟悉的高斯光束的分布。

平顶光束的分数傅立叶变换通过对分数傅立叶变换环节的分析, 来进行光学系统的应用, 确保对其光束应用条件的改善, 在分数傅立叶变化过程中, 我们要进行其阶数的应用, 进行输入面, 标准焦距等的应用, 确保不同的输出面之间应用的协调。为了满足当下工作的需要, 我们将Lohman I型进行不同的分数傅立叶变换系统的划分, 将其光束的传输分为不同的应用部分, 从而满足当下工作的需要。把光束传输过程可分为两个部分, 第一部分从P1到透镜为一个自由空间的传输过程;第二部分为从透镜到P2为一个传输过程, 此部分考虑到透镜的有限尺寸, 所以把透镜看成是一个硬边光阑。根据Collins公式可得到光束由P 1传输到透镜处场的表达式, 根据Collins公式可得到光束从透镜到输出面P2处场的表达式:

其中:

硬边光阑的窗口函数可表示为矩形函数:

式可以改写为:

为了满足当下工作的需要, 我们需要利用光束进行硬边光阑变换解析式的应用, 通过对Wen模块的应用, 确保矩形函数的展开, 进行复高斯函数的有效应用。

式中Fj、Gj分别为展开系数和高斯系数, 它们的取值可以从文献[3]中查到。将 (1) 式带到上面式得:

用高斯光阑的矩阵形式来表示复高斯函数, 其矩阵的表达式为代替, 它们由下式决定[3]:

再将 (2) 式整理成:

采用分离参数的方法, 将 (11) 式改写为:

在上述公式应用过程中, 我们将被光阑限制的光束传输问题进行无光阑限制环节的应用。在该模块中, 我们要确保光学系统整体变换矩阵的有效应用, 也就是说整体变换矩阵等于各个单元变换矩阵的乘积, 所以x方向的总矩阵表示为:

光束通过M光学系统的积分公式为:

利用积分公式:

所以得到总的出射场解析公式为:

其中:

利用 (15) 式可以进一步得到光强分布为;

2 数值模拟计算环节的优化

在数值计算模块中, 我们需要应用一系列的软件进行绘图, 这就需要进行不同阶数的时轴光强随光阑变化情况的分析。比如我们进行参数束腰宽度、波长、常数等各个要素的分析, 进行分数傅立叶变换阶数的应用。在公式应用过程中, 我们要明确光阑与轴上光强的分布关系, 进行光阑尺寸的应用, 确保轴上光强影响作用的积极分析, 从而确保阶数环节影响的光阑宽度的应用, 以更有效的进行光强分布的分析。随着光阑的尺寸的增大, 对轴上光强的影响作用减弱。比随着阶数M的增大, 对光强分布起影响作用的光阑宽度在减小。图1为光阑a取不同值时轴上光强随分布图。其中阶数M=1, 其余参数同上。从图上可以的看出随着a的增大, 不仅对轴上光强的分布影响在减小, 对于其他点的光强影响也在减小, 由此可知只要光阑增大到一定程度, 光阑的衍射作用可以忽略。 (如图1、图2)

在图2光强随分数傅立叶变换阶数变化分析过程中, 随着不同光强环节的变化, 分数傅立叶变换阶数的周期性也在发生着改变, 其变换周期是一个比较稳定的数值, 我们可以从图中看到, 变换周期T=4。当分数傅立叶变换阶数p=4k+2时, 光强达到最小值, 当分数傅立叶变换阶数p=4k+0.56时, 光强达到最大。

为了满足当下工作的需要, 进行高斯光阑的ABCD矩阵形式的分析是非常必要的, 从而进行复高斯函数的具体剖析, 确保复杂光学系统应用下的衍射积分及其高斯光阑ABCD矩阵的积极联系, 进行平顶光束应用下的光强分布近似解析公式的剖析, 确保硬边光阑分数傅立叶变换光学系统的有效应用, 以提升其应用效益。在该平顶光束光强分布计算过程中, 我们需要利用软件进行数值计算模块的应用, 得出我们需要得到的结论。比如我们可以进行一些数值计算软件的应用, 以满足当下工作的需要。利用matlab进行数值计算, 进行不同阶数与光强之间联系的分析, 进行分数傅立叶变换变换阶数情况与光强关系的分析, 从而进行光强随光阑尺寸a变化情况的分析。经过研究表面, 光强随分数傅立叶变换阶数p呈周期性变化, 变换周期为4, 以及当光阑尺寸增大到一定的程度, 可以忽略光阑的衍射效应。当m=1时, 入射光为高斯光束, 即为高斯光束通过硬边光阑的分数傅立叶变换的传输公式。本文的分析方法可作为研究多种光束的一般方法。本方法有一定的计算误差, 主要是由于复高斯函数不可能完全准确描述硬边光阑的窗口函数引起的。实际上, 硬边光阑在一定程度上被“软化”, 降低了计算精度, 可以通过对窗口函数的更好拟合来提高计算精度。

3 结语

为了满足当下工作的需要, 我们要进行窗口函数的更好拟合, 从而进行硬边光阑环节的应用, 确保其计算精度的控制, 以进行平顶光束通过含有硬边光阑的分数傅立叶变换系统的传输性质的具体分析, 确保分数傅立叶变换系统相关数值的有效计算。

参考文献

[1]黄伟, 曾晓东, 安毓英.离轴椭圆厄米-高斯光束通过一阶光学系统的变换特性[J].光子学报, 2004, 33 (2) :13-15.

[2]曾庆刚, 张彬, 楚晓亮.平顶光束通过ABCD光学系统的传输[J].激光技术, 2004, 28 (2) :144-146.

离散傅立叶变换及其应用 篇3

关键词:雷达信号处理,离散傅里叶变换,双音多频

仪器设备是高校开展教学、科研和服务社会的物质基础,直接制约着高等教育教学质量和科研水平的提高,做好仪器设备管理工作,使其在人才培养与科学研究中发挥良好效能,是当前各高校普遍面临的共同难题。

信号是信息的载体,它携带着有用信息,如频率、幅度、相位等。信号如果时域特性不明显,我们可以采用傅里叶变换,将时域信号转换到频域中进行分析和处理。一段时域信号如图1所示。

从时域图上不能看出信号中含有几个频率分量,有没有噪声存在。显然转到变换域进行分析是一条途径。通过对信号作傅立叶变换后,如图2所示。

由于噪声的功率均匀分布在整个频率轴,而信号的频率分量只集中在某个频率附近,表现为较高的谱峰,从而可以将信号从噪声中分辨出来。因此频域中完成对信号的分析和处理,是信号处理的另一个有效的途径。能够将时域中信号转换频域的变换就是傅里叶变换,冈萨雷斯版《图像处理》里面的解释非常形象:一个恰当的比喻是将傅里叶变换比作一个玻璃棱镜。棱镜是可以将光分解为不同颜色的物理仪器,每个成分的颜色由波长(或频率)决定。傅里叶变换可以看作是数学上的棱镜,将函数基于频率分解为不同的成分。当我们考虑光时,讨论它的光谱或频率谱。同样,傅立叶变换使我们能通过频率成分来分析一个函数。

傅里叶变换分为4种[1]:傅里叶级数(FS)、傅里叶变换(FT)、离散时间信号傅里叶变换(DTFT),离散傅里叶变换级数(DFS),这4种傅里叶变换有各自应用领域和特点,都不能用于计算机上进行信号频谱的快速处理,我们希望理想的傅里叶变换是:时域、频域均为有限长且是离散的傅里叶变换对,这就是离散傅里叶变换(DFT)。

1 离散傅里叶级数

连续时间信号时域抽样,数学上就是用时域中的抽样冲激串序列与时域信号相乘,完成时域抽样,得到抽样后的离散时间信号。时域抽样对应频域信号的周期延拓,但序列的频谱仍是连续的频谱,所以需要频域抽样,就是用一系列等间隔的冲激串函数与DTFT相乘。

假设频域的抽样间隔为,频域延拓周期:,DTFT的一个周期抽样点整数恰好N个,,则得到抽样后的频域序列,为以N为周期的周期序列。根据时频域的对应关系,频域相乘时域卷积。而冲激串函数的时频形式与频域相同,也是一系列等间隔的冲激函数。时域的间隔T与频域的抽样间隔满足反比的关系:,那么,时域离散信号与q(t) 卷积后的结果是:将原离散信号以T为周期进行周期延拓,从而形成离散的周期序列。

频域离散 化导致时 域周期延 拓 , 延拓周期为:,则一个周期内时域抽样点数为:。因此,对离散信号的DTFT进行频域等间隔抽样后,时域会周期化,从而导致时频域均为离散的周期的序列,而且时域一个周期的点数和频域一个周期的谱线数目相同,均为N个离散点。既然时域、频域均是周期的,因此各自只有N个独立值,则可取一个主值周期的序列来表征这种变换形式,这就是N点有限长序列的N点离散傅立叶变换。

2 离散傅里叶变换

N点离散傅立叶变换是离散信号的DTFT在一个周期内的N点等间隔抽样,即:

经过频域抽样得到频域离散,时域离散的傅里叶变换对,就是离散傅里叶级数DFS:

为了适应实际信号处理中,序列有限长特点,将信号加以截断,取DFS一个周期,从而得到DFT变换式:

如何根据离散傅立叶变换恢复出原信号呢?离散傅立叶逆变换(IDFT):

说明:由于时域的离散导致频域的周期,频域的抽样导致时域的周期,所以,尽管DFT的表达式中只取了N点序列值,但是它的时频域都是来自于周期序列的一个周期,即DFT隐含周期性。

离散傅里叶变换的物理意义[2]:序列的N点DFT是序列的连续谱在区间[0,2π ]上的N点等间隔抽样,DFT所求的仍是序列频谱,是离散谱。由频域的抽样过程可知,利用DFT可以对信号的连续频谱做近似,可以实现连续频谱的数字化处理。

3 离散傅里叶变换的应用

3.1 DFT在语音信号处理中应用

双音多频(Dual Tone Multi Frequency,DTMF)信号是电话系统中电话机与交换机之间的一种用户信令,由美国AT&T贝尔公司实验室发明。这种信号制式具有很高的拨号速度,且容易自动监测识别,很快就代替了原有的用脉冲计数方式的拨号制式。双音多频的拨号键盘是4×4的矩阵,每一行代表一个低频,每一列代表一个高频。这样8个频率形成16种不同的双频信号。每按一个键就发送一个高频和低频的正弦信号组合,DTMF信号是采用8中取2的方式,从高低两个音组中各取一个音频复合而成来代表0~9的号码和其他功能码,在接收端,要对收到的双音多频信号进行检测,检测两个正弦波的频率是多少,以判断所对应的十进制数字或者符号。显然这里仍然要用数字方法进行检测。检测的方法是用DFT对双音多频信号进行频谱分析,由信号的幅度谱,判断信号的两个频率,最后确定相应的数字或符号。例如,号码‘2’是于由某两个双音多频键的频率相混合叠加,但在时域中很难分辨出,通过离散傅里叶变换将信号转换到频域中,对应的归一化频率分别为和,对应的实际频率为和相混叠,如图3所示,国际上规定双音多频信号的抽样频率为

3.2 DFT在雷达信号处理中的应用

在工程实践中,例如雷达系统中,DFT也发挥着重要的作用。

军事雷达的任务是对运动目标如飞机进行定位。但是大量的地物杂波、云雨杂波、鸟群杂波,同运动目标的回波信号一同进入接收机。运动目标的回波电平往往比杂波电平低很多倍,使运动目标被淹没。这时,在时域中将它们区分已不可能。

根据运动目标和杂波相对雷达的径向运动速度不同,回波具有不同的多普勒频率,我们将转向频域根据多普勒频谱的差别来区分运动目标和杂波。假设运动目标的径向运动为Vr,则回波脉冲串的幅度会受到多普勒频率的调制:

MTD多普勒滤波器组是具有N个输出的横向滤波器组,横向滤波器有N-1根延迟线,每根延迟线的延迟时间为Tr,N个输出端的加权值为:

n表示第n个抽头,k的取值从0到N-1,不同的k值对应不同的多普勒器响应,窄带滤波器组就是按DFT定义式展开,加权因子按DFT定义,所以DFT是一种特殊的横向滤波器,当N=8时,8个相邻的窄带滤波器组,如图4所示。

对同一距离单元的回波脉冲串作频谱分析,用频率过滤的方法检测出运动目标的多普勒频率谱线,滤除干扰杂波的谱线,可使雷达从强杂波中分辨出目标信号。因此,雷达接收机的动目标检测本质上相当于是一种频谱分析仪。

离散傅立叶变换的应用远不止于此,自从1965年Cooly和Turky提出了离散傅立叶变换的快速算法之后,离散时间信号的许多时域运算如卷积、滤波,都可以转化到频域来高效地实现,从而节省运算时间,提高运算效率。凡是在大数据量实时计算的场合,几乎都离不开离散傅立叶变换的影子。因此,可以毫不夸张地说,离散傅立叶变换是数字信号处理的基石,数字信号处理领域核心算法之一。

4 结束语

基于同构机群的快速傅立叶变换 篇4

信号处理有着悠久的历史。高级信号处理算法和硬件广泛见于各种系统, 从专门的军事系统到各式各样廉价大宗的日用电子产品的工业应用都是如此。在数字信号处理中, 信号是用有限精度的数的序列来表示的, 用数字运算来实现处理。而离散时间信号处理既包括了作为一种特殊情况的数字信号处理, 也包括了用其他一些离散时间计算处理样本序列的可能。Cooley和Tukey (1965) 所研究出的计算离散傅氏变换的快速傅立叶变换, 将计算量从O (n2) 下降到O (nlogn) , 从而使得FFT在数字信号处理、石油勘探、地震预报、医学断层诊断、编码理论、量子物理及概率论等领域都得到了广泛的应用。长期以来, 各种FFT的算法不断出现, 成为数值代数方面最为活跃的一个研究领域, 而其意义远远超过了算法研究的范围, 进而为诸多科技领域的研究打开了一个崭新的局面。

目前, 实现快速傅立叶变换的串行算法很多, 如基-2的时间抽取算法和频率抽取算法、N为复合数的FFT算法、分裂基FFT算法 (SRFFT) 、素因子算法 (PFA) 、Winograd傅立叶变换算法 (WFTA) 、实序列的FFT、多维FFT变换等。

国外围绕快速傅立叶变换的并行计算进行了多项研究和开发。美国New Mexico 大学Vasilios Georgitsis等人设计了2-DFFT程序, 可处理512*512个点的图像, 其底层通信基于PVM, 将2-DFFT转化成1-DFFT并行计算, 完成了二维图像的变换。离散傅立叶变换 (DFT) 在信号处理和其他领域有着广泛的应用。1965年Cooley 和Tukey发表了快速傅立叶变换的著名论文, 使n点DFT的运算量从O (n2) 下降到O (nlogn) , 对数字信号处理的发展起到了非常关键的作用。此后, 各种快速算法不断涌现, 成为数字信号处理的一个非常活跃的研究领域。随着数字信号处理的迅速发展和应用范围的日益广泛, 有些问题则要求极快的计算速度, 如遥感遥测信号处理、实时图像处理等领域。高性能计算机以其巨大的存储容量和极快的计算速度得到了信号处理界的重视, 成为国际上的研究热点。因此, 如何在并行计算机上快速有效地计算DFT成为一个新的研究课题。

现有快速算法大多是基于特定的体系结构, 如采用蝶形网络、超立方体等互联网络连接的并行计算机;或是假设任务间的通信时延为0、通信无冲突、并行处理器完全互联和可用处理器的个数不受限制等。而在消息传递系统中通信时延不能忽略。使用机群来进行并行处理, 是以较低开销来满足大量当前或即将出现的应用程序的计算需求的一个大有希望的途径。面向机群系统解决了通信和同步、任务调度以及消息在通信链路上的路由等问题。对样本数据长度N=2n, 设计实现了时间抽取算法;做到在大量数据情况下不改变计算复杂度的因子, 而是系数的改变带来的绝对计算时间的改变。

1 并行FFT算法

样本数目N=2m的算法已经有很多, 且研究非常深入, 这个领域已经基本上达到了理论研究的极限, 理论成果成形于20世纪70年代。蝶式计算可以将FFT的计算复杂度提高到Nlog2N。

蝶式计算的原理是利用系数Wundefined的周期性和对称性, 逐级对样本序列进行分割和计算。

蝶式计算可以分为两类:按时间抽取和按频率抽取。

在机群环境下, 首先利用时间抽取的FFT算法将样本序列按后端机个数分成几个大小相等的部分 (即划分成2的幂次个部分) , 然后将数据发送到后端机, 每台后端机对得到的样本数据进行按时间抽取的串行FFT计算。待所有后端机完成计算后, 在前端机的协调下完成最后几遍的蝶式计算。理想的情况时后端机的数目M=2m, 此时每台处理器的负载均衡, 并行计算的加速比最高。

前端机算法:

2 算法分析

假设样本数据量为N, 后端机个数为M时:

该并行算法的计算时间由三部分组成:数据通信时间, 前端机的数据合并时间和后端机串行算法的计算时间。假设传送一个数据的单位时间为t, 用于发送和接收数据的通信时间为2Nt;前端机数据合并的计算时间为Nlog2M;后端机串行算法的运算时间为 (N/M) log2 (N/M) 。

所以并行算法的运行时间为Nlog2M+ (N/M) log2 (N/M) +2Nt, 时间复杂度为O ( (N/M) log2 (N/M) + (log2M) N) 。

在同样机群系统及单机环境下实现算法, 实验结果如图1, 后端个数为4时, 加速比为2.7。当增加后端机个数时, 加速比加大, 这是因为计算负载固定不变时, 为达到实时性可利用增加处理器来提高计算速度;固定负载的计算分布在多个处理器上, 增加了处理器就加快了执行速度, 从而达到了加速的目的。但并行加速不仅受限于程序的串行分量, 而且也受并行程序运行上的额外开销影响, 当处理器增加到一定限度, 通信代价增大, 加速比不再增加, 且缓慢下降, 整个系统的性能价格比也显著增加。

小结

基于同构机群下设计和实现了时间抽取算法;做到在大量数据情况下不改变计算复杂度的因子, 而是系数的改变带来的绝对计算时间的改变。

参考文献

[1]A.V奥本海姆, R.W谢弗.离散时间信号处理[M].黄建国, 刘树棠, 译.北京:科学出版社, 1998.

[2]铁满霞, 董运红.快速傅立叶变换的多机并行计算[J].航空计算技术, 2000, 30 (3) .

[3]曾泳泓, 成礼智, 周敏.数字信号处理的并行算法[M].长沙:国防科技大学出版社, 1999:40-67.

快速傅立叶变换的分析与C#实现 篇5

傅立叶变换 (Fourier Transform) 描述了一种方法, 能够将符合一定条件的某个函数表示成为多个正弦和余弦函数的线性组合。这个特性在工程上有很大的用处, 针对不同的工程领域也有各自很明确的工程意义。在计算机获得普遍应用的当今时代, 连续函数一般可以在计算机内表示为离散的形式, 也就是不连续的多个函数数值 (如图1所示) 。与之对应的傅立叶变换也被称为离散傅立叶变换 (DFT) 。

通过进行离散傅立叶变换, 就可以把函数f (t) 转变为一系列的sin (t) 和cos (t) 函数的线性组合, 即:

又根据欧拉公式e^ix=cosx+i sinx, 任意正弦、余弦项都可以用复指形式来表示, 也可以写成

将其带入公式 (1) 中, 经过合并演算, 可以得到一个结论:函数f (t) 可以表示为复指形式。

这就是我们的结论一:满足一定条件的函数可以表示为一系列正余弦函数或指数函数的线性组合。要支持这个结论, 就一定要有一种方法可以计算出线性表达式的系数, 从而可以确定地把函数f (t) 表达出来。省略掉证明步骤, 最终系数的求法可以使用如下的离散傅立叶变换公式来得到:

或者展开来写成如下形式:

这就是我们的结论二:变换系数的值可以由所有离散点的函数值通过计算得到。所以傅立叶变换的最终目的是求得变换后表达式的系数, 有了确定的系数值就意味着成功地完成了傅立叶变换。

1、手动离散傅立叶变换

手动离散傅立叶变换实际上就是用算式逐步求解系数。根据本文所列离散傅立叶变换的系数公式 (4) , 我们尝试手动计算傅立叶变换后的系数。通过手工逐步运算, 可以非常清晰地、解剖式地展示傅立叶变换的整个过程和细节。首先以离散函数f (k) =k+20为例, 假设输入的离散值为8个, 即N=8, 则函数值分别为:f (0) =20, f (1) =21…f (7) =27

如表1所示, 列出其离散函数值以及如何求得其离散傅立叶变换系数的公式

即输入为N=8的函数f (0) , f (1) , f (2) …f (7) , 输出为C (0) , C (1) , C (2) …C (7) 。简单的说, 这就是傅立叶变换!下面我们逐步展示其运算过程。

1.1 N=8的逐步变换

求出n*k的值, 从而计算出 (-i*2π/8*n*k) 的数值, 该数值是复数形式表示的。

当N=8时, 常量 (-i*2π/N) =-0.7854i

用自然数e为底, 求得表3各项数值的幂如表4。至此我们得到W (n, k) =e^ (-i*2π/N*nk) 的数值表。

根据系数公式 (4) , 用复数的乘法和加法, 最终计算出傅立叶变换后的系数C (k) 。至此离散傅立叶变换得到输出结果而结束 (如表5所示) 。

1.2 对卷积进行累加

由于C (k) 等于所有行的累加, 所以对表5进行按行累加, 可以得到最终傅立叶变换的结果, 即求出系数C (k) 。

2、快速傅立叶变换

从手动计算傅立叶变换的过程中我们知道, 其运算的复杂度是N的平方数量级的, 当N很大的时候, 其运算量将会指数级增长, 快速增长的运算量使之实用性大打折扣。在实际的工程应用之中必须使用一种快速的傅立叶变换, 该方法是由J.W.库利和T.W.图基提出的。其核心思想是把要进行傅立叶变换的序列长度分解成两部分, 一是偶数部分f (2n) , 另一是奇数部分f (2n+1) , 于是序列f (n) 的离散傅里叶变换可以用两个N/2抽样点的离散傅里叶变换来表示和计算。如此一直迭代递归下去, 直到把傅立叶变换分解为两两的最基本单位来进行。这种方式把乘法变为加法来进行, 可以极大地减少运算量, 也就是我们所说的快速傅立叶变换 (FFT) 。其流程图如图2所示。

其中输入数组中保存了等待进行傅立叶变换的离散函数的数值f (t) , 输出的数组为求得的系数。

假定输入序列N=8, 则其变换过程如图3所示

其中蝶形运算子W的个数是输入序列总数的一半, 在此例中即为N/2=4。也就是说蝶形算子的个数为4个 (W0、W1、W2、W3) 。要实现图3所示的变换过程, 我们需要有三个循环, 第一个循环是控制层次的, N=8的序列有3个层次 (23=8) ;第二个循环是在每一层中控制蝶形运算组的个数, 如表6所列;

第三个循环是在每个蝶形运算组中进行具体的蝶形运算。

3、傅立叶变换C#实现的详解

3.1 第一和第二个循环

第一个循环就是按照层来循环, 第二个循环就是按蝶形组进行循环。如图4所示。

先写出第一和第二个循环的代码片段如下:

3.2 第三个循环

第三个循环也就是每个蝶形组的循环, 仔细观察图4可以发现每个蝶形组的大小是变化的。在第1层中, 每个蝶形组的size=1;在第2层中, 每个蝶形组的size=2;在第3层中每个蝶形组size=4。也就是说每个蝶形组的循环次数 (步长) 在递增。写出其循环体如下, 其中令变量power代表循环步长, 从以上分析得知, 其步长是从1开始, 以2的倍数递增的。

可以得到pos=2*2^i*j或者pos=2^ (i+1) *j (其中i, j分别代表第一、第二层循环的循环变量) 。在c#中注意到这个等式的存在2^i=1<<i, 也就是说2的i次幂等于对数字1进行i次左移位操作。循环步长和起点确定了, 则循环体可以编写如下:

3.3 完整的C#程序

4、结语

快速傅立叶变换在数值分析、数字信号处理、图像处理、光学和密码学等诸多领域有着非常广泛的应用。据了解, 如此重要的一个工具在学习和掌握使用的过程中, 其算法实现常常遇到理解上的困难, 导致不能很好地结合到各自相关领域得以普遍地应用。基于这个背景, 在弱化数学推导证明, 强化算法讲解的宗旨下, 详细分析了基本的快速傅立叶变换的C#代码实现。同时在理解掌握的前提下, 也可以很方便地转换为其他语言的实现。可以为进一步深入学习傅立叶变换的各种高级变化打下扎实基础。

参考文献

[1]何振亚.数字信号处理的理论与应用 (下册[) M].北京:人民邮电出版社, 1983.

[2]程乾生.数字信号处理[M].北京:北京大学出版社, 2003.

傅立叶变换性质的一题多解教学 篇6

信号与系统课程教学中, 傅立叶变换同拉氏变换、Z变换一起是3类重要线性代数变换, 而傅立叶变换基本性质一直是傅立叶变换的教学重点和难点, 目前教学中, 各类信号与系统教材基本按以下模式展开[1]:首先介绍傅立叶级数, 将傅立叶级数通过严密的数学分析引出傅立叶变换对的2个基本公式[1];其次, 基于2个基本公式推导出各条傅立叶变换性质[2];再次, 将各条性质配以适当例题说明。上述模式无论从学术阐述还是教材编排的角度看, 都是无可厚非, 理论严密, 层层递进。

基于教材开展教学时, 特别是对绝大多数的工科类学生来说, 对理论的理解和知识的递进固然重要, 但很明显, 模式的第三部分傅立叶变换各条基本性质的灵活及组合应用, 是教学的中心及重点, 也可以充分体现和衡量教师的教学能力。需要典型例题和一定量习题的训练, 而此部分学生的掌握程度最能衡量教学效果, 最能考核学生水平, 从很多985、211高校信号与系统的考研及考博试题中就能看出。

2. 一题多解教学模式设计

既然傅立叶变换基本性质的教学需要典型例题和一定量习题的训练, 那么在课堂上例题讲解中, 选择合适的例题和合适的解法是很重要的。

一题多解教学模式:基于典型题目及考研试题, 用一题多解的模式展开教学, 既可以在例题讲解中, 使学生熟练掌握知识点, 强化对知识点的理解和记忆, 又可以学会灵活使用2种及2种以上的傅立叶变换基本性质, 提升数学分析和解题能力。题目和解法的多样化, 应以覆盖一定的基本性质为标准。

3. 一题多解例题

基本性质的例题可分为2类:

本文列举的2个例题属于第2类。

解法1:傅立叶逆变换公式法。

解法2:利用傅立叶变换的对称性质、频移性质。

解法3:利用傅立叶变换的对称性质、时移性质。

解法1:傅立叶逆变换公式法。

解法2:利用傅立叶变换的对称性质。

4. 一题多解效果分析

从上述例题解题方法中可以看出, 解题的方法有多种, 例题所用方法涉及的基本性质较多, 覆盖知识点多。求解可归为3个方向, 利用基本公式、基于频域的代数变换、基于时域的代数变换。但基于时域和基于频域没有绝对的界限, 因为本来基本性质中就需要时域、频域的灵活切换。这也是对称性质使用频率最高的原因所在。

通过例题可以看出, 基本性质的应用有2个难点, 一个是对称性质的灵活使用, 一个是多条性质的组合使用。一题多解选择的方法不同, 解题过程难易程度就明显不同, 例如例题1的解法1、2, 例题2的解法1、4、5逻辑上清晰、过程相对简单。一题多解教学通过不同方法的演算和对比, 使学生强化了记忆, 有利于掌握知识点的综合应用。在核技术、自动化等专业的课堂实践中, 学生反映良好。

5.总结及展望

一题多解模式在信号与系统课堂上的教学实践, 操作性强, 立足于教材例题或习题, 适当扩展到考研试题, 收到学生欢迎。一题多解本身可以看做是创新思维在教学中的基本体现, 有助于活跃思维, 有助于培养创新人格, 有助于提升教师教学能力。

一题多解教学模式可以扩展到信号与系统其他章节的教学, 一种代数变换是一种数学工具, 也是一种方法体系, 例如拉氏变换求解电路模型、求解时域解等。模式还可以扩展到其他重要专业课程, 包括自动控制原理、数字信号处理等。

摘要:傅立叶变换基本性质一直是教学的重点和难点。本文将一题多解教学模式引入课堂教学实践, 利用傅立叶变换对、线性、对称及时移、频移性质等综合解题, 拓宽解题思路和方法。一题多解教学通过不同方法的演算和对比, 使学生强化了记忆, 有利于掌握知识点的综合应用。通过课堂实践, 为扩展到整个信号与系统课程的教学、更多其他课程的例题教学提供示范。

关键词:信号与系统,傅立叶变换,一题多解

参考文献

[1]管致中, 夏恭恪, 孟桥编著.信号与线性系统 (上册) [M].4版.北京:高等教育出版社, 2004.

分数傅立叶变换 篇7

随着实时信号处理技术的发展,ADC器件广泛应用于雷达、通信和导航等嵌入式实时信号采集与处理系统中,ADC器件性能的优劣直接影响甚至决定系统的整体性能,因此评价ADC器件性能对评估系统整体性能的意义极为重要。

ADC的性能参数一般可分为静态性能和动态性能。动态性能能够更好地反映系统在交变信号输入条件下ADC器件的工作情况。评价ADC动态性能主要有以下三种方法:直方图测试法、正弦拟合法、快速傅立叶变换(FFT)测试法等。

针对不同的应用领域,系统的动态性能要求亦不尽相同。对于雷达、通信和导航等后端信号处理时需要做谱分析获取有用信息的系统,采用FFT测试方法是目前较为合适的测试方法之一。

1 ADC主要动态性能指标

在中频、射频信号采集系统中,ADC的信噪比(SNR)、信纳比(SINAD)、无杂散动态范围(SFDR)和有效位数(ENOB)等动态性能指标能够更有效地反映数据采集电路的设计情况及系统性能。下面给出ADC器件主要动态性能指标的一般定义:

(1)SNR。信噪比是信号基频分量的有效值与各种噪声有效值之和的比值。噪声包括量化噪声、热噪声、白噪声等奈奎斯特带宽以内的全部非基波分量,不包含谐波分量和直流分量。

(2)SINAD。信纳比指信号均方根振幅与所有频谱分量(包括谐波但不含直流)均方根和之比。SNR与SINAD之间的差异即是前五次谐波所含能量。

(3)SFDR。无杂散动态范围是正弦信号输入情况下,信号的均方根值与峰值杂散频谱分量(即杂波信号最大值)的均方根之比。该指标反映了ADC器件在大信号输入的情况下,同时能够检测小信号的能力。

(4)ENOB。有效位数是在ADC器件信噪比基础上计算出来的,它将传输信号质量转换为等效比特分辨率。最常用的ENOB计算法采用基于转换器满量程SINAD的以下方程:

SNR是在理想情况下ADC器件性能的反映,而在实际应用中,由于系统噪声使输出信号失真,有效位数就是引入噪声后系统性能的真实反映。因此,它能够更真实表征ADC器件总体性能进而体现系统性能好坏,是ADC器件最重要的动态性能指标之一。

2 测试与评价系统的设计方案

2.1 测试与评价系统的硬件设计

ADC器件的动态性能测试系统由前端以ADC转换器为核心的模数转换电路、后端DSP+FPGA架构的数据采集和处理电路和本地负责数据运算的PC机组成。

测试系统采用信号源输入纯正的正弦波,经AD8138放大、滤波后施加于14位ADC器件ADC9240的输入端,利用FPGA采集数据后,通过DSP芯片TMS320C6416的EMIFA总线传输到其内部,利用开发工具CCS将数据保存到上位机PC,在上位机上运行Matlab软件计算SNR、SINAD、SFDR和ENOB等动态性能指标,测试与评价系统原理框图如图1所示。

2.2 数据FFT变换及频域分析

基于FFT变换的评价系统性能的基本思想就是将时域数据转换到频域当中,通过时间积累N点参数对ADC器件进行评价。

假设以fs=1/△t频率进行采样,采样后信号为

假设采样频率为fs,信号频率f0,采样点数为N,那么FFT之后结果就是N点的复数,每一个点就对应着一个频率点。任一点的模值,就是该频率值下的幅度特性。如果原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍,第一个点就是直流分量,每个点的相位就是在该频率下的信号的相位。频域数据可以看作将信号在采样频率fs下分成了N等分,每个点的频率依次增加。测试与评价系统的软件流程如图2所示。

在评价软件的设计中,主要注意以下几点:

(1)系统最好采用奈奎斯特采样,即fs>2f0,因为如果不满足奈奎斯特采样定理,信号在频域会发生频谱混叠现象,还需要设计抗混叠滤波器,增加了系统软件的设计难度。

(2)选取一定带宽的信号能量与噪声能量计算动态性能指标。离散序列S(n)的频谱为离散谱线,时域加窗截断信号后使得原来的离散谱线向附近展宽,出现频谱泄露现象,频域表现为各个谱线不是单一谱线,而呈现为有一定的宽度,因此测试与评价系统中取1k带宽内信号,能够满足信号能量衰减接近于0的带宽要求,噪声样本选取4M带宽内的噪声。

(3)选择合适的采样点数。FFT变换后频谱分析中两个重要参数是频谱准确性和频谱分辨率,如果用长的窗,得到相对准确的信号频谱,但这样会降低其反映单音频率的能力,也会增加DSP数据采集的负担;如果采样点数过少,就会降低频谱分析的准确性。

3 仿真结果与分析

3.1 仿真实验

系统测试时采用1k单音正弦信号输入,14位ADC器件的采样速率为10MHz,FFT变换后采集8192点数据。数据带宽选取1k带宽,噪声宽度选取4M带宽进行频域动态性能分析。

将数据保存到本地PC机,利用Maltab软件计算得到的信号功率谱和噪声功率谱如图4、5所示。信号功率谱反映了信号能量在整个频率域的分布情况,从信号功率谱也可以看出,信号功率谱在输入频率1k处达到峰值。

噪声功率谱反映了信号谐波的分布情况和噪声在整个频率域的分布情况,从噪声功率谱可以看出,信号的谐波能量有多大,噪声主要分布在哪些频率。噪声功率谱对于硬件电路设计有重要意义,能够针对噪声的分布情况在模块设计时加入合适的滤波电容,抑制特定频率的噪声。

图4噪声功率谱(参见下页)

由于各个模块的差异性,同样的电路设计在具体模块中会有不同的测试结果,表1给出了3个测试系统模块的测试结果。

表1评价系统ADC主要动态性能指标参数

3.2 提高动态性能的关键技术

影响ADC采集动态性能的因素有很多,主要包括时钟的准确性、放大与滤波电路、电源电路和数模混合电路设计等。评价ADC器件的动态性能,是为了对ADC数据采集电路设计有指导意义,因此总结评价系统设计过程中出现的各种问题,提出以下设计要点:

(1)采样时钟的抖动、ADC器件本身的孔径抖动以及其他热噪声等都是降低采样信噪比的重要因素。采集系统设计时,最好选择抖动较小的时钟驱动器,由同一时钟驱动器分别给系统中DSP、FPGA和ASIC等器件提供同频同相时钟,在各器件内部用PLL倍频的方式,提供不同频率时钟,实践表明,这种方式要比利用多个晶振提供时钟效果好得多。

(2)在频率和技术条件允许的情况下,尽量选用模拟信号差分输入方式。差分模拟信号输入的电路结构能够有效抑制电路的共模噪声及干扰,提高共模抑制比,进而得到更高的信噪比。

(3)电源电路尤为重要,为了提高供电效率,一般数字电源都使用开关电源,因此抑制开关电源的开关纹波和对高频噪声的滤波尤为重要。在评价系统的某些模块,明显看出噪声功率谱中出现了700k的开关噪声频率。模拟电源一般应选择线性电源,ADC电源轨上的滤波电容,建议使用10-22μF的高低温特性好、低ESR的陶瓷电容,局部去耦电容采用0.01μF和0.1μF的陶瓷电容相结合。

(4)模拟和数字电路地分开,采用磁珠单点相连。ADC器件本身的数模地都接在模拟地上,这样要比ADC的DGND接数字地、AGND接模拟地的方式引入的开关噪声小得多。ADC器件四周连接旁路和关键电容的走线宽度应尽可能大,电容应具有通向电源层的过孔,并且过孔应非常靠近ADC器件电源引脚,以使阻抗和电感最小,建议走线宽度大于或等于10mil。布线时,应使高速数字信号走线远离敏感的模拟走线、时钟走线等。

4 结束语

本文采用FFT分析了ADC器件的动态性能指标,给出了方法的具体工作流程,结合工程应用讨论了数据采集与处理系统的关键技术,提供了具有现实意义的工程实践方法,并进行了仿真验证。本文研究得到的设计与评价方法已经用于某型信号处理机中,试验结果表明,效果良好,为其他系统设计和工程实现提供了便利,具有较为广泛的理论和现实意义。

摘要:为了评价ADC采集的动态性能,比较了常见的ADC动态性能的分析方法,给出了ADC主要动态性能指标,提供了以数据采样模块为评价系统的设计方案。采用快速傅立叶变换对ADC采集数据进行时频转换,重点分析了数据频域特性,讨论了快速傅立叶变换后对动态性能的影响因素,同时提供数据采集电路设计关键技术,结合评价系统给出定量的测试结果并进行分析,验证方法的有效性。

关键词:模数转换器,动态性能,有效位数,快速傅立叶变换

参考文献

[1]杜向辉,李军侠,陈小兵.信号处理系统的AD有效位数[J].河南机电高等专科学校学报,2010,18(1):12-14.

[2]谢鹏.高速ADC器件的动态性能测试技术研究[J].电子元器件应用,2009,11(9):82-84.

[3]黄进燕.多路高精度数据采集系统设计及性能分析[J].信号与信息处理,2010,40(3):18-20.

[4]陈卫东,杨绍全.加窗离散傅里叶变换测频分辨率研究[J].西安电子科技大学学报,2000,27(2):157-160.

上一篇:死神下一篇:光线路保护系统