FFT 的物理意义

发布者:三青最新更新时间:2015-06-26 来源: ednchina关键字:FFT  物理意义 手机看文章 扫描二维码
随时随地手机看文章
FFT是离散傅立叶变换的快速算法,可以将一个信号变换
到频域。有些信号在时域上是很难看出什么特征的,但是如
果变换到频域之后,就很容易看出特征了。这就是很多信号
分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱
提取出来,这在频谱分析方面也是经常用的。

    虽然很多人都知道FFT是什么,可以用来做什么,怎么去
做,但是却不知道FFT之后的结果是什意思、如何决定要使用
多少点来做FFT。

    现在圈圈就根据实际经验来说说FFT结果的具体物理意义。
一个模拟信号,经过ADC采样之后,就变成了数字信号。采样
定理告诉我们,采样频率要大于信号频率的两倍,这些我就
不在此罗嗦了。

    采样得到的数字信号,就可以做FFT变换了。N个采样点,
经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT
运算,通常N取2的整数次方。

    假设采样频率为Fs,信号频率F,采样点数为N。那么FFT
之后结果就是一个为N点的复数。每一个点就对应着一个频率
点。这个点的模值,就是该频率值下的幅度特性。具体跟原始
信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT
的结果的每个点(除了第一个点直流分量之外)的模值就是A
的N/2倍。而第一个点就是直流分量,它的模值就是直流分量
的N倍。而每个点的相位呢,就是在该频率下的信号的相位。
第一个点表示直流分量(即0Hz),而最后一个点N的再下一个
点(实际上这个点是不存在的,这里是假设的第N+1个点,也
可以看做是将第一个点分做两半分,另一半移到最后)则表示
采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率
依次增加。例如某点n所表示的频率为:Fn=(n-1)*Fs/N。
由上面的公式可以看出,Fn所能分辨到频率为为Fs/N,如果
采样频率Fs为1024Hz,采样点数为1024点,则可以分辨到1Hz。
1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒
时间的信号并做FFT,则结果可以分析到1Hz,如果采样2秒时
间的信号并做FFT,则结果可以分析到0.5Hz。如果要提高频率
分辨力,则必须增加采样点数,也即采样时间。频率分辨率和
采样时间是倒数关系。
  假设FFT之后某点n用复数a+bi表示,那么这个复数的模就是
An=根号a*a+b*b,相位就是Pn=atan2(b,a)。根据以上的结果,
就可以计算出n点(n≠1,且n<=N/2)对应的信号的表达式为:
An/(N/2)*cos(2*pi*Fn*t+Pn),即2*An/N*cos(2*pi*Fn*t+Pn)。
对于n=1点的信号,是直流分量,幅度即为A1/N。
    由于FFT结果的对称性,通常我们只使用前半部分的结果,
即小于采样频率一半的结果。

    好了,说了半天,看着公式也晕,下面圈圈以一个实际的
信号来做说明。

    假设我们有一个信号,它含有2V的直流分量,频率为50Hz、
相位为-30度、幅度为3V的交流信号,以及一个频率为75Hz、
相位为90度、幅度为1.5V的交流信号。用数学表达式就是如下:

S=2+3*cos(2*pi*50*t-pi*30/180)+1.5*cos(2*pi*75*t+pi*90/180)

    式中cos参数为弧度,所以-30度和90度要分别换算成弧度。
我们以256Hz的采样率对这个信号进行采样,总共采样256点。
按照我们上面的分析,Fn=(n-1)*Fs/N,我们可以知道,每两个
点之间的间距就是1Hz,第n个点的频率就是n-1。我们的信号
有3个频率:0Hz、50Hz、75Hz,应该分别在第1个点、第51个点、
第76个点上出现峰值,其它各点应该接近0。实际情况如何呢?
我们来看看FFT的结果的模值如图所示。

                      图1 FFT结果
    从图中我们可以看到,在第1点、第51点、和第76点附近有
