加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 01 DSP算法庫(kù)
    • ※ 總??結(jié) ※
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

DSP算法庫(kù)到底有多快?

03/14 15:23
3480
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

01 DSP算法庫(kù)

一、前言

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

二、測(cè)試方法

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

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

三、測(cè)試結(jié)果

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

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

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

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

● ?開(kāi)方運(yùn)算對(duì)比:
math:12.52us
DSP:4.9us

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

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

▲ 圖1.3.3 位移操作

? ● ?位移兩位對(duì)比:
C:24us
DSP:16.65us

※ 總??結(jié) ※

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

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
MOCD207R2M 1 Fairchild Semiconductor Corporation Transistor Output Optocoupler, 2-Element, 2500V Isolation, LEAD FREE, PLASTIC, SOIC-8
$1.16 查看
DS24B33S+T&R 1 Maxim Integrated Products EEPROM, 4KX1, Serial, CMOS, PDSO8, 0.208 INCH, ROHS COMPLIANT, SOP-8
$2.75 查看
AFBR-5715APZ 1 Broadcom Limited Transceiver, 830nm Min, 860nm Max, 1250Mbps(Tx), LC Connector, Panel Mount, ROHS COMPLIANT
暫無(wú)數(shù)據(jù) 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

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