请选择 进入手机版 | 继续访问电脑版
查看: 2470|回复: 3

[原创] 基于LPC55S69双核ARM-M33的FFT傅利叶频谱仪

[复制链接]
  • TA的每日心情
    开心
    2023-12-29 09:54
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    7

    主题

    267

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    4366
    最后登录
    2024-4-18
    发表于 2019-7-6 14:40:10 | 显示全部楼层 |阅读模式
    本帖最后由 wenyangzeng 于 2019-7-8 09:43 编辑

      基于LPC55S69双核ARM-M33FFT傅利叶频谱仪

    一、项目名称
    基于LPC55S69双核ARM-M33FFT傅利叶频谱仪

    二、项目概述

        傅利叶运算FFT很适用于频谱的分析。基于LPC55S69双核ARM-M33的FFT傅利叶频谱仪,利用M33双核ARM主核浮点运算的特点,Core0进行ADC采样和FFT运算。Core1驱动OLED将运算结果以图形方式显示频谱。

    三、项目的实施
    双核任务的规划:

        项目主要功能为每秒512点的FFT运算,其中主要分为0#模块(ADC采样、FFT浮点小数运算)和1#模块(OLED图形显示)。0#模块分配给Core0,1#模块分配给Core1。申请了一个内存共享区,Core0将512个点FFT运算结果存放在该区,Core1读取该共享数据在OLED上显示。
    本项目使用了IAR自带的DSP库和LPC的POWERQUAD两种DSP进行测试。

    硬件资源:

        实现项目的功能利用《基于LPC55S69双核三相真有效值交流电压表》的硬件资源。Core0的资源需要ADC0通道的采样转换。Core1驱动OLED的5条GPIO口线硬件资源不变直接利用。这些都从板子上的ARDUINO插座上引出。
    外扩资源:

    需要外扩ADC外部输入电路ADC0输入利用原《真有效值交流电压表》的硬件ADC0,


    t1.png

                                   图1

        DEMO板的三相交流电模拟信号发生器,输出的正弦波信号,连接到LPC55S69的ADC0输入端,在P3端接上9V层叠电池就能进行50HZ正弦波频谱的显示。由于这片OLED水平方向只有128DPI,扣除512点FFT的镜像部分256点,将前256点压缩每2点抽取1点共128点供水平显示。如果断开用50HZ发生器的9V供电,用户也可以将MP3信号从S1(GND)和S2(信号)接入来测试(见图2)。注意信号电平勿超过3.3V供电电压。

    开发环境:
    IAR8.32.1。工程模块使用双核Hello_world修改而成。

    项目使用了2种DSP浮点处理方案,以便浮点小数处理的性能对比:
    方案A:IAR自带的DSP
    方案B:NXP在LPC5500系列特有的PowerQuad

    方案A:使用IAR自带DSP库,需要调用IAR的DSP库,见图2.

    t2.png

                    图2
    FPU要使能(图3)
    t3.png

    图3

    FFT 运算直接调用IARDSP库,代码不复杂:
    1. Void LPC_FFT(void)
    2. {
    3. arm_cfft_radix2_instance_f32 scfft;
    4.   uint16_t i;
    5.       arm_cfft_radix2_init_f32(&scfft,FFT_LENGTH,0,1);
    6.        for(i=0;i<FFT_LENGTH;i++)                                                                                   
    7.         { fft_inputbuf[2*i]=(uint16_t)Adc_Value[i];
    8.         fft_inputbuf[2*i+1]=0;
    9.        }
    10. arm_cfft_radix2_f32(&scfft,fft_inputbuf);   
    11. arm_cmplx_mag_f32(fft_inputbuf,fft_outputbuf,FFT_LENGTH);
    12. }
    复制代码
    双核调试:

      调试过程与真有效交流电压表基本相同,不再重复。

      为了测试LPC55s69主核处理浮点运算处理512个点FFT的浮点运算速度,测试结果大约耗时1156uS(图4)。

    t4.jpg

                   图4
    方案B:  PowerQuad
        PowerQuad是NXP在LPC55XX系列推出的高性能DSP浮点处理方案,它比IAR自带的DSP在处理浮点小数运算速度上大大提高。
    AN_DigitalSignalProcessingforNXPLPC5500UsingPowerQuad.rar (688.61 KB, 下载次数: 28)
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-11-30 16:16
  • 签到天数: 206 天

    [LV.7]常住居民III

    74

    主题

    2793

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    7422
    最后登录
    2024-1-28
    发表于 2019-7-7 13:16:36 | 显示全部楼层
    牛批      
    来根华子
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-2-4 09:24
  • 签到天数: 190 天

    [LV.7]常住居民III

    38

    主题

    591

    帖子

    28

    金牌会员

    Rank: 6Rank: 6

    积分
    2193
    最后登录
    2023-12-1
    发表于 2019-7-8 08:14:02 | 显示全部楼层
    楼主厉害 学习一波
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    654

    主题

    6310

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    19906
    最后登录
    2024-4-18
    发表于 2019-7-8 09:50:14 | 显示全部楼层
    感谢分享!
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-18 11:43 , Processed in 0.117681 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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