STM32單片機芯片與內部115 DSP-FIR IIR低通 高通 帶通 帶阻 中值 自適應 濾波器 逐個數據實時 樣條插值擬合

目錄

一、FIR 低通、高通、帶通、帶阻

1、FIR濾波器特點

2、濾波器結構

3、濾波器系數

4、濾波實現

5、FIR 濾波后的群延遲

二、IIR 低通、高通、帶通、帶阻

?1、IIR濾波器特點

2、濾波器結構

3、濾波器系數

4、濾波實現

5、IIR濾波后的群延遲

三、中值濾波

1、中值濾波特點

2、MidFilterBlock

3、MidFilterRT

四、自適應濾波

1、自適應濾波特點

2、濾波器結構

3、濾波實現

五、樣條插補

1、樣條插補特點

2、樣條函數初始化

3、樣條插補實現


一、FIR 低通、高通、帶通、帶阻

1、FIR濾波器特點

  • FIR 濾波器永遠是穩定的(系統只有零點);
  • FIR 濾波器的沖激響應是有限長序列;
  • FIR 濾波器的系統函數為多項式;
  • FIR 濾波器具有線性相位。

2、濾波器結構

void arm_fir_init_f32(arm_fir_instance_f32 * S,uint16_t numTaps,const float32_t * pCoeffs,float32_t * pState,uint32_t blockSize
);

? ? ? ? 最終實現的是低通、高通、帶通、帶阻只和濾波器系數有關。

3、濾波器系數

????????點擊 Design Filter 按鈕以后就生成了所需的濾波器系數,生成濾波器系數以后點擊 filterDesigner 界面上的菜單 Targets->Generate C header ,打開后顯示如下界面:

4、濾波實現

? ? ? ? 實現單點或數組格式的濾波。

void arm_fir_f32(const arm_fir_instance_f32 * S,const float32_t * pSrc,float32_t * pDst,uint32_t blockSize
)

5、FIR 濾波后的群延遲

????????波形經過 FIR 濾波器后,輸出的波形會有一定的延遲。對于線性相位的 FIR,這個群延遲就是一個常數。但是實際應用中這個群延遲是多少呢? 關于群延遲的數值, filterDesigner 工具箱會根據用戶的配置計算好。

二、IIR 低通、高通、帶通、帶阻

?1、IIR濾波器特點

????????IIR 濾波器與 FIR 濾波器相比,具有相位特性差的缺點,但它的的結構簡單、運算量小,具有經濟、高效的特點,并且可以用較少的階數獲得很高的選擇性。因此也得到了廣泛應用。

2、濾波器結構

void arm_biquad_cascade_df1_init_f32(arm_biquad_casd_df1_inst_f32 * S,uint8_t numStages,const float32_t * pCoeffs,float32_t * pState
)

? ? ? ? 最終實現的是低通、高通、帶通、帶阻只和濾波器系數有關。

3、濾波器系數

????????點擊 Design Filter 按鈕以后就生成了所需的濾波器系數,生成濾波器系數以后點擊 filterDesigner 界面上的菜單 Targets->Generate C header ,打開后顯示如下界面:

4、濾波實現

? ? ? ? 實現單點或數組格式的濾波。

void arm_biquad_cascade_df1_f32(const arm_biquad_casd_df1_inst_f32 * S,float32_t * pSrc,float32_t * pDst,uint32_t blockSize
)

5、IIR濾波后的群延遲

????????波形經過 IIR 濾波器后,輸出的波形會有一定的延遲。對于線性相位的 IIR ,這個群延遲就是一個常數。但是實際應用中這個群延遲是多少呢? 關于群延遲的數值, filterDesigner 工具箱會根據用戶的配置計算好。

三、中值濾波

1、中值濾波特點

????????將濾波階數設置為 5,即 y = medfilt1(x, 5),表示每 5 個采樣值求一次中值。原理和實現如下:函數是取 x(k-2), x(k-1), x(k), x(k+1), x(k+2)的中值作為輸出 y(k)。 對于 y(1),只有 x(1), x(2), x(3)存在數值,之前的不存在,對于不存在的補 0。 每 5 個數按從小到大排列后取中值有。

2、MidFilterBlock

? ? ? ? 實現數組形式的一段數據的中值濾波。

void MidFilter(float32_t *pSrc, float32_t *pDst, uint32_t blockSize, uint32_t order)

3、MidFilterRT

? ? ? ? 實現變量形式的單個數據的中值濾波。

void MidFilterRT(float32_t *pSrc, float32_t *pDst, uint8_t ucFlag, uint32_t order)

四、自適應濾波

1、自適應濾波特點

????????自適應濾波器能夠根據輸入信號自動調整濾波系數進行數字濾波。作為對比,非自適應濾波器有靜態的濾波器系數,這些靜態系數一起組成傳遞函數。

