硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5105|回复: 3
收起左侧

[有问必答] 安富莱STM32-V5开发板 数字信号处理教程关于实数FFT变换疑问

[复制链接]

1

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2015-5-25 21:54:45 | 显示全部楼层 |阅读模式
Fly哥,您好:
           最近在学习《安富莱STM32-V5开发板_数字信号处理教程(V1.0)》,关于“第32章实数FFT的实现”这一部分:第392页,32.2.2 arm_rfft_q15章节,
static void arm_rfft_q15_app(void)函数中有两个疑问:
/* 按照实部,虚部,实部,虚部..... 的顺序存储数据 */
for(i=0; i<1024; i++)
{
/* 51.2Hz正弦波,采样率1024Hz。arm_sin_q15输入参数的范围[0, 32768), 这里每20次为一个完整的正弦波,32768 / 20 = 1638.4*/
     j = i % 20;
     testInput_q15_50hz = arm_sin_q15(1638*j);
}
/* 1024点实序列快速FFT */
arm_rfft_q15(&S, testInput_q15_50hz, testOutput_q15_50hz);
/* 由于输出结果的格式是Q5,所以这里将定点数转换为浮点数 */
for(i = 0; i < fftSize; i++)

{
      testOutput_f32_10khz = (float32_t)testOutput_q15_50hz/32;
}

1、testInput_q15_50hz为FFT变换输入数组,文档上说按照实部,虚部,实部,虚部..... 的顺序存储数据,可是testInput_q15_50hz = arm_sin_q15(1638*j);这个明显连续的实部,对于数组的1、3、5....没见有赋值0啊
2、arm_rfft_q15变换的输出结果的格式问题,官方文档说明如下:1024点的fft变换,输出格式是10.6,10.6格式不就是Q6吗,为啥咱们的这个文档里说输出格式是Q5??
KHK~RR(4J4)1QF84432TD1S.png


谢谢哈,打扰了!望解释一下哈,谢谢![s:149]



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2015-5-25 22:35:25 | 显示全部楼层
不好意思啊,楼主,一直没有人问这方面的问题,很多函数都已经忘记了,有时间我再看看吧。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2015-5-25 22:39:45 | 显示全部楼层
1. 这个是实数FFT。没有虚部。这个要搞清楚。
2. 我记得官方这个给出的格式错了,就是Q5,你可以Matlab验证下。
回复

使用道具 举报

1

主题

1

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2015-5-26 20:45:14 | 显示全部楼层
谢谢哈!
第一个问题:就是说实数,没有虚部,我明白了!看来是这个注释/* 按照实部,虚部,实部,虚部..... 的顺序存储数据 */误导了我。
第二个问题:我自己再看看,看看是不是官方给出的格式有问题。
再次感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-6 00:05 , Processed in 0.194183 second(s), 34 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表