<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【英飛凌PSoC 6 RTT開發板試用】語音識別之一:移植CMSIS-DSP庫-FFT測試

嵌入式USB開發 ? 來源:嵌入式USB開發 ? 作者:嵌入式USB開發 ? 2023-07-11 00:10 ? 次閱讀

一. 前言

后面會基于本開發板實現語音識別,需要使用到FFT等關鍵算法,所以先移植CMSIS-DSP庫,并進行FFT的測試。

移植DSP算法庫

添加代碼

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

CMSIS_5\\CMSIS\\DSP下是相關文件,Source下是源碼

image.png

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

Include,PrivateInclude,Source三個文件夾

image.png

image.png

Source下的每個子文件夾都是一類算法,里面的每個c都對應一個計算函數,并且有一個總文件包括其中所有的單個.c,比如BasicMathFunctions.c中

image.png

刪除這些總的.c,避免編譯重復

刪除以下文件和所有的非.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

工程設置添加相關頭文件包含路徑

測試

復制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打印,我們已經重定向實現了printf打印到串口。

由于 arm_cfft_f32(&varInstCfftF32, testInput_f32_10khz, ifftFlag, doBitReverse);會修改testInput_f32_10khz的內容,所以添加一個緩存,以便能重復測試

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函數中申明并調用

int32_t ffttest_main(void);

    ffttest_main();

編譯運行可以看到串口打印SUCCESS說明測試OK。

將輸入輸出數據打印

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可視化顯示,可以看到計算結果FFT頻率明顯的峰值

image.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 英飛凌
    +關注

    關注

    65

    文章

    1954

    瀏覽量

    137043
  • dsp
    dsp
    +關注

    關注

    545

    文章

    7666

    瀏覽量

    344793
  • PSoC
    +關注

    關注

    12

    文章

    168

    瀏覽量

    91265
  • 語音識別
    +關注

    關注

    37

    文章

    1649

    瀏覽量

    111878
  • 開發板
    +關注

    關注

    25

    文章

    4528

    瀏覽量

    94576
  • RTT
    RTT
    +關注

    關注

    0

    文章

    64

    瀏覽量

    16908
收藏 人收藏

    評論

    相關推薦

    英飛凌PSoC 6 RTT開發板試用】信號處理前端之濾波

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

    英飛凌PSoC 6】新建RTT工程

    介紹英飛凌PSoC 6 RTT開發板環境創建
    的頭像 發表于 04-24 15:29 ?1514次閱讀
    【<b class='flag-5'>英飛凌</b><b class='flag-5'>PSoC</b> 6】新建<b class='flag-5'>RTT</b>工程

    如何使用CMSIS-DSP進行FFT運算

    、開啟FPU功能點這個麻將牌四筒,展開CMSIS,把DSP勾了。點開后然后點這個錘子No Auto Includes的勾不要打,讓它自動include,因為CMSIS-DSP
    發表于 12-06 08:24

    如何將CMSIS-DSP加載到基于LPC55S69的工程中?

    的 Powerquad 示例:&#039; 但是如果客戶想要使用CMSIS-DSP實現基于Cortex-CM33的DSP功能,而不是Powerquad模塊,客戶不能導入SDK示例,他必須新建
    發表于 04-06 08:40

    求分享LPC55S69 EVK的預編譯CMSIS-DSP

    為了比較 CM33 和 PowerQuad 之間的數學處理性能, 我正在尋找 CMSIS-DSP 預編譯文件 (.a) 可用于 LPC55S69EVK 的 MCUXpresso, 但我無法在任
    發表于 04-06 08:21

    【新品發布】英飛凌PSoC 6 RTT物聯網開發板內容詳解

    4月12日,英飛凌聯合 RT-Thread 發布PSoC? 62 with CAPSENSE? evaluation kit開發板 (以下簡稱PSoC
    發表于 04-13 13:46

    【新品試用英飛凌PSoC 6 RTT開發板試用活動

    概述、軟件調試、硬件接入、視頻演示,不少于500字+2張圖片。 2)報告形式:標題格式 【評測活動標題+自擬標題】示例: 【英飛凌PSoC 6 RTT
    發表于 04-13 15:26

    英飛凌PSoC 6 RTT開發板試用

    單周期乘法和MPU,可以充分發揮 PSoC6 雙核芯片性能。 該開發板核心 板載資源 如下: MCU:CY8C624ABZI-S2D44,Cortex-M4主頻 150MHz,Cortex-M0主頻
    發表于 05-30 20:47

    英飛凌PSoC 6 RTT開發板試用】+開箱測試

    英飛凌PSoC 6 RTT開發板試用】+開箱測試
    發表于 06-05 01:06

    如何使用Arm CMSIS-DSP實現經典機器學習

    的使用CMSIS-DSP開源中的其他技術。 CMSIS-DSP是Arm針對各種Arm優化的豐富的DSP函數集合Cortex-M處理器,如
    發表于 08-02 07:12

    使用CMSIS-DSP和Keil RTX5開發模擬輸入信號的數字濾波器

    本申請說明描述了使用CMSIS-DSP和Keil RTX5開發模擬輸入信號的數字濾波器。該應用程序是為NXP LPC1768設備設計的,可以使用μVision模擬功能進行測試。事件記
    發表于 09-04 06:26

    MQX CMSIS-DSP算法應用

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

    基于MQX CMSIS-DSP算法應用

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

    HT32 CMSIS-DSP Library使用指南

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

    玩轉PSoC 6 RTT積木式開發套件,實現毫米波雷達等實用功能

    本期英飛凌手工課,將由來自英飛凌的工程師Jenson給大家帶來PSoC62withCAPSENSEevaluationkit(下稱PSoC6RTT
    的頭像 發表于 03-20 08:35 ?305次閱讀
    玩轉<b class='flag-5'>PSoC</b> 6 <b class='flag-5'>RTT</b>積木式<b class='flag-5'>開發</b>套件,實現毫米波雷達等實用功能
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>