【STM32H7的DSP教程】第1章 初學數字信號處理准備工作


完整版教程下載地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547

第1章   初學數字信號處理准備工作

本期教程開始帶領大家學習DSP教程,學習前首先要搞明白一個概念,DSP有兩層含義,一個是DSP芯片也就是Digital Signal Processor,另一個是Digital Signal Processing,也就是我們常說的數字信號處理技術。本教程主要講的是后者。

1.1 初學者重要提示

1.2 STM32H7的DSP功能介紹

1.3 Cortex-M7內核的DSP和專業DSP的區別

1.4 ARM提供的CMSIS-DSP庫

1.5 TI提供的32位定點DSP庫IQmath

1.6 ARM DSP軟件替代模擬器件的優勢

1.7 Matlab的安裝

1.8 總結

 

 

1.1   初學者重要提示

  1.   關於學習方法問題,可以看附件章節A。
  2.   這幾年單片機的性能越來越強勁,DSP芯片的中低端應用基本都可以用單片機來做。
  3.   當前單片機AI也是有一定前景的,ARM一直在大力推進,很多軟件廠商和研究機構也在不斷的努力。通過此貼可以了解下:單片機AI的春天真的來了,ARM最新DSP庫已經支持NEON,且支持Python   http://www.armbbs.cn/forum.php?mod=viewthread&tid=94406

1.2   STM32H7的DSP功能介紹

STM32H7是采用的Cortex-M7內核,而DSP功能是內核自帶的,下面我們通過M7內核框圖來了解下:

 

重點看如下兩個設計單元:

  •   DSP

DSP單元集成了一批專用的指令集(主要是SMID指令和快速MAC乘積累加指令),可以加速數字信號處理的執行速度。

  •   FPU

Cortex-M7內核支持雙精度浮點,可以大大加速浮點運算的處理速度。

 

下面是Cortex-M3,M4和M7的指令集爆炸圖:

 

通過這個圖,我們可以了解到以下幾點:

  •   M4和M7系列有相同的DSP指令集。
  •   M7相比M4系列要多一些浮點指令集。
  •   同時這里要注意一個小細節,浮點指令都是以字符V開頭的。通過這點,我們可以方便的驗證是否正確開啟了FPU(MDK或者IAR調試狀態查看浮點運算對應的反匯編是否有這種指令)。

 

不同M內核的DSP性能比較:

 

  •   Cortex-M7內核的DSP性能最強。
  •   Cortex-M3,M4和M33是中等性能,其中M3最弱。
  •   Cortex-M0,M0+和M23性能最弱。

1.3   Cortex-M7內核的DSP和專業DSP的區別

M核的DSP處理單元與專業DSP的區別:

 

1.4   ARM提供的CMSIS-DSP庫

為了方便用戶實現DSP功能,ARM專門做了一個DSP庫CMSIS-DSP,主要包含以下數字信號處理算法:

  •   BasicMathFunctions

提供了基本的數據運算,如加減乘除等基本運算,以_f32結尾的函數是浮點運算,以_q8, _q15, _q31,結尾的函數是定點運算,下面是部分API截圖:

 

  •   FastMathFunctions

主要提供SIN,COS以及平方根SQRT的運算。

 

  •   ComplexMathFunctions

復雜數學運算,主要是向量,求模等運算。下面是部分API截圖:

 

  •   FilteringFunctions

主要是濾波函數,如IIR,FIR,LMS等,下面是部分API截圖:

 

  •   MatrixFunctions

主要是矩陣運算。

 

  •   TransformFunctions

變換功能。 包括復數FFT(CFFT),復數FFT逆運算(CIFFT),實數FFT(RFFT),實數 FFT 逆運算,下面是部分API截圖:

 

  •   ControllerFunctions

控制功能,主要是PID控制函數和正余弦函數。

 

  •   StatisticsFunctions

統計功能函數,如求平均值,最大值,最小值,功率,RMS等,下面是部分API截圖。

 

  •   SupportFunctions

支持功能函數,如數據拷貝,Q格式和浮點格式相互轉換。

 

  •   CommonTables

arm_common_tables.c 文件提供位翻轉或相關參數表。

 

1.5   TI提供的32位定點DSP庫IQmath

初次使用這個定點庫,感覺在各種Q格式的互轉、Q格式數值和浮點數的互轉處理上更專業些,讓人一目了然。

所以本次教程也會對IQmath做個介紹並配套一個例子。

1.6   ARM DSP軟件替代模擬器件的優勢

我們日常生活中用到DSP的地方很多,以生活中的設備為例:

 

通過ARM DSP軟件替換模擬組件可以降低成本,PCB的面積和設計時間,同時提高靈活性和適應性。

  •   降低BOM成本

將模擬電路轉換為軟件的最明顯的好處是材料清單成本(BOM)減少。

 

  •   提高設計靈活性

使用模擬濾波器來不斷調節電路以獲得最佳性能時,這種情況並不少見。較小的電路板修改會導致新的電氣特性突然改變寄生電容或電感,從而導致模擬電路達不到預期。將模擬電路轉換為DSP算法不僅可以消除這種風險,還可以根據軟件的需要進行調整,且更具靈活性。

 

  •   減少產品尺寸

降低BOM成本具有額外的好處,也允許開發人員減少其產品的尺寸。

 

  •   縮短設計周期時間

將模擬電路轉換為軟件有助於縮短設計周期。這有幾個原因:

    • 首先,有很多工具可供軟件設計人員模擬和生成替換模擬電路所需的DSP算法。這通常比通過電路仿真和測試調整電路所需的時間快得多。
    • 其次,如果需要進行更改,可以在軟件中進行更改,這可以在幾分鍾內完成,而不必重新調整電路板或進行硬件修改。

 

  •   現場適應性

在某些產品中,設計者很難預料用戶在現場所遇到的各種情況。使用DSP算法,設計者甚至用戶都可以進行實時調整,以適應現場條件,而無需進行大量硬件修改。

 

用數字信號處理算法替換模擬電路有很多好處。需要設計者在實際應用中權衡利益,選擇最合適的方案。

1.7   Matlab安裝

Matlab是學習DSP過程中非常重要的輔助工具,也是需要熟練掌握的,本教程的第2章到第5章進行了入門介紹。

1.8   總結

本期教程主要是做一些入門性的介紹,下期教程將開始實戰。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM