RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【英飛凌PSoC 6 RTT開(kāi)發(fā)板試用】語(yǔ)音識(shí)別之一:移植CMSIS-DSP庫(kù)-FFT測(cè)試

嵌入式USB開(kāi)發(fā) ? 來(lái)源:嵌入式USB開(kāi)發(fā) ? 作者:嵌入式USB開(kāi)發(fā) ? 2023-07-11 00:10 ? 次閱讀

一. 前言

后面會(huì)基于本開(kāi)發(fā)板實(shí)現(xiàn)語(yǔ)音識(shí)別,需要使用到FFT等關(guān)鍵算法,所以先移植CMSIS-DSP庫(kù),并進(jìn)行FFT的測(cè)試。

移植DSP算法庫(kù)

添加代碼

git clone https://github.com/ARM-software/CMSIS_5.git

CMSIS_5\\CMSIS\\DSP下是相關(guān)文件,Source下是源碼

image.png

將DSP文件夾復(fù)制到自己的工程目錄中,只保留

Include,PrivateInclude,Source三個(gè)文件夾

image.png

image.png

Source下的每個(gè)子文件夾都是一類算法,里面的每個(gè)c都對(duì)應(yīng)一個(gè)計(jì)算函數(shù),并且有一個(gè)總文件包括其中所有的單個(gè).c,比如BasicMathFunctions.c中

image.png

刪除這些總的.c,避免編譯重復(fù)

刪除以下文件和所有的非.c和.h文件

BasicMathFunctions:BasicMathFunctions.c,BasicMathFunctionsF16.c

BayesFunctions:BayesFunctions.c,BayesFunctionsF16.c

CommonTables:CommonTables.c,CommonTablesF16.c

ComplexMathFunctions:ComplexMathFunctions.c,ComplexMathFunctionsF16.c

ControllerFunctions:ControllerFunctions.c

DistanceFunctions:DistanceFunctions.c,DistanceFunctionsF16.c

FastMathFunctions:FastMathFunctions.c,FastMathFunctionsF16.c

FilteringFunctions:FilteringFunctions.c,FilteringFunctionsF16.c

InterpolationFunctions:InterpolationFunctions.c,InterpolationFunctionsF16.c

MatrixFunctions:MatrixFunctions.c,MatrixFunctionsF16.c

QuaternionMathFunctions:QuaternionMathFunctions.c

StatisticsFunctions:StatisticsFunctions.c,StatisticsFunctionsF16.c

SupportFunctions:SupportFunctions.c,SupportFunctionsF16.c

SVMFunctions:SVMFunctions.c,SVMFunctionsF16.c

TransformFunctions:TransformFunctions.c,TransformFunctionsF16.c,arm_bitreversal2.S

image.png

工程設(shè)置添加相關(guān)頭文件包含路徑

測(cè)試

復(fù)制CMSIS_5\\CMSIS\\DSP\\Examples\\ARM\\arm_fft_bin_example下的arm_fft_bin_data.c和arm_fft_bin_example_f32.c到自己的工程目錄

arm_fft_bin_example_f32.c下的

int32_t main(void)改為int32_t ffttest_main(void)

并添加#define SEMIHOSTING以使能printf打印,我們已經(jīng)重定向?qū)崿F(xiàn)了printf打印到串口。

由于 arm_cfft_f32(&varInstCfftF32, testInput_f32_10khz, ifftFlag, doBitReverse);會(huì)修改testInput_f32_10khz的內(nèi)容,所以添加一個(gè)緩存,以便能重復(fù)測(cè)試

float32_t testtmp_f32_10khz[2048];
  /* Process the data through the CFFT/CIFFT module */
  memcpy(testtmp_f32_10khz,testInput_f32_10khz,sizeof(testInput_f32_10khz));
  arm_cfft_f32(&varInstCfftF32, testtmp_f32_10khz, ifftFlag, doBitReverse);

  /* Process the data through the Complex Magnitude Module for
  calculating the magnitude at each bin */
  arm_cmplx_mag_f32(testtmp_f32_10khz, testOutput, fftSize);

在自己的main函數(shù)中申明并調(diào)用

int32_t ffttest_main(void);

    ffttest_main();

編譯運(yùn)行可以看到串口打印SUCCESS說(shuō)明測(cè)試OK。

將輸入輸出數(shù)據(jù)打印

printf("SUCCESS\\\\\\\\n");
    for(int i=0; i  TEST_LENGTH_SAMPLES; i++)
    {
    	if(i  TEST_LENGTH_SAMPLES/2)
    	{
            printf("/*%f,%f*/\\\\\\\\r\\\\\\\\n", testInput_f32_10khz[i],testOutput[i]);
    	}
    	else
    	{
            printf("/*%f,%f*/\\\\\\\\r\\\\\\\\n", testInput_f32_10khz[i],0.0);
    	}

    }

使用serialstudio可視化顯示,可以看到計(jì)算結(jié)果FFT頻率明顯的峰值

image.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 英飛凌
    +關(guān)注

    關(guān)注

    66

    文章

    2183

    瀏覽量

    138642
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    553

    文章

    7987

    瀏覽量

    348729
  • PSoC
    +關(guān)注

    關(guān)注

    12

    文章

    170

    瀏覽量

    91891
  • 語(yǔ)音識(shí)別
    +關(guān)注

    關(guān)注

    38

    文章

    1739

    瀏覽量

    112632
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5032

    瀏覽量

    97371
  • RTT
    RTT
    +關(guān)注

    關(guān)注

    0

    文章

    65

    瀏覽量

    17114
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    英飛凌PSoC 6 RTT開(kāi)發(fā)板試用】信號(hào)處理前端之濾波

    CMSIS-DSP提供直接I型IIR庫(kù)支持Q7,Q15,Q31和浮點(diǎn)四種數(shù)據(jù)類型。其中Q15和Q31提供了快速版本。
    的頭像 發(fā)表于 07-14 00:09 ?3632次閱讀
    【<b class='flag-5'>英飛凌</b><b class='flag-5'>PSoC</b> <b class='flag-5'>6</b> <b class='flag-5'>RTT</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>試用</b>】信號(hào)處理前端之濾波

    英飛凌PSoC 6】新建RTT工程

    介紹英飛凌PSoC 6 RTT開(kāi)發(fā)板環(huán)境創(chuàng)建
    的頭像 發(fā)表于 04-24 15:29 ?1922次閱讀
    【<b class='flag-5'>英飛凌</b><b class='flag-5'>PSoC</b> <b class='flag-5'>6</b>】新建<b class='flag-5'>RTT</b>工程

    如何使用CMSIS-DSP庫(kù)進(jìn)行FFT運(yùn)算

    、開(kāi)啟FPU功能點(diǎn)這個(gè)麻將牌四筒,展開(kāi)CMSIS,把DSP勾了。點(diǎn)開(kāi)后然后點(diǎn)這個(gè)錘子No Auto Includes的勾不要打,讓它自動(dòng)include,因?yàn)?b class='flag-5'>CMSIS-DSP
    發(fā)表于 12-06 08:24

    如何將CMSIS-DSP庫(kù)加載到基于LPC55S69的工程中?

    的 Powerquad 示例:&#039; 但是如果客戶想要使用CMSIS-DSP實(shí)現(xiàn)基于Cortex-CM33的DSP功能,而不是Powerquad模塊,客戶不能導(dǎo)入SDK示例,他必須新建個(gè)
    發(fā)表于 04-06 08:40

    【新品發(fā)布】英飛凌PSoC 6 RTT物聯(lián)網(wǎng)開(kāi)發(fā)板內(nèi)容詳解

    4月12日,英飛凌聯(lián)合 RT-Thread 發(fā)布PSoC? 62 with CAPSENSE? evaluation kit開(kāi)發(fā)板 (以下簡(jiǎn)稱PSoC
    發(fā)表于 04-13 13:46

    【新品試用英飛凌PSoC 6 RTT開(kāi)發(fā)板試用活動(dòng)

    概述、軟件調(diào)試、硬件接入、視頻演示,不少于500字+2張圖片。 2)報(bào)告形式:標(biāo)題格式 【評(píng)測(cè)活動(dòng)標(biāo)題+自擬標(biāo)題】示例: 【英飛凌PSoC 6 RTT
    發(fā)表于 04-13 15:26

    英飛凌PSoC 6 RTT開(kāi)發(fā)板試用】+開(kāi)箱測(cè)試

    英飛凌PSoC 6 RTT開(kāi)發(fā)板試用】+開(kāi)箱測(cè)試
    發(fā)表于 06-05 01:06

    如何使用Arm CMSIS-DSP實(shí)現(xiàn)經(jīng)典機(jī)器學(xué)習(xí)庫(kù)

    的使用CMSIS-DSP開(kāi)源庫(kù)中的其他技術(shù)。 CMSIS-DSP庫(kù)是Arm針對(duì)各種Arm優(yōu)化的豐富的DSP函數(shù)集合Cortex-M處理器,如
    發(fā)表于 08-02 07:12

    使用CMSIS-DSP庫(kù)和Keil RTX5開(kāi)發(fā)模擬輸入信號(hào)的數(shù)字濾波器

    本申請(qǐng)說(shuō)明描述了使用CMSIS-DSP庫(kù)和Keil RTX5開(kāi)發(fā)模擬輸入信號(hào)的數(shù)字濾波器。該應(yīng)用程序是為NXP LPC1768設(shè)備設(shè)計(jì)的,可以使用μVision模擬功能進(jìn)行測(cè)試。事件記
    發(fā)表于 09-04 06:26

    MQX CMSIS-DSP算法應(yīng)用

    MQX CMSIS-DSP算法應(yīng)用
    發(fā)表于 09-29 16:47 ?20次下載
    MQX <b class='flag-5'>CMSIS-DSP</b>算法應(yīng)用

    基于MQX CMSIS-DSP算法應(yīng)用

    基于MQX CMSIS-DSP算法應(yīng)用
    發(fā)表于 10-09 08:56 ?11次下載
    基于MQX <b class='flag-5'>CMSIS-DSP</b>算法應(yīng)用

    HT32 CMSIS-DSP Library使用指南

    HT32 CMSIS-DSP Library使用指南
    發(fā)表于 06-26 10:19 ?4次下載
    HT32 <b class='flag-5'>CMSIS-DSP</b> Library使用指南

    英飛凌聯(lián)合 RT-Thread 發(fā)布 PSoC? 62 with CAPSENSE ? evaluation kit開(kāi)發(fā)板

    近日,RT-Thread 社區(qū)團(tuán)隊(duì)打造了新品開(kāi)發(fā)板英飛凌聯(lián)合 RT-Thread 發(fā)布 ?PSoC 62 with CAPSENSE evaluation kit開(kāi)發(fā)板?(以下簡(jiǎn)稱
    的頭像 發(fā)表于 04-13 01:35 ?1844次閱讀

    英飛凌開(kāi)發(fā)板模塊評(píng)測(cè)任務(wù)大挑戰(zhàn)-SPI驅(qū)動(dòng)測(cè)試

    使用PSoC? 62 with CAPSENSE? evaluation kit開(kāi)發(fā)板適配的RTT SPI驅(qū)動(dòng),做顯示測(cè)試。
    發(fā)表于 08-10 15:44 ?716次閱讀
    <b class='flag-5'>英飛凌</b><b class='flag-5'>開(kāi)發(fā)板</b>模塊評(píng)測(cè)任務(wù)大挑戰(zhàn)-SPI驅(qū)動(dòng)<b class='flag-5'>測(cè)試</b>

    玩轉(zhuǎn)PSoC 6 RTT積木式開(kāi)發(fā)套件,實(shí)現(xiàn)毫米波雷達(dá)等實(shí)用功能

    Jenson起玩轉(zhuǎn)這款靈活易用、玩法多樣的MCU套件吧!PSoC6RTT開(kāi)發(fā)板款供廣大開(kāi)發(fā)者在評(píng)估和
    的頭像 發(fā)表于 03-20 08:35 ?965次閱讀
    玩轉(zhuǎn)<b class='flag-5'>PSoC</b> <b class='flag-5'>6</b> <b class='flag-5'>RTT</b>積木式<b class='flag-5'>開(kāi)發(fā)</b>套件,實(shí)現(xiàn)毫米波雷達(dá)等實(shí)用功能
    RM新时代网站-首页