打印
[STM32F1]

关于STM32F103Z 用DSP库做FFT??跪求帮助

[复制链接]
6328|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
姐姐很忙|  楼主 | 2015-4-14 14:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
急需解答:

现在用的STM32想做FFT,256点即可。下载了网络上说的DSP库,STM32F10x_DSP_Lib_V2.0.0,因为是用汇编写的,所以具体我也没看懂~~~

但是使用时有问题想请教:

.最大的问题就是FFT的结果,和MATLAB跑出来的不一样。

#define NPT 256
long lBUFIN[NPT];         /* Complex input vector */
long lBUFOUT[NPT];        /* Complex output vector */

     for(ii=0; ii<NPT; ii++)
     {           
         lBUFIN[ii] = ii;
     }
这是我的测试数据,因为我看DSP库的说明:All the signal samples must be 32-bit data containing the 16-bit real part followed by the 16-bit imaginary part (in the little Endian order: imaginary_real).我查了一下STM32是小端格式,所以高16位虚部,低16位实部。【输出文档里面没有说,我也就认为它是高虚部,低实部了】

然后调用函数cr4_fft_256_stm32(lBUFOUT, lBUFIN, NPT);

在watch窗里看输出lBUFOUT明显数值不对呀~~~我也不知道为什么



还有关于IFFT的问题,我的方法是:先取共轭,然后FFT,再共轭然后实部虚部分别除以NPT,这样做是正确的么??

总之我现在FFT和IFFT都做出来不对,求做过的人指点~~~
沙发
姐姐很忙|  楼主 | 2015-4-14 14:40 | 只看该作者
如果能帮我成功做出来,可以提供有偿汇报~~~谢谢,我这个问题应该不难的,希望有大神不吝赐教

使用特权

评论回复
板凳
姐姐很忙|  楼主 | 2015-4-14 16:09 | 只看该作者
有没有人能帮助我啊······@香水城 香主:'(

使用特权

评论回复
地板
airwill| | 2015-4-14 16:29 | 只看该作者
网上查到有代码可以参考和验证一下 http://baike.baidu.com/subview/7562/9485379.htm
关于 DSP 库,我觉得库代码出问题的可能性不大, 最大的可能性还是手册没有看仔细,参数或者调用方法有问题,当然还有调试器里的数据释读。
建议再仔细看看吧。

使用特权

评论回复
5
姐姐很忙|  楼主 | 2015-4-14 16:49 | 只看该作者
airwill 发表于 2015-4-14 16:29
网上查到有代码可以参考和验证一下 http://baike.baidu.com/subview/7562/9485379.htm
关于 DSP 库,我觉得 ...

首先还会谢谢你,不过我用的这个库是汇编的······你发的C语言的,参考性没有啊~~~

而且这个库的library很简洁···超级短,没有什么内容。。。而且简单的调用应该没有问题吧。。。我把实部虚部都来回试了一遍,就是不对。。。

我知道网上有很多网友写的例程,我看他们都是按照大端格式输入的数据,所以虽然他们显示的结果(幅值)和我这样做得到的一样,不过FFT后的虚部实部依然和MATLAB完全不同。。。

我不知道我说清楚了没有,刚开始学这方面的东西,没有大神指点一下真的很伤神······

使用特权

评论回复
6
mmuuss586| | 2015-4-14 21:44 | 只看该作者
姐姐很忙 发表于 2015-4-14 16:49
首先还会谢谢你,不过我用的这个库是汇编的······你发的C语言的,参考性没有啊~~~

而且这个库的li ...

汇编的应该很少人懂的;
你问香水城,他也不知道;
:)

使用特权

评论回复
7
姐姐很忙|  楼主 | 2015-4-15 21:44 | 只看该作者
mmuuss586 发表于 2015-4-14 21:44
汇编的应该很少人懂的;
你问香水城,他也不知道;

好吧~~还是多谢了~~~现在问题已经解决了

使用特权

评论回复
8
li_9314| | 2015-4-21 13:38 | 只看该作者
可以给你传个例程。看别人如何调用的。

使用特权

评论回复
9
zh113214| | 2015-4-21 20:34 | 只看该作者
最不喜欢的就是这些变换公式了。真心佩服楼主。。

使用特权

评论回复
10
zh113214| | 2015-4-21 20:35 | 只看该作者
希望有人帮到你。顶!!!

使用特权

评论回复
11
lsdavid| | 2015-4-22 14:02 | 只看该作者
姐姐很忙 发表于 2015-4-15 21:44
好吧~~还是多谢了~~~现在问题已经解决了

可否分享一下如何解决的?也可以帮助后来者少走弯路。

使用特权

评论回复
12
Zacking| | 2015-4-22 17:29 | 只看该作者
楼主可以分享指导一下吗?正需要了解这方面:loveliness:

使用特权

评论回复
13
m1681470| | 2015-8-3 16:48 | 只看该作者
能否分享一下如何解决的?最近也遇到这个问题,结果与matlab有较大误差

使用特权

评论回复
14
xuexixhp| | 2015-8-3 21:23 | 只看该作者
m1681470 发表于 2015-8-3 16:48
能否分享一下如何解决的?最近也遇到这个问题,结果与matlab有较大误差

那个典型值对不对?还有类似如何你的模拟波形幅值太小的话实际经过单片机计算之后会基本为0 的,

使用特权

评论回复
15
冰河w| | 2015-8-3 21:52 | 只看该作者
怎么解决的呢

使用特权

评论回复
16
qi_ming_zhu| | 2015-11-20 08:59 | 只看该作者
我最近也是做FFT变换,matlab做出来的结果误差在99.9这样子,我的QQ 574137659

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