顯示具有 信號處理 標籤的文章。 顯示所有文章
顯示具有 信號處理 標籤的文章。 顯示所有文章

2022年8月15日 星期一

高科大還書 4 本 (Matlab 數位訊號處理與 R 語言等)

因新借三本書到館, 滿借情況下須至少還三本才能取書 : 
No.4 有人預約, 二哥說已沒在用. R 語言我現在沒時間看也先還. 另外還有一本已有新版書, 等書到再還 :
很努力在看了, 但還書速度還是很慢. 目前借書以 Python 機器學習的較多. 

2021年7月2日 星期五

關於 Kolmogorov–Zurbenko (KZ) 濾波器

今天在一本信號分析的書上看到 Kolmogorov–Zurbenko filter 這種濾波器, 好奇下去查了一些資料, 但除了維基外似乎沒有更詳細的說明, 節譯如下 :


此濾波器係前蘇聯數學家 A.N. KolmogorovIgor Zurbenko 所發展, 兩人都是莫斯科國立大學的數學教授與機率專家. KZ 濾波器的構想源自於他們所做的太平洋亂流 (turbulence) 研究, 他們發現標準的快速傅立葉演算法會受到雜訊與不平穩洋流的干擾而得到不正確結果, 於是發展了 KZ 濾波器演算法.

KZ 濾波器是強固 (robust) 而幾近是最佳化 (optimal) 的演算法, 因為它採用了簡單的移動平均 (moving avaerage, MA) 算法, 在有缺漏資料的環境下, 不論是由於空間稀疏造成的資料缺漏以及有缺漏的多維時間序列, 其處理效能都非常好, 資料缺漏對 KZ 濾波器轉移函數的影響非常微小. 

KZ 濾波器是一個具有平滑效果的低通濾波器, 其演算法主要是利用 m 個奇數長度的移動平均濾波器進行 k 次迭代, 所以它基本上就是一群重複的 MA 濾波器, 由於 KZ 濾波器對這兩個參數有清楚的定義, 所以它很容易被其他不同領域的專家應用於各種場合. 

KZ 濾波器已經實作於一些軟體平台, 例如 R 語言提供了標準的 kz() 與具有自適應特徵的 kza() 等函數可讓使用者方便呼叫, 參考 :


Python 的實作參考 :


只要用 pandas 就可以簡單實作出來, 不過對於自適應 KZ 濾波器而言, 直接用 Python 迴圈實作效能會很差, 底層應該要用 C 實作. 

KZ 濾波器也被實作在 Arduino 上, 參考下面這個稱為 Microsmooth 的函式庫, 它提供了多個信號平滑化的函數 : 


目前還沒時間學, 先記錄一下. 

2020年7月14日 星期二

Python 數位信號處理 (DSP) 的三本好書

最近逛書店發現 Python 已經變成國民程式語言, 書櫃上整整兩列都是 Python 的各類書籍 (主要是入門級與機器學習類), 以前的程式語言王者 Java 新書寥寥可數, 這一切都是拜 AlphaGo 之賜, 才讓 Python 這個老語言鹹魚翻身爆紅, 應用面可說包山包海.

今天在網路上看到兩本用 Python 做數位信號處理的書 (以前大都是用商用版權軟體如 MATLAB), 第一本是歐萊禮出版的 :

Think DSP: Digital Signal Processing in Python (Oreilly, 2016)


Source : 天瓏



書中範例程式碼可在 GitHub 中下載 :

https://github.com/AllenDowney/ThinkDSP

第二本是 Springer 出版的 :

Python for Signal Processing: Featuring IPython Notebooks (Springer, 2014)


Source : 天瓏


此書使用直觀易懂的 Python 程式寫法撰寫範例以便於學生自學, 主要內容包含取樣定理, 離散傅立葉分析, 頻譜分析, 以及有限脈衝響應 (數位) 濾波器等. 我非常認同作者序言中提到的一句話 : 唯一的學習之道就是動手做實驗 ("the only way to learn is to experiment as you go"), 因為我學任何知識技術也都是透過動手做測試.

另外一本是去年我在明儀買的, 也是目前市面上唯一一本用 Python 做 DSP 的好書 (中原資工系張元翔教授寫的) :

# 數位信號處理 Python 程式實作 (全華, 2019)


Source : 誠品


此書雖然不算厚, 但 z 轉換, 卷積, FIR, IIR 等主題都有帶到, 是實用性非常高的一本書. 去年底這本已出第二版, 我想應該賣得不錯 :

數位訊號處理 : Python 程式實作, 2/e (附實作光碟)


Source : 天瓏


此書的範例程式檔下載連結 :

