0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FFT原理解析

jf_78858299 来源:电路设计小工具 作者:eTools361 2023-05-04 17:51 次阅读

频域分析原理

频域分析最被大众所熟知的可能是卡拉OK的音频频谱显示,这里贴一个来自AVR单片机的项目 ,其中就用到了FFT来对语音信号进行分析:

视频中横坐标为频率,纵坐标为功率,而且能够实时的反映出语音的频谱。

FFT是DFT(离散傅里叶变换)的加速算法,最早是由Cooley和Tukey在1965年提出 ,这里面用了很多的技巧,其方向是如何减小计算过程中所需要的乘法运算,另外FFT一次可以计算N个点,而且随着N的增大,FFT优势就会非常明显。DFT复杂度(按乘法数量来计算)是 ,而FFT复杂度是 ,参考 .

这里简单的理解下DFT,假设我们有一个待测数字序列A(A序列是以fs采样的N点信号,采样间隔为ts),假设此序列中暗含一个频率为fa的正弦波信号,但是此暗含的信号幅度和相位我们并不知道是多少,现在我们的目标是求出此信号的的幅度和相位信息

我们可以使用信号相关来解决此问题 ,构造2个频率均为fa,幅度均为1的正弦和余弦序列B和C,然后用这两个序列分别和A序列相乘,然后滤波,最后输出的两个信号就可以求出幅度和相位,假设A序列中含有非fa频率的信号,相乘滤波后幅度为0,表示此序列中的非fa频率信号都将被滤除,最后结果就只有和fa频率相关信号被保留下来。

使用公式描述即:

A信号序列为:

B信号序列为:

C信号序列为:

则两个输出且滤波(信号求平均)后的结果是:

通过这两个信号就可以求出X[i]中所含fa信号的幅度和相位:

式中,当i=N时,正弦信号和余弦信号相位需要是 的整数倍,这样滤波器刚刚好将其他频率的信号完全滤除掉,也就是说不会出现频谱泄露,所以有: 将上式改写如下: 若进行N点的DFT计算,只要满足上式了,就可以保证在第k个频率点出现信号,而不会在DFT中出现频谱泄露问题。

程序验证

1%--------------------------------------------------------------------------
 2% Edited by bbl
 3% Date: 2021-10-31(yyyy-mm-dd)
 4% FFT计算
 5%--------------------------------------------------------------------------
 6fa   = 200.1953125e6;     % 信号频率,不出现频谱混叠
 7% fa   = 200e6;             % 信号频率,出现频谱混叠
 8A0   = 1;                 % 信号幅度
 9fs   = 1e9;               % 采样率
10Nfft = 1024;              % FFT点数
11wa   = 2*pi*fa;
12ts   = 1/fs;
13t    = 0:ts:ts*(Nfft-1);   % 构造时间序列
14Vn   = 1e-3*randn(1,Nfft); % 构造噪声
15y    = A0*sin(wa*t)+Vn;    % 构造信号序列,加入了噪声方便观察
16X    = fft(y, Nfft);       % 计算FFT
17Amp  = 2*abs(X)/Nfft;      % 计算幅度
18Amp_log = 20*log10(Amp);   % 幅度转换为dB
19f    = linspace(0, fs/2, Nfft/2+1)*1e-6;
20plot(f, Amp_log(1:Nfft/2+1), '-r', 'LineWidth', 1);
21grid on;
22ylim([-100,10]);
23ylabel('Amp/dBFS');
24xlabel('freq/MHz');
25title(sprintf('FFT, fs=%0.2fM Hz, fa=%0.8fM Hz', fs*1e-6,fa*1e-6));

仿真结果:

若将fa修改为200.1953125M,得到:

图片

波形正常.

若将fa修改为200.0000000M,得到:

图片

出现了频谱混叠.

小程序实现

电路设计小工具中实现的是计算fa值,使得在FFT计算过程中不会出现频谱泄露,当然也可以从给定输出频率计算出最接近的不会出现频谱泄露问题的频率点。本例中是输入200MHz,查看最接近200MHz而不出现频谱泄露的频率点:

图片

也可以计算一个Bin内的频率带宽:

图片

当然,此小程序能显示当前信号落在那个奈奎斯特区域:

图片

表示fa信号落在第二奈奎斯特区域。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6030

    文章

    44482

    浏览量

    631732
  • AVR
    AVR
    +关注

    关注

    11

    文章

    1122

    浏览量

    78536
  • 频域分析
    +关注

    关注

    0

    文章

    20

    浏览量

    12724