比较大的值。我们分别将这三个点附近的数据拿上来细看:
1点: 512+0i
2点: -2.6195E-14 - 1.4162E-13i 
3点: -2.8586E-14 - 1.1898E-13i

50点:-6.2076E-13 - 2.1713E-12i
51点:332.55 - 192i
52点:-1.6707E-12 - 1.5241E-12i

75点:-2.2199E-13 -1.0076E-12i
76点:3.4315E-12 + 192i
77点:-3.0263E-14 +7.5609E-13i
  
    很明显,1点、51点、76点的值都比较大,它附近的点值
都很小,可以认为是0,即在那些频率点上的信号幅度为0。
接着,我们来计算各点的幅度值。分别计算这三个点的模值,
结果如下:
1点: 512
51点:384
76点:192
    按照公式,可以计算出直流分量为:512/N=512/256=2;
50Hz信号的幅度为:384/(N/2)=384/(256/2)=3;75Hz信号的
幅度为192/(N/2)=192/(256/2)=1.5。可见,从频谱分析出来
的幅度是正确的。
    然后再来计算相位信息。直流信号没有相位可言,不用管
它。先计算50Hz信号的相位,atan2(-192, 332.55)=-0.5236,
结果是弧度,换算为角度就是180*(-0.5236)/pi=-30.0001。再
计算75Hz信号的相位,atan2(192, 3.4315E-12)=1.5708弧度,
换算成角度就是180*1.5708/pi=90.0002。可见,相位也是对的。
根据FFT结果以及上面的分析计算,我们就可以写出信号的表达
式了,它就是我们开始提供的信号。

    总结:假设采样频率为Fs,采样点数为N,做FFT之后,某
一点n(n从1开始)表示的频率为:Fn=(n-1)*Fs/N;该点的模值
除以N/2就是对应该频率下的信号的幅度(对于直流信号是除以
N);该点的相位即是对应该频率下的信号的相位。相位的计算
可用函数atan2(b,a)计算。atan2(b,a)是求坐标为(a,b)点的角
度值,范围从-pi到pi。要精确到xHz,则需要采样长度为1/x秒
的信号,并做FFT。要提高频率分辨率,就需要增加采样点数,
这在一些实际的应用中是不现实的,需要在较短的时间内完成
分析。解决这个问题的方法有频率细分法,比较简单的方法是
采样比较短时间的信号,然后在后面补充一定数量的0,使其长度
达到需要的点数,再做FFT,这在一定程度上能够提高频率分辨力。
具体的频率细分法可参考相关文献。

[附录:本测试数据使用的matlab程序]
close all; %先关闭所有图片
Adc=2;  %直流分量幅度
A1=3;   %频率F1信号的幅度
A2=1.5; %频率F2信号的幅度
F1=50;  %信号1频率(Hz)
F2=75;  %信号2频率(Hz)
Fs=256; %采样频率(Hz)
P1=-30; %信号1相位(度)
P2=90;  %信号相位(度)
N=256;  %采样点数
t=[0:1/Fs:N/Fs]; %采样时刻

%信号
S=Adc+A1*cos(2*pi*F1*t+pi*P1/180)+A2*cos(2*pi*F2*t+pi*P2/180);
%显示原始信号
plot(S);
title('原始信号');

figure;
Y = fft(S,N); %做FFT变换
Ayy = (abs(Y)); %取模
plot(Ayy(1:N)); %显示原始的FFT模值结果
title('FFT 模值');

figure;
Ayy=Ayy/(N/2);   %换算成实际的幅度
Ayy(1)=Ayy(1)/2;
F=([1:N]-1)*Fs/N; %换算成实际的频率值
plot(F(1:N/2),Ayy(1:N/2));   %显示换算后的FFT模值结果
title('幅度-频率曲线图');

figure;
Pyy=[1:N/2];
for i=1:N/2
 Pyy(i)=phase(Y(i)); %计算相位
 Pyy(i)=Pyy(i)*180/pi; %换算为角度