全華數位信號處理 Python 程式實作範例下載 (from Mega)

不過要讀這三本書的前提是必須先有 Python 基礎並熟習這三個 Python 第三方套件 :
  1. Numpy
  2. SciPy
  3. Matplotlib
以前我用 Praat 做實驗語音學分析, 對於 Praat 作者運用數位信號處理技術寫出這麼棒的軟體深感佩服. 當時蒐集了一堆語音辨識論文, 但對於如何實作卻感到很茫然, 後來找到一本楊鎮光寫的書, 裡面有真實的程式碼說明如何處理音訊框, 但這本書用的是 Visual Basic, 為此還花了點時間去學 VB 6. 參考 :

# Visual Basic 與語音辨識 (松崗, 楊鎮光, 2002)


Source : 天瓏


現在改用 Python 來做 DSP, 工具更多更好用了 (事實上我與微軟的 VB 系列語法格格不入).

2020年5月18日 星期一

免費電子書 : Kalman and Bayesian Filters in Python

最近對卡爾曼濾波器很感興趣, 因為在飛航控制的應用非常多. 今天找到很棒的卡爾曼濾波器 Python 實作資料, 是矽谷工程師 "Roger Labbe" 寫的一本如何用  Python 實現卡爾曼濾波器的免費電子書, 下載網址如下 :

Kalman and Bayesian Filters in Python

Roger Labbe 將許多濾波器包含卡爾曼全都寫成 FilterBy 類別, 教學文件如下 :

https://filterpy.readthedocs.io/en/latest/kalman/KalmanFilter.html

程式碼寄存於 GitHub :

https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python

還有人為此書寫下讀書筆記, 參考 :

读书笔记-学习《Kalman-and-Bayesian-Filters-in-Python》

要好好來探索一下 FilterBy 的用法, 數學原理可以慢慢研究沒關係, 希望早點應用到樹莓派無人機的飛行控制上.


2020年5月17日 星期日

卡爾曼濾波器應用之相關論文

前幾天有網友留言說卡爾曼濾波器看來可以應用在股票預測, 我上碩博士論文網站找到民國 100 年以來有如下幾篇金融商管應用相關之論文, 發現股票方面並不如想像的多, 或許民國 100 年以前較多也說不定 (這有意味著甚麼嗎) :

以Kalman濾波器研究股票市場之應用 (無)
使用觀測器 / 卡爾曼濾波器識別法線上預測台灣金融股票
以Kalman濾波器研究股票市場之應用 (無)
金融保險公司之匯率曝險的研究:Kalman Filter模型之應用 (紙本)
本國銀行總要素生產力之衡量─狀態空間KalmanFilter模型

但卡爾曼濾波器在工程應用方面的論文數卻頗可觀, 主要是在定位, 軌跡追蹤, 以及通訊, 電化學方面, 以下是民國 100 年以來之相關論文, 大部分均提供電子檔下載 :

基於卡爾曼濾波器的輔助之四旋翼機建置SLAM地圖 (無)
基於傅立葉轉換和卡爾曼濾波之室內定位機制
以擴展卡爾曼濾波器融合雙眼視覺與慣性里程計於室內定位 
# 採用Kalman Filter 改善以Beacon 佈署的室內展場定位 (20210723)
# 一種適用於移動式無線感測器網路之結合RSSI更新擴展式卡爾曼濾波器定位法 (20230815)
幾何未知轉角偵測結合卡爾曼濾波器演算模式在機動目標追蹤上的應用
基於卡爾曼濾波器與機器學習之低功耗藍芽裝置室內定位準確度強化技術 (無)
聯邦無跡卡爾曼濾波器於雙頻紅外線搜索與追蹤感測器網路之應用研究
整合擴展型卡爾曼濾波器與 PID 控制於智慧型機器人之自主式避障
利用卡爾曼濾波器設計自主穩定四旋翼空拍機 (紙本)
利用卡爾曼濾波器以及結構化支持向量機的追蹤演算法 (20210728)
基於擴增式卡爾曼濾波器的四旋翼無人飛行載具之模糊分散滑動模式軌跡追蹤控制
基於低耗電藍牙裝置使用卡爾曼濾波器與支持向量機之室內定位
應用卡爾曼濾波器與適應性模糊推論系統 於室內定位之研究

這裡面我對機器人與無人空拍機的飛行軌跡控制最有興趣.

有些論文設定數年後才解除下載限制, 我認為可能原因是 :
  1. 指導教授或研究生認為論文具有商業價值, 或者有打算申請專利
  2. 提交論文時預設就是校外不開放
學術的本質是成果宣告與知識交流, 應該不會有人覺得自己論文可能有瑕疵而不想公開吧?