收藏 人收藏

    评论

    相关推荐

    示波器的 FFT 功能怎么调?

    频谱类型的选择,可以选择线或者分贝来作为幅值分别以V-Hz或dB-Hz被绘制在示波器显示屏上。当FFT开启的时候,可以看到水平轴的时基从时间变成了频率,垂直轴单位变为V或者dB。频谱类型下方是触发源的选择,这个比较好理解,要对哪个通道进行
    的头像 发表于 03-19 18:04 2732次阅读
    示波器的 <b class='flag-5'>FFT</b> 功能怎么调?

    手机通信原理解析

    `手机通信原理解析:第 1 章    无线通信原理第2 章    移动通信系统第3 章    移动通信系统的多址接入技术第4 章    移动通信系统的语音编码第5 章 GSM移动通信系统的数字
    发表于 12-14 14:31

    定位技术原理解析

    【追踪嫌犯的利器】定位技术原理解析(4)
    发表于 05-04 12:20

    51单片机如何实现fft解析

    需要对频谱分析,对速度要求不高,用at89c51可以实现吗,需要用哪种fft解析方法?
    发表于 10-24 07:10

    应用FFT对信号进行频谱分析

    实验 应用FFT对信号进行频谱分析一、 实验目的1、在理论学习的基础上,通过本次实验,加深对快速傅里叶变换的理解,熟悉FFT算法及其程序的编写。2、熟悉
    发表于 05-10 10:00 64次下载

    虚拟存储器部件原理解析

    虚拟存储器部件原理解析
    发表于 04-15 14:25 3095次阅读

    FFT频谱分析

    理解FFT算法,学习信号处理的必备知识。
    发表于 10-28 17:00 0次下载

    触摸屏的应用与工作原理解析

    触摸屏的应用与工作原理解析
    发表于 02-08 02:13 38次下载

    FFT的分析和Xilinx FFT核的介绍

    fft输入输出解析。 输入:fft要求输入一个复数,但一般可以只输入实数。 输出:输出一个复数,其模为信号强度。相位为波形相位。 设: 采样频率FS 转换长度N 则: 分辨率为FS/N。 ‘量程’为
    发表于 02-08 15:15 1302次阅读

    理解FFT和信号加窗原理及意义

    学习信号时域和频域、快速傅立叶变换(FFT)、加窗,以及如何通过这些操作来加深对信号的认识。 1. 理解时域、频域、FFT 傅立叶变换有助于理解常见的信号,以及如何辨别信号中的错误。
    发表于 11-16 18:07 19.3w次阅读
    <b class='flag-5'>理解</b><b class='flag-5'>FFT</b>和信号加窗原理及意义

    怎么理解谐波分析(FFT)?

    随着技术的发展,数据越来越多样化,不再以单一的形式存在,例如一段录音可被分解成若干种信息,而快速傅立叶变化(简称FFT)常常被应用在数据的分解上,接下来我们讲讲FFT的原理。
    的头像 发表于 04-01 11:01 1.1w次阅读

    史密斯圆图和阻抗匹配原理解析

    史密斯圆图和阻抗匹配原理解析
    的头像 发表于 11-02 20:16 1936次阅读

    什么是晶振 晶振工作原理解析

    什么是晶振 晶振工作原理解析
    的头像 发表于 12-30 17:13 4233次阅读
    什么是晶振 晶振工作原<b class='flag-5'>理解析</b>

    为什么会造成频谱泄露?如何理解FFT中的频谱泄露效应?

    为什么会造成频谱泄露?如何理解FFT中的频谱泄露效应?如何采用时间窗抑制频谱泄露效应? 频谱泄露是指在进行傅里叶变换时,信号的谱被非目标频率“污染”的一种现象。它是由于傅里叶变换假设信号为周期信号
    的头像 发表于 10-20 15:08 3260次阅读

    如何理解FFT中的频谱泄露效应?

    快速傅里叶变换(FFT)实现了时域到频域的转换,是信号分析中最常用的基本功能之一。FFT变换时,总是从离散数据中选取一部分处理,将其称为一帧数据。而且FFT是在一定假设下完成的,即认为被处理的信号是周期信号。因此,
    的头像 发表于 10-23 09:47 899次阅读
    如何<b class='flag-5'>理解</b><b class='flag-5'>FFT</b>中的频谱泄露效应?