您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]BF592官方提供的FFT函数输入参数有大... 
本帖共有559个阅读者
发表帖子 发表投票 回复主题
[求助]BF592官方提供的FFT函数输入参数有大小限制吗
JianSun(论坛新手)
JianSun
头衔:社区公民
帮派:无帮无派
帖数:2
金钱:117
积分:3
注册时间:2017/1/26
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]BF592官方提供的FFT函数输入参数有大小限制吗
BF592用visual DSP++编译,调用官方C库里提供的rfft_fr32函数时,参数输入数组有长度限制吗?输入数组里的每个元素有大小限制吗?为什么我计算结果的输出数组元素溢出了呢,全都显示4.29496e+009,正好是2的32次方。

#include <cdefBF592-A.h>
#include <ccblkfn.h>
#include <fract.h>
#include <filter.h>
#include <stdio.h>
#include "cpu.h"
#include "uart.h"

#define FFT_SIZE    128
#define TWID_SIZE  (FFT_SIZE/2)
  
fract32         in[FFT_SIZE]={10000,14794,18415,19975,19093,15985,11411,6492,2432,225,411,2945,7206,12151,16570,19380,19894,17985,14121,9248,4560,1203,0,1245,4634,9337,14202,18038,19906,19349,16503,12065,7121,2882,386,244,2490,6575,11499,16055,19129,19968,18367,14716,9911,5128,1538,19,944,4086,8676,13591,17626,19794,19564,16992,12709,7762,3364,590,120,2069,5960,10840,15514,18839,19999,18711,15291,10575,5718,1910,82,683,3565,8022,12964,17180,19638,19736,17451,13342,8414,3874,835,39,1682,5362,10177,14949,18509,19986,19018,15842,11236,6327,2317,189,462,3071,7376,12324,16702,19440,19866,17877,13959,9072,4412,1120,2,1332,4784,9514,14362,18142,19929,19285,16367,11891,6952,2759,339,284,2608,6742,11674,16195};

complex_fract32 out[FFT_SIZE];
complex_fract32 twiddle[TWID_SIZE];
int             block_exponent;

void main()
{
int i=1;
Set_PLL(16,4); //内核时钟:25MHz*16=400MHz,系统时钟:400MHz/4=100MHz
Init_gpio();     //初始化GPIO口
uart_device_init();//初始化串口
delay_Uart(500);
uart_device_ioct(19200);  //初始化波特率19200
twidfftrad2_fr32(twiddle, FFT_SIZE);
rfft_fr32 (in, out, twiddle, 1, FFT_SIZE, &block_exponent, 2);
}

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2017/2/1 21:34:07
JianSun(论坛新手)
JianSun
头衔:社区公民
帮派:无帮无派
帖数:2
金钱:117
积分:3
注册时间:2017/1/26
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
找到显示4.29496e+009的原因了,是由于计算出来的实部或虚部为负数时就会这样。可是怎么解决呢?C库里面有没有提供能计算负数的函数?另外请问C库里面有没有提供现成的计算复数向量模的函数?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2017/2/2 18:11:22
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
vdsp下有个abs函数,取绝对值,如y=abs(a), 浮点的用fabs.

是否有大小限制,这个就不太清楚



我是OP...
等级:管理员 参考IP地址:*.*.*.*
2017/2/20 12:37:11
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159181 Call, 1 Queries, Processed in 0.060547 second(s),