• 正文
    • 01 DSP算法庫
    • ※ 總??結(jié) ※
  • 推薦器件
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

DSP算法庫到底有多快?

2024/03/14
3132
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

01 DSP算法庫

一、前言

ARM單片機(jī)開發(fā)中,有 CMSIS 中提供的 DSP 數(shù)字信號處理函數(shù)庫。這個函數(shù)庫中包括有基本的數(shù)據(jù)函數(shù),快速數(shù)學(xué)運(yùn)算,復(fù)數(shù)運(yùn)算,濾波器,矩陣,變換,點(diǎn)擊控制,統(tǒng)計(jì),支持函數(shù)以及插值函數(shù)等等。涵蓋了大多數(shù)工程應(yīng)用中的算法。下面,我有一個疑問,使用CMSIS 中的 DSP函數(shù),與普通的數(shù)學(xué)庫中的函數(shù),究竟能夠有多大的提速空間?下面,就對比一下開方運(yùn)算以及sine三角函數(shù)的運(yùn)算速度。這樣,便能夠?qū)碓诓煌瑘龊线x擇使用不同的數(shù)學(xué)庫。

二、測試方法

測試硬件平臺是昨天制作的 STM32F103單片機(jī),這是 M3內(nèi)核的 ARM 單片機(jī)。這個單片機(jī)比較簡單和流行,看一下它的數(shù)學(xué)計(jì)算速度。利用一個端口輸出高低電平表示計(jì)算所需要的時間。

為了使用 DSP數(shù)據(jù)庫,需要在 IAR 開發(fā)環(huán)境中,對 工程文件選項(xiàng) General ?中的 連接庫設(shè)置中,選擇 CMSIS DSP。在程序中增加 arm math 頭文件即可。測試程序大循環(huán)中,執(zhí)行普通的 sine 三角函數(shù)計(jì)算,前后設(shè)置 LED 輸出管腳電平,因此輸出高電平脈沖寬度表示sine 函數(shù)計(jì)算時間。中間相隔1ms之后,再執(zhí)行 DSP中的sine 函數(shù),也使用 LED 管腳的高電平指示執(zhí)行時間。后面通過示波器便可以直觀的對比兩個函數(shù)執(zhí)行速度的差異性了。

三、測試結(jié)果

使用示波器,測量 LED 管腳的波形,可以看到前后兩個脈沖信號。前面的信號是普通數(shù)學(xué)庫中的 sine 函數(shù),時間較長,后面是 DSP庫中的 sine 函數(shù),明顯時間短。這說明了對于 M3 內(nèi)核的 單片機(jī),使用 DSP數(shù)學(xué)庫的效率還是非常高的。需要說明的是,此時 單片機(jī)系統(tǒng)時鐘為 64MHz。為了更加精確的對比兩個數(shù)學(xué)庫執(zhí)行時間,將波形展開。利用示波器的光標(biāo)測量功能,測試脈沖的時間寬度。普通sine 函數(shù),計(jì)算時間為 41.7微秒,測量 DSP sine 函數(shù),執(zhí)行時間只有10微秒,通過對比可以知道,對于 三角函數(shù) sine計(jì)算,DSP算法庫比起普通的數(shù)學(xué)函數(shù)要快四倍左右。

● ?sine運(yùn)算對比:
math:41.7us
DSP:10us

▲ 圖1.3.1 計(jì)算sine函數(shù)對比普通數(shù)學(xué)庫與DSP庫的執(zhí)行速度

??下面再對比一下浮點(diǎn)開方數(shù)學(xué)運(yùn)算。使用的方法是一樣的。通過示波器測量 普通數(shù)學(xué)庫函數(shù)和 DSP數(shù)學(xué)庫函數(shù)之間的差別。普通的數(shù)學(xué)庫,計(jì)算一個浮點(diǎn)數(shù)開方需要 12.52 微秒,DSP數(shù)學(xué)庫中的開方運(yùn)算,只需要 4.9微秒。比普通的數(shù)學(xué)庫增加了不到 3倍。這說明不同的數(shù)學(xué)運(yùn)算,DSP提速不一樣。

● ?開方運(yùn)算對比:
math:12.52us
DSP:4.9us

▲ 圖1.3.2 對比開方運(yùn)算算法函數(shù)速度的差異

??最后對比一下普通的整數(shù)位移操作。對128個數(shù)字中的整型數(shù)往左位移,對比普通的 C 語言位移所需要的時間以及DSP 庫中位移函數(shù)運(yùn)算時間。C語言位移消耗了大約 24微秒,DSP 庫函數(shù)消耗了 16.65微秒,速度大約快了 三分之一左右。

▲ 圖1.3.3 位移操作

? ● ?位移兩位對比:
C:24us
DSP:16.65us

※ 總??結(jié) ※

本文對比了 CMSIS DSP數(shù)學(xué)庫中的部分函數(shù)速度,都比使用普通的C語言以及math 庫中函數(shù)速度有所提高,三角函數(shù)提高了四倍左右,普通的位移操作只提高了三分之左右。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
NC7WZU04P6X 1 Rochester Electronics LLC LVC/LCX/Z SERIES, DUAL 1-INPUT INVERT GATE, PDSO6, 1.25 MM, EIAJ, SC-88, SC-70, 6 PIN
$0.22 查看
ECS-.327-12.5-34B-TR 1 ECS International Inc Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, ROHS COMPLIANT, ULTRA MINIATURE, CERAMIC, SMD, 2 PIN

ECAD模型

下載ECAD模型
$0.52 查看
DSC1001CI2-025.0000 1 Microchip Technology Inc OSC MEMS 25.000MHZ CMOS SMD

ECAD模型

下載ECAD模型
$1.43 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

公眾號TsinghuaJoking主筆。清華大學(xué)自動化系教師,研究興趣范圍包括自動控制、智能信息處理、嵌入式電子系統(tǒng)等。全國大學(xué)生智能汽車競賽秘書處主任,技術(shù)組組長,網(wǎng)稱“卓大大”。