end;
plot(F(1:N/2),Pyy(1:N/2));   %显示相位图

 

原文 地址:http://computer00.21ic.org/user1/2198/archives/2008/48202.html

关键字:FFT  物理意义 引用地址:FFT 的物理意义

上一篇:多通道高带宽同步采集系统
下一篇:综合说明2400系列低压数字源表产品线

推荐阅读最新更新时间:2024-03-30 22:59

如何用示波器完成快速傅里叶变换(FFT) 和宽带射频测量
数字和射频设计人员都发现,在与时域视图结合使用对原型机进行验证和调试时,示波器中的快速傅立叶变换 FFT 功能非常有用。例如,电源上噪声的 快速傅立叶变换 ( FFT )视图可以快速隔离和识别不需要的耦合信号,以便确定耦合的来源。 此外,越来越多面向射频的设计采用大于 510 MHz 或 1 GHz 的频谱宽度,超出了实时信号分析仪分析带宽能力的极限。设计人员发现,为了实现这种更大的分析带宽,数字化示波器已经成为这些应用的一款重要工具。实质上,示波器变成了宽带射频接收机。 本文概要叙述了如何使用 Infiniium S 系列、V 系列和 Z 系列示波器进行各种快速傅里叶变换 (FFT ) 和宽带射频测量,以加速产品面市。
[测试测量]
如何用示波器完成快速傅里叶变换(<font color='red'>FFT</font>) 和宽带射频测量
FFT和示波器:实用指南
  本文讨论了一些重要的FFT特性,解释了如何利用这些特性设置FFT以实现高效的分析。   快速傅里叶变换(FFT)是20世纪70年代微处理器进入商业设计时首次出现的。从昂贵的实验室型号到最便宜的业余型号,现在几乎每一台示波器都能提供FFT分析功能。FFT是一种功能强大的工具,高效使用FFT要求人们对FFT有一定的研究。本文将介绍如何设置FFT和高效使用FFT,FFT的技术原理这里不再赘述。   FFT是一种能够缩短离散傅里叶变换(DFT)计算时间的算法,也是一种用于在频域(幅度和相位与频率的关系)中查看所采集的时域(幅度与时间)数据的分析工具。FFT给数字示波器增加了频谱分析功能。   观察图1中的上半部分曲线,你看
[测试测量]
<font color='red'>FFT</font>和示波器:实用指南
用FPGA实现FFT算法
引言   DFT(Discrete Fourier Transformation)是数字信号分析与处理如图形、语音及图像等领域的重要变换工具,直 接计算DFT的计算量与变换区间长度N的平方成正比。当N较大时,因计算量太大,直接用DFT算法进行谱分析和信号的实时处理是不切实际的。快速傅立叶变换(Fast Fourier Transformation,简称FFT)使DFT运算效率提高1~2个数量级。其原因是当N较大时,对DFT进行了基4和基2分解运算。FFT算法除了必需的数据存储器ram和旋转因子rom外,仍需较复杂的运算和控制电路单元,即使现在,实现长点数的FFT仍然是很困难。本文提出的FFT实现算法是基于FPGA之上的,算法完
[工业控制]
用FPGA实现<font color='red'>FFT</font>算法
一种利用FFT自适应阈值处理失真杂散信号的方法
0 引言 图像信号是个很广泛的概念,本文以最典型和最常见的图像信号——电视视频信号——为例来进行探讨。电视信号的发送和接收过程要经历多次转换来满足传输的各个环节。为了满足卫星传输、电缆传输、同时传送多套节目等需求,电视信号在传输过程中,要经过若干A/ D、D/A、调制解调和数据格式变换。另外,电视信号在信道传播过程中,会受到信道中各种噪声的影响,从而使得有用信号受到干扰,严重时可能完全丢失。传输网络以及各种数模转换设备和数字处理设备的影响还可能导致信号的失真,失真后的信号偏离原信号的部分称为失真杂散信号,某些资料称其为失真产物或杂散产物。 失真分为线性失真和非线性失真,其各自产生原因有所不同。 线性失真一般由两方面
[测试测量]
一种利用<font color='red'>FFT</font>自适应阈值处理失真杂散信号的方法
基于FPGA的成像声纳FFT波束形成器设计
海洋面积占地球表面积的71%,海底蕴藏的石油、天然气等矿产资源量也远远超过陆地。由于能源危机和资源短缺日益严重,世界各国对海洋的开发利用愈发重视。水声成像技术不仅能够探测海底结构,而且相比于传统视频设备,其优点是呈现的图像几乎不受水文条件的影响,无论在军用还是民用领域,声成像技术都是未来船舶与海洋工程研究的主要技术之一 。 对要求实时成像的成像声纳来说,成像速度是衡量其性能优劣的一个非常重要的标准。波束形成器是成像声纳数字系统的重要组成部分,其运算速度影响到整个系统的成像速度,因此提高波束形成运算速度是提升成像声纳成像速度的关键。相移波束形成中的FFT波束形成技术由于具有非常成熟的算法、实现结构和快速的运算速度,成为成像声纳
[嵌入式]
基于FPGA的成像声纳<font color='red'>FFT</font>波束形成器设计
一种高速并行FFT处理器的VLSI结构设计
摘要:在OFDM系统的实现中,高速FFT处理器是关键。在分析了基4按时域抽取快速傅立叶变换(FFT)算法特别的基础上,研究了一种高性能的FFT处理器的硬件结构。此结构能同时从四个并行存储器中读取蝶形运算所需的4个操作数,极大地提高了处理速度。此结构控制单元简单,便于模块化设计。经硬件验证,达到设计要求。在系统时钟为100MHz时,1024点18位复数FFT的计算时间为13μs。 关键词:FFT 蝶形单元 块浮点 流水线 正交频分复用OFDM(Orthogonal Frequency Division Multiplex)是近几年兴起的一种在无线信道上实现高速数据传输的新技术。它采用多载波调制技术,其最大的特点在传输速率高,对
[应用]
基于51单片机FFT算法的源码设计
  FFT算法是计算离散傅里叶变换的方法,它大大地减少了运算量,缩短了运算时间,使实时分析成为可能。   按时间抽取的FFT算法通常将原始的数据倒位序存储,最后按照正常顺序输出结果X   下面是128点的FFT函数。   (1) 128点FFT子函数。   (2)下面给出256位的KeilC51源程序,目的是能够更好地熟悉FFT算法在 单片机 及其他嵌入式处理器中的实现方法。   我们在使用FFT算法程序的时候,可以根据需要对上面的程序进行优化处理。优化处理主要是使用直接的整数加减、移位、乘法操作去替换程序中采用定点模拟实现的加减、移位、乘法等操作。
[单片机]
基于51单片机<font color='red'>FFT</font>算法的源码设计
基于LabVIEw的数字变频FFT设计
0 引 言   在运动目标速度测量中,常利用频谱分析的方法获取目标的多普勒频率,并依据多普勒测速原理来完成动目标速度测量。为达到高精度测速的要求,需进一步提高频率分辨率,在实际频谱分析中,要对获取的试验数据先进行分段处理,在此基础上再进行细化操作,这样可获得比常规FFT分析更高的频率分辨率。近年来,频谱细化技术发展迅速,常见的方法有:HR-FA法,基于多相滤波器的ZFFT法,基于复调制的Zoom-FFT法,自适应Zoom-FFT法,Chirp-Z变换和小波基法等。然而,这些频谱细化技术普遍存在运算量大,不易实现编程的缺点。为此,提出了一种数字变频FFT的频谱细化算法,并利用图形化编程语言LabVIEW进行了编程设计。 1 数字变
[测试测量]
基于LabVIEw的数字变频<font color='red'>FFT</font>设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved