hu9977 发表于 2018-10-17 09:58:58

FFT变换之后数据都是幅值都是0,是咋回事

请问各位大佬,下面raw_FFTTEST_data是我每秒采集的512个数据,是int6_t类型的,但是变换之后输出的幅值都是0,是咋回事啊

toofree 发表于 2018-10-17 10:18:07

本帖最后由 toofree 于 2018-10-17 10:20 编辑

FFT是时域转频域,转换后需要找到频点,在对应频点上才有幅值。
那么问题来了,你找到的频点是多少?
自己产生个特定频率的正弦波数组,然后FFT一下,得到频率和幅值,先验证一下。

发表于 2018-10-17 10:22:48

为什么一个*2,一个不*2呢?前面是8位,后面是16位吗?如果是这样的。他取值的时候只取低8位。

hu9977 发表于 2018-10-17 10:27:34

toofree 发表于 2018-10-17 10:18
FFT是时域转频域,转换后需要找到频点,在对应频点上才有幅值。
那么问题来了,你找到的频点是多少?
自己 ...

这个传感器是每秒发出512个数据,采样点我取的512,最后真实的频率点应该是0-511hz,中间间隔1,对吗

hu9977 发表于 2018-10-17 10:31:52

安 发表于 2018-10-17 10:22
为什么一个*2,一个不*2呢?前面是8位,后面是16位吗?如果是这样的。他取值的时候只取低8位。 ...

raw_input_512Hz和raw_FFTTEST_data都是int6_t类型的;raw_FFTTEST_data是要被输入的512个数据

发表于 2018-10-17 11:03:09

从代码上看,奇数都是0,偶数是实际的数据,看一下处理数据时,处理的是奇数还是偶数。

hu9977 发表于 2018-10-17 11:26:08

toofree 发表于 2018-10-17 10:18
FFT是时域转频域,转换后需要找到频点,在对应频点上才有幅值。
那么问题来了,你找到的频点是多少?
自己 ...

用正弦函数正常。下面是MATLAB里面的
PS:为啥回复不能带图片

hu9977 发表于 2018-10-17 11:26:46

安 发表于 2018-10-17 11:03
从代码上看,奇数都是0,偶数是实际的数据,看一下处理数据时,处理的是奇数还是偶数。 ...

输入用正弦函数正常。

STMCU 发表于 2018-10-18 11:26:28

hu9977 发表于 2018-10-17 11:26
用正弦函数正常。下面是MATLAB里面的
PS:为啥回复不能带图片

右上角高级模式里可以上传图片

一木320 发表于 2018-10-18 14:08:02

先用浮点API试试
页: [1] 2
查看完整版本: FFT变换之后数据都是幅值都是0,是咋回事