????????對于一些應用來說,由于事先并不知道需要進行操作的參數,例如一些噪聲信號的特性,所以要求使用自適應的系數進行處理。在這種情況下,通常使用自適應濾波器,自適應濾波器使用反饋來調整濾波器系數以及頻率響應。

????????隨著處理器性能的增強,自適應濾波器的應用越來越常見,時至今日它們已經廣泛地用于手機以及其它通信設備、數碼錄像機和數碼照相機以及醫療監測設備中

2、濾波器結構

? ? ? ? 重點是濾波的步長。

void arm_lms_norm_init_f32(arm_lms_norm_instance_f32 * S,uint16_t numTaps,float32_t * pCoeffs,float32_t * pState,float32_t mu,uint32_t blockSize
);

3、濾波實現

? ? ? ? 步長越大,抖動越大,但是平穩速度越快;步長越小,抖動越小,但是平穩速度越慢。

五、樣條插補

1、樣條插補特點

????????DSP 庫支持了樣條插補,雙線性插補和線性插補,我們這里主要介紹樣條插補的實現。低階的樣條插值還具有“保凸”的重要性質。在計算機科學的計算機輔助設計和計算機圖形學中,樣條通常是指分段定義的多項式參數曲線。

2、樣條函數初始化

void arm_spline_init_f32(arm_spline_instance_f32 * S,arm_spline_type type,const float32_t * x,const float32_t * y,uint32_t n,float32_t * coeffs,float32_t * tempBuffer
)

3、樣條插補實現

void arm_spline_f32(arm_spline_instance_f32 * S,const float32_t * xq,float32_t * pDst,uint32_t blockSize
)

????????樣條插補的主要作用是使得波形更加平滑。比如一幀是128點,步大小是8個像素,我們可以通過插補實現步長為1, 1024點的波形,本質是你的總步長大小不能變,我們這里都是1024,這個不能變,在這個基礎上做插補,效果就出來了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/72515.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72515.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72515.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言_圖書管理系統_借閱系統管理

?? 歡迎大家來到小傘的大講堂?? 🎈🎈養成好習慣,先贊后看哦~🎈🎈 所屬專欄:數據結構與算法 小傘的主頁:xiaosan_blog 本文所需對順序表的理解: 注:由于順序表實現圖書…

表達式基礎

文章目錄 1、表達式組成1、運算符 2、表達式的分類1、算數運算符1、自增運算符和自減運算2、取余運算(%)3、除法運算(/)4、案例 2、關系運算符3、邏輯運算符4、條件運算符(三目運算符)1、案例 5、賦值運算()1、賦值類型轉換2、復合賦值運算 6、逗號運算7、取地址運算(&)8、…

除了合并接口,還有哪些優化 Flask API 的方法?

除了合并接口,還有許多其他方法可以優化 Flask API,以下從性能優化、代碼結構優化、安全性優化、錯誤處理優化等方面詳細介紹: 性能優化 1. 使用緩存 內存緩存:可以使用 Flask-Caching 擴展來實現內存緩存,減少對數…

Web服務器配置

配置虛擬主機 通過虛擬主機,可以實現用自定義的域名來訪問,并且可以為不同的域名指定不同的站點目錄。 配置IP地址和域名的映射關系 申請真實的域名需要一定的費用,為了方便開發,可以通過修改hosts文件來實現將任意域名解析到本…

爬蟲逆向實戰小記——解決webpack實記

注意!!!!某XX網站實例僅作為學習案例,禁止其他個人以及團體做謀利用途!!! aHR0cHM6Ly9wbW9zLnhqLnNnY2MuY29tLmNuOjIwMDgwL3B4Zi1zZXR0bGVtZW50LW91dG5ldHB1Yi8jL3B4Zi1zZXR0bGVtZW5…

藍橋杯 之 前綴和與查分

文章目錄 題目求和棋盤挖礦 前綴和有利于快速求解 區間的和、異或值 、乘積等情況差分是前綴和的反操作 前綴和 一維前綴和: # 原始的數組num,下標從1到n n len(num) pre [0]*(n1) for i in range(n):pre[i1] pre[i] num[i] # 如果需要求解num[l] 到num[r] 的區…

Windows10下本地搭建Manim環境

文章目錄 1. 簡介2. Python環境3. uv工具4. Latex軟件5. 安裝Manim數學庫6. 中文支持參考 1. 簡介 manim是個一科普動畫的庫, 本文用到的是社區版本。 2. Python環境 這個不用多說,可以參考其他的文章。記得把pip也安上。 3. uv工具 上面的pip是老…

#UVM# 關于field automation機制中的 pack_bytes 和unpack_bytes 函數剖析

一 pack_bytes 函數 在 UVM 中,pack_bytes 函數用于將類中的所有字段打包成一個字節流(byte stream)。這是 UVM 提供的字段自動化(field automation)機制的一部分,用于簡化數據打包和傳輸。 extern function int pack_bytes(ref byte unsigned bytestream[], input uv…

YOLOv8 自定義目標檢測

一、引言 YOLOv8 不僅支持預訓練模型的推理,還允許用戶將其應用于自定義對象檢測。本文將詳細介紹如何使用 YOLOv8 訓練一個新的模型,并在自定義數據集上進行對象檢測。 二、數據集準備 1. 數據集格式 YOLOv8 支持多種數據集格式,包括 CO…

關于tresos Studio(EB)的MCAL配置之GPT

概念 GPT,全稱General Purpose Timer,就是個通用定時器,取的名字奇怪了點。定時器是一定要的,要么提供給BSW去使用,要么提供給OS去使用。 配置 General GptDeinitApi控制接口Gpt_DeInit是否啟用 GptEnableDisable…

Dify 開源大語言模型應用開發平臺使用(一)

文章目錄 一、創建鋰電池專業知識解答應用1.1 應用初始化 二、核心功能模塊詳解2.1 知識庫構建2.2 工作流與節點編排節點類型說明工作流設計示例:鋰電池選型咨詢 2.3 變量管理 三、測試與調試3.1 單元測試3.2 壓力測試3.3 安全驗證 四、部署與優化建議4.1 部署配置4…

《Java基礎 聊天窗口案例:剖析 GUI、文件 I/O 等關鍵技術知識》

1. 面向對象編程 類與對象:代碼中定義了 Chat 類,它是整個程序的核心,封裝了與聊天窗口相關的屬性和方法。在 main 方法中創建了 Chat 類的對象,并調用其方法來完成相應的功能。繼承與多態:ButtonClickListener 類實現…

IDE集成開發環境MyEclipse中安裝SVN

打開Myeclipse的help菜單----install from site 點擊add彈出對話框 在輸入框中輸入對應內容 http://subclipse.tigris.org/update_1.10.x 點擊OK之后,會刷新出兩個選項,需要選中的 點擊next,出現許可的時候選中同意,一直結束等…

歸并排序:分治哲學的完美演繹與時空平衡的藝術

引言:跨越世紀的算法明珠 在計算機科學的璀璨星河中,歸并排序猶如一顆恒久閃耀的明星。1945年,現代計算機之父馮諾伊曼在EDVAC計算機的研發過程中首次系統性地提出了這一算法,其精妙的分治思想不僅奠定了現代排序算法的理論基礎&…

服務器CPU微架構

1、微架構圖 前端:預解碼、解碼、分支預測、L1指令緩存、指令TLB緩存 后端:順序重排緩存器ROB處理依賴,調度器送到執行引擎 執行引擎:8路超標量,每一路可以進行獨立的微操作處理 Port0、1、5、6支持整數、浮點數的加…

SpringBoot調用DeepSeek

引入依賴 <dependency><groupId>io.github.pig-mesh.ai</groupId><artifactId>deepseek-spring-boot-starter</artifactId><version>1.4.5</version> </dependency>配置 deepseek:api-key: sk-******base-url: https://api.…

【前端基礎】Day 9 PC端品優購項目

目錄 1. 品優購項目規劃 1.1 網站制作流程 1.2 品優購項目整體介紹 1.3 學習目的 1.4 開發工具以及技術棧 1.5 項目搭建工作 1.6 網站favicon圖標 1.7 網站TDK三大標簽SEO優化 2. 品優購首頁制作 2.1 常見模塊類命名 2.2 快捷導航shortcut制作 2.3 header制作 2.4…

OpenMCU(一):STM32F407 FreeRTOS移植

概述 本文主要描述了STM32F407移植FreeRTOS的簡要步驟。移植描述過程中&#xff0c;忽略了Keil軟件的部分使用技巧。默認讀者熟練使用Keil軟件。本文的描述是基于OpenMCU_FreeRTOS這個工程&#xff0c;該工程已經下載放好了移植stm32f407 FreeRTOS的所有文件 OpenMCU_FreeRTOS工…

NetBeans 8.2 開發 CIFLog3.5 - 創建WelcomeDemo

NetBeans 8.2 開發 CIFLog3.5 - 創建WelcomeDemo NetBeans 8.2 開發 CIFLog3.5 - 創建WelcomeDemo創建一個基于CIFLog平臺的應用系統1. 下載安裝CIFLog2. 授權使用3. 解決本地機器碼驗證錯誤問題4. 創建一個基于CIFLog平臺的應用系統&#xff08;1&#xff09;新建項目&#xf…

ESP8266連接網絡實時上傳數據

要實現這個功能,可以按照以下步驟進行編程。我們將使用Arduino IDE來編寫代碼,并結合ESP8266的WiFi庫、MQTT庫以及Web服務器庫來實現。 1. 準備工作 硬件:ESP8266開發板、溫度傳感器(如DS18B20)、顯示屏(如OLED)。軟件:Arduino IDE、ESP8266庫、PubSubClient庫(MQTT)…