对于FFT这个IP核,我其实对它真的是又爱又恨,因为它真的耗费了我太多时间,但是随着研究的深入,遇到的问题一点点给消化解决,终于不用带着问题睡觉了,哈哈,有时候真的挺佩服自己的,遇到不懂的,不了解的,真的不允许自己留一点疑惑,必须深挖到底,一点含糊都不留给自己,其实,不知道大家有没有这样的疑惑,现在不懂的,懒得去研究的,估计过不了多久这个知识点又会兜回来找你的。我有时候也会侥幸自己能逃过不会做的任务,但是真的过不了多久,我越是不会的东西就越是会来找我,感觉今天的话有点多,赶紧回到正题上来。FFT是什么?我也曾经花了大半个月的时间去研究过它的原理,还手写代码不调用IP核去实现它的计算,这个实现过程还是挺复杂的,所以最简单易上手的还是好好学会调用IP核吧,这个IP核真的忒好用呢。

FFT其实本质上就是用来做频谱分析的,我给你一堆混杂的频谱,你知道里面有哪些频率吗?你不知道,但是FFT知道,它能帮你分析混杂频谱中有哪些频率成分。说得官方一点就是:FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域,有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了,这就是很多信号分析采用FFT变换的原因。简单来说,FFT的作用就是对信号进行频谱分析

我们首先结合MATALB这个强大的数学分析软件来生动阐释下FFT这个概念,它可以拿来做什么?它是如何实现频谱分析的?一个模拟信号,经过ADC采样之后,就变成了数字信号,我们就可以拿采样得到的数字信号,做FFT变换。N个采样点,经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT运算,通常N取2的整数次方。 例如某点n所表示的频率为:Fn=(n-1)*Fs/N。由这条公式可以看出,Fn所能分辨到的频率为Fs/N,举例来说如果采样频率Fs为1024Hz,采样点数为1024点,则可以分辨到1Hz。1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT,则结果可以分析到1Hz,如果采样2秒时间的信号并做FFT,那这个对应的时间序列点数就是2048,则结果可以分析到0.5Hz。所以如果要提高频率分辨力,则必须增加采样点数,也即采样时间。频率分辨率和采样时间是倒数关系。由于FFT结果的对称性,通常我们只使用前半部分的结果,即小于采样频率一半的结果。

  假设我们有一个信号,它含有2V的直流分量,里面包含频率为5MHz、相位为-30度、幅度为3V的交流信号,以及一个频率为7.5MHz、相位为90度、幅度为1.5V的交流信号。用数学表达式就是如下:    S1=Adc+A1*cos(2*pi*F1*t+pi*P1/180)+A2*cos(2*pi*F2*t+pi*P2/180);%它含有2V的直流分量,频率为5MHz、相位为-30度、幅度为3V的交流信号,以及一个频率为75Hz、相位为90度、幅度为1.5V的交流信号,这里式中的cos参数为弧度,所以-30度和90度要分别换算成弧度。我们以25.6MHz的采样率对这个信号进行采样,总共采样256点。根据公式:Fn=(n-1)*Fs/N,我们可以知道,每两个点之间的间距就是0.1MHz,也就是它的分辨率是0.1MHZ,第n个点的频率就是n-1。我们的信号有3个频率:0MHz、5MHz、7.5MHz,根据公式,n分别在1、51、76,也就是应该分别在第1个点、第51个点、第76个点上出现峰值,其它各点应该接近0。
实际情况如何呢?我们把S1这个交流信号灌进去MATLAB看看计算结果:
   1)峰值出现位置:我们可以看到在第1个点、第51个点、第76个点上分别出现峰值:

2)信号幅值对比:

预测猜想:按照我们的原始频率输入,第1个点、第51个点、第76个点的幅度值分别是2、3、1.5;

Matlab输出结果:

3)相位输出验证:

预测猜想:第1个点直流分量没有相位输出,不管,第51个点、第76个点的幅度值分别是-30,90;

Matlab输出结果:

   以上就是FFT结合Matlab的数学分析,这个例子是我们预先知道了频率的成分,然后利用FFT对原始信号作FFT运算,最后根据运算结果提取到的频谱来验证是否是我们灌进来的那些频率信号。在实际的频谱分析中,我们往往是不知道频率成分的,但是基于合适的采样率,经过了FFT运算后,可以提取到信号所对应的幅度值、相位、频率,从而我们就可以还原出原始信号所携带的一些频谱成分。
  基于Matlab的FFT数学分析就讲到这里,接下来会详细学习下FFT这个IP核。

FFT IP核调用与仿真之FFT数学分析的更多相关文章

  1. FFT IP核调用与仿真之SCALE压缩因子设置

    关于FFT IP核的配置,网上有很多相关的资料可以参考,但是唯独涉及到scaled压缩因子设置这个参数,资料却非常匮乏,这是个什么参数,应该整么设置,设置后对结果输出会有什么影响,整样才能知道它设置的 ...

  2. 从Xilinx FFT IP核到OFDM

    笔者在校的科研任务,需要用FPGA搭建OFDM通信系统,而OFDM的核心即是IFFT和FFT运算,因此本文通过Xilinx FFT IP核的使用总结给大家开个头,详细内容可查看官方文档PG109.关于 ...

  3. Quartus FFT IP核简介

    为了突出重点,仅对I/O数据流为steaming的情况作简要说明,以便快速上手,有关FFT ip核模型及每种设置详细介绍请参考官方手册FFT MegaCore Function User Guide. ...

  4. 实测—fft IP核使用(包括ifft的配置使用)

    Vivado xilinx fft9.0 使用笔记: ****注 仿真实测1024点的转换需要经过1148个时钟周期才能得到转换结果: 模块配置信号含义请参考pg109文档手册(写的贼烂会看晕),不详 ...

  5. FPGA基础学习(1) -- FFT IP核(Quartus)

    为了突出重点,仅对I/O数据流为steaming的情况作简要说明,以便快速上手,有关FFT ip核模型及每种设置详细介绍请参考官方手册FFT MegaCore Function User Guide. ...

  6. QuartusII 13.0 PLL IP Core调用及仿真

    有一个多月没用用Quartus II了,都快忘了IP 是怎么用调用的了,还好有之前做的笔记,现在整理出来,终于体会到做笔记的好处. 一.  QuartusII的pll的调用 打开软件界面 Tool—— ...

  7. Xilinx FFT IP核缩放因子说明

    以1024点FFT为例, reg [9:0] scale_sch = 10'b11_10_01_01_01; 流水线结构中,将每个基 2 的蝶形处理单元视为一个阶段. 每个阶段进行一次数据的缩减,缩减 ...

  8. Xilinx FFT IP v9.0 使用(一)

    reference:https://blog.csdn.net/shichaog/article/details/51189711 https://blog.csdn.net/qq_36375505/ ...

  9. Xilinx FFT IP v9.0 使用

    该ip用于实现N=2**m(m=3~16)点FFT的变换, 实现的数学类型包含: A)      定点全精度 B)      定点缩减位宽 C)      块浮点 每一级蝶型运算后舍入或者取整.对于N ...

随机推荐

  1. element-ui走马灯如何实现图片自适应 长度和高度 自适应屏幕大小

    最近写用vue2.0写一个项目,用到了走马灯效果,由于项目赶时间,想偷下懒,第一次引用了element组件(纯JS也可以写的出来,赶时间嘛,懂得....),结果用了发现一个问题,element的组件( ...

  2. CSP2019 —— 今年欢笑复明年,不知退役在眼前

    关于2019CSP-J/-S的一些体会 又是一年退役季,想起在群里看到大佬的一句诗,感慨万千. 今年欢笑复明年,不知退役在眼前 于是便心生文意,随便写点东西来给自己康康. 先说说这次的成绩吧.大家应该 ...

  3. Js基本类型中常用的方法总结

    1.数组 push() -----> 向数组末尾添加新的数组项,参数为要添加的项,返回值是新数组的长度,原数组改变: pop() -----> 删除数组末尾的最后一项,参数无,返回值是删除 ...

  4. SpringBoot使用RestTemplate基础认证

    SpringBoot使用RestTempate SpringBoot使用RestTemplate摘要认证 SpringBoot使用RestTemplate基础认证 SpringBoot使用RestTe ...

  5. Windows注册表内容详解

    Windows注册表内容详解 http://blog.sina.com.cn/s/blog_4d41e2690100q33v.html (2011-04-05 10:46:17)   第一课  注册表 ...

  6. [Luogu 4688] [Ynoi2016]掉进兔子洞 (莫队+bitset)

    [Luogu 4688] [Ynoi2016]掉进兔子洞 (莫队+bitset) 题面 一个长为 n 的序列 a.有 m 个询问,每次询问三个区间,把三个区间中同时出现的数一个一个删掉,问最后三个区间 ...

  7. 前端开发HTML&css入门——盒子模型以及部分CSS样式

    CSS处理网页时,它认为每个元素都包含在一个不可见的盒子里.• 为什么要想象成盒子呢?因为如果把所有的元素都想象成盒子,那么我们对网页的布局就相当于是摆放盒子.• 我们只需要将相应的盒子摆放到网页中相 ...

  8. AOS Clustering on one Server

    原文链接:http://www.cnblogs.com/JackyXu1981/articles/1287910.html AOS Clustering on one Server AOS Clust ...

  9. vim ctags

    ctags -I __THROW -I __attribute_pure__ -I __nonnull -I __attribute__ --file-scope=yes --langmap=c:+. ...

  10. Asp.Net 保存Session的三种方式

    一.默认方式,保存在IIS进程中保存在IIS进程中是指把Session数据保存在IIS的运行的进程中,也就是inetinfo.exe这个进程中,这也是默认的Session的存方式,也是最常用的. 这种 ...