您尚未登录。

#2 Re: Cortex M0/M3/M4/M7 » NUVOTON NUC029 BLDC无刷电机 [Cortex-M0] 开发入门, Q群: 807712443 » 2020-06-09 09:41:18

谢谢大佬的分享,给我这种入门级的使用者非常大的帮助。
请问大佬:
NUC029xAN_Series_BSP_CMSIS_v3_00_004跟NUC029xAN_BSP_v3.00.003 有什么区别么,我看NUC029xAN_BSP_v3.00.003里也有CMSIS文件夹。是不只要用NUC029xAN_BSP_v3.00.003就可以了。

#5 Re: Cortex M0/M3/M4/M7 » STM32F4库函数中几种FFT实现方式对比 » 2020-03-17 10:44:02

Quotation 说:

如果输入是实数(比如声音),那是只用一半的输出就可以。

输入的是实数,谢谢您。如果有虚数会输出不对称么。

#6 Re: Cortex M0/M3/M4/M7 » STM32F4库函数中几种FFT实现方式对比 » 2020-03-17 08:52:14

是的,用单片机做FFT变换结果如你所说,MATLAB下就不对了。

SmallJu 说:

讲道理fft后每个点的值应该是对应频率的N(采样点数)/2倍,第一点是N倍

#7 Re: Cortex M0/M3/M4/M7 » STM32F4库函数中几种FFT实现方式对比 » 2020-03-17 08:51:10

感谢关注与回复,所以说可以只用一半的数据么。

Quotation 说:

回答问题2,对于实数输入,输出的FFT结果是共轭的。所以,对实数输入,常用rfft优化,可以减少运算量。见arm_rfft_*函数。

#8 Cortex M0/M3/M4/M7 » STM32F4库函数中几种FFT实现方式对比 » 2020-03-09 11:21:43

JenniferL
回复: 9

最近用STM32F407的DSP库(en.stm32f4_dsp_stdperiph_lib)实现了FFT功能,有三种方式,现将这三种方案做个对比。
方式一:使用arm_cfft_radix2_f32.c文件,基2
方式二:使用arm_cfft_radix4_f32.c文件,基4
方式三:使用arm_cfft_f32.c与CMSIS中的arm_cortexM4lf_mat.lib文件

采64点同一原始数据的相同数据段计算时间与所占资源
方式一:163uS   Program Size: Code=9228RO-data=217380 RW-data=2108 ZI-data=4740
方式二:111uS   Program Size:Code=11012 RO-data=217380 RW-data=2108 ZI-data=4740
方式三:103uS   Program Size:Code=15848 RO-data=217396 RW-data=2120 ZI-data=2416

采128点同一原始数据的相同数据段计算所得到的周期,采用256点FFT采128点实际数据后续128个补0的方式。
方式一:
1.png
方式二:
2.png
方式三:
3.png
由上可算得Fn=(4-1)*50/256=0.5859375Hz,Tn=1/Fn=1.707s。与MATLAB分析的结果一致。
MATLAB结果:
MATLAB.jpg
原始信号:
none.jpg
另外在单片机中使用基2的算法,采128个点做128点的FFT分析结果为0.78125Hz与实际相差较大,见下图。
2%20128.png


由上可得以下结论:
1. 运算时间由快到慢依次为arm_cfft_f32、arm_cfft_radix4_f32、arm_cfft_radix2_f32。
2. 所占资源相差不大。
3. 相同采集点情况下,补0对正确计算周期有帮助。

另外还有两个问题请教各位。
1.FFT以后频域中的模值比时域中实际信号的幅值小很多,不到1/2甚至更少。
2.FFT结果是对称的,为什么又不能使用一半的数据做分析呢。

#9 Re: ST/STM8/STM8S/STM8L » stm32f030rc ad采样异常 » 2019-06-10 11:25:35

BugActiveDaughter 说:

已解决,跟串口的接收有冲突,f0潜在的bug。

请问什么冲突哈

#10 DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 使用BP6308专用电机驱动芯片制作的BLDC驱动板 » 2019-06-10 09:39:25

JenniferL
回复: 1

最近做了一块驱动板,经过了空载与带载的验证。因为使用了专用IC所以省了很多事,至少不用编程了哈,而且也达到了设计时的需求。此驱动板工作电压为12VDC或者24VDC,最大电流10A,可实现正反转与调速以及刹车功能。
说一下其中的坑,PWM口与FILTER口都可以调速,但是两个口不能同时使用。如果使用FILTER口调速,必须将PWM接地,反之将FILTER通过一个小电容接地。开始设计时想把两个口都引了出来,结果FILTER输入口一直输出2.3VDC左右的电平,无法调速电机也不转动,一度很慌张。
这里要感谢黄兔先生,布板时帮我发现一个严重的封装错误,不然要填一个大坑了,以及后来还亲自帮我布了一块板,让我学习,非常感谢!黄兔先生的技术水平与人格魅力都是楚才子的最佳代表。


_20190610092832.jpg

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn