娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

對于每個函數,都存在浮點數和定點數的類型,由于使用方法是一致的,這里我們僅以32為浮點數為例來說明。


一.BasicMathFunctions


1.絕對值


pDst[n] = abs(pSrc[n]), 0 <= n < blockSize


示例


float32_t *pSrc;

float32_t *pDst;

uint32_t blocksize;

arm_add_f32(pSrc,pDst,blocksize);

2.求和


pDst[n] = pSrcA[n] + pSrcB[n],      0 <= n < blockSize.

示例


float32_t *pSrcA;

float32_t *pSrcB;

float32_t *pDst;

uint32_t blocksize;

arm_add_f32(pSrcA,pSrcB,pDst,blocksize);

3.點乘

sum = pSrcA[0]*pSrcB[0] + pSrcA[1]*pSrcB[1] + ... + pSrcA[blockSize-1]*pSrcB[blockSize-1]

示例


float32_t *pSrcA;

float32_t *pSrcB;

float32_t *result;

uint32_t blocksize;

arm_dot_prod_f32(pSrcA,pSrcB,blocksize,result);

4.乘法

sum = pSrcA[0]*pSrcB[0] + pSrcA[1]*pSrcB[1] + ... + pSrcA[blockSize-1]*pSrcB[blockSize-1]

示例


float32_t *pSrcA;

float32_t *pSrcB;

float32_t *pDst;

uint32_t blocksize;

arm_mult_f32(pSrcA,pSrcB,blocksize,pDst);

5.相反數

pDst[n] = -pSrc[n],      0 <= n < blockSize.   

示例


float32_t *pSrc;

float32_t *pDst;

uint32_t blocksize;

arm_mult_f32(pSrcA,pDst,blocksize);

6.偏移

pDst[n] = pSrc[n] + offset,      0 <= n < blockSize.  

示例


float32_t *pSrc;

float32_t offset;

float32_t *pDst;

uint32_t blocksize;

arm_offset_f32(pSrc,offset,pDst,blocksize);

7.減法

pDst[n] = pSrcA[n] - pSrcB[n],   0 <= n < blockSize.    


示例


float32_t *pSrcA;

float32_t *pSrcB;

float32_t *pDst;

uint32_t blocksize;

arm_sub_f32(pSrcA,pSrcB,pDst,blocksize);

8.比例因子

pDst[n] = pSrc[n] * scale,      0 <= n < blockSize.   


示例


float32_t *pSrc;

float32_t scale;

float32_t *pDst;

uint32_t blocksize;

arm_scale_f32(pSrc,scale,pDst,blocksize);

二.FastMathFunctions

這一塊的函數就是日常使用的一些math.h的函數,不多加贅述


float32_t    arm_cos_f32(float32_t x) ;


float32_t arm_sin_f32(float32_t x) ;


arm_status arm_sqrt_q31(q31_t in, q31_t * pOut);


三.StatisticsMathFunctions


這一塊主要是一些在統計數據分析處理過程中經常會使用到的函數。


1.最大值


計算數組中的最大值,并返回數組中最大值和最大值在數組中的位置。



float32_t *pSrc;

float32_t pResult;

uint32_t blocksize;

uint32_t pIndex;

arm_max_f32(pSrc,blocksize,&pResult,&pIndex);

2.最小值


計算數組中的最小值,并返回數組中最大值和最大值在數組中的位置。與上述用法類似,不加贅述。


arm_min_f32(pSrc,blocksize,&pResult,&pIndex);

3.平均值


Result = (pSrc[0] + pSrc[1] + pSrc[2] + ... + pSrc[blockSize-1]) / blockSize; 


float32_t *pSrc;

float32_t pResult;

uint32_t blocksize;

arm_mean_f32(pSrc,blocksize,&pResult);

4.功率


Result = pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + pSrc[2] * pSrc[2] + ... + pSrc[blockSize-1] * pSrc[blockSize-1]; 


float32_t *pSrc;

float32_t pResult;

uint32_t blocksize;

arm_power_f32(pSrc,blocksize,&pResult);

5.標準差


Result = sqrt((sumOfSquares - sum2 / blockSize) / (blockSize - 1)) 

其中: 

sumOfSquares = pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + ... + pSrc[blockSize-1] * pSrc[blockSize-1] 

sum = pSrc[0] + pSrc[1] + pSrc[2] + ... + pSrc[blockSize-1]   


float32_t *pSrc;

float32_t pResult;

uint32_t blocksize;

arm_std_f32(pSrc,blocksize,&pResult);

6.均方根


Result = sqrt(((pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + ... + pSrc[blockSize-1] * pSrc[blockSize-1]) / blockSize));


float32_t *pSrc;

float32_t pResult;

uint32_t blocksize;

arm_rms_f32(pSrc,blocksize,&pResult);

7.方差


同上類似


arm_var_f32(pSrc,blocksize,&pResult);

四.SupportFunctions


支持函數主要包括數據拷貝,賦值和類型轉化。類型轉化一般不需要在DSP中進行,故此處略去。


1.數據拷貝


pDst[n] = pSrc[n];      0 <= n < blockSize.


void arm_copy_f32(float32_t * pSrc, float32_t * pDst, uint32_t blockSize) 

2.數據填充


pDst[n] = value;      0 <= n < blockSize.


void arm_fill_f32(float32_t value, float32_t * pDst, uint32_t blockSize) 

五.ContrillerFunctions


這里主要介紹的是PID控制的函數部分。


PID控制器又叫比例積分微分控制器,是目前應用最廣泛的控制器。對PID的參數整定方法網上有很多,我認為首先理解PID參數的意義更為重要,這里貼一個鏈接,https://www.zhihu.com/question/23088613/answer/81176620。


y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2]

A0 = Kp + Ki + Kd

A1 = (-Kp ) - (2 * Kd )

A2 = Kd 

函數定義如下


static __INLINE float32_t arm_pid_f32(arm_pid_instance_f32 * S, float32_t in) 


第一個參數為PID 結構體,第二個參數為采樣時間,單位為ms。

typedef struct

{

float32_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */

float32_t A1; /**< The derived gain, A1 = -Kp - 2Kd. */

float32_t A2; /**< The derived gain, A2 = Kd . */

float32_t state[3]; /**< The state array of length 3. */

float32_t Kp; /**< The proportional gain. */

float32_t Ki; /**< The integral gain. */

float32_t Kd; /**< The derivative gain. */

} arm_pid_instance_f32;

初始化函數

void arm_pid_init_f32(arm_pid_instance_f32 * S, int32_t resetStateFlag)

該函數是通過用戶配置了Kp,Ki,Kd后,通過該函數獲得A0,A1,A2。第二個參數是初始化標志位,設1即為初始化。


復位函數


void arm_pid_reset_f32(arm_pid_instance_f32 * S) 


復位所有變量為0

關鍵字:STM32  DSP  庫函數 引用地址:STM32 DSP庫函數詳解

上一篇:STM32與LPC17XX中的位帶(bit-band)操作理解
下一篇:最后一頁

推薦閱讀

首批采用第三代RXv3 CPU內核的MCU能夠顯著提升性能,為帶有嵌入式AI的電機控制應用帶來更強的系統集成和卓越的電機故障預測功能全球領先的半導體解決方案供應商瑞薩電子株式會社(TSE:6723)今日宣布,推出 RX66T 系列微控制器(MCU),這是瑞薩電子32 位 RX MCU 系列中旗艦產品的首批成員,它們全部采用全新的第三代 RXv3 CPU 內核。RX66T 采...
意法半導體的STM32WB50 *超值系列無線微控制器(MCU)是STM32WB55系統芯片的完整的且引腳兼容的衍生產品,用于需要支持Bluetooth?5.0、ZigBee?3.0或OpenThread標準的成本敏感型物聯網設備。該系列產品提供從藍牙5.0模式的100dB到802.15.4模式的104dB的良好鏈路預算。 Arm?Cortex?-M4內核處理用戶應用軟件,Cortex-M0 +內核運行包括射頻協議棧和安全功...
第一個用于檢測電流的指針表被稱為檢流計(galvanometer),發明于1820年。配合使用惠斯通電橋(Wheatstone Bridge)可以將待測量未知的電阻和電壓與已知電壓、電阻進行比較,進而測量相關的電壓、電流、電阻等。在實驗室使用這種方式進行測量費時費力,方不方便。這個裝置繁瑣復雜,不易攜帶。▲ 檢流計檢流計只能大體反映出是否存在電流,但無法給出電流...
據日經亞洲報道,蘋果主要芯片制造合作伙伴臺積電將在2023年開始為iPhone生產蘋果首款5G調制解調器芯片。該芯片已開發數年,并因蘋果2019年收購英特爾大部分調制解調器業務而得到增強,這將使蘋果擺脫高通作為重要芯片供應商的地位。四名知情人士表示,蘋果計劃采用臺積電的4納米芯片生產技術,批量生產其首款內部5G調制解調器芯片,并補充說,這家iPhone...

史海拾趣

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 永州市| 泾源县| 灵璧县| 罗定市| 中牟县| 雷州市| 静海县| 乌兰县| 米泉市| 宿迁市| 平果县| 景宁| 桐柏县| 西乡县| 鄢陵县| 孝昌县| 武功县| 都安| 岢岚县| 金寨县| 宜昌市| 安吉县| 沅陵县| 仪征市| 漳州市| 永定县| 浮梁县| 法库县| 北票市| 锡林郭勒盟| 高平市| 克山县| 容城县| 隆林| 天门市| 安达市| 洛扎县| 边坝县| 博白县| 松原市| 射洪县|