顯示具有 DSP 標籤的文章。 顯示所有文章
顯示具有 DSP 標籤的文章。 顯示所有文章

2024年6月23日 星期日

TMS320F28335 開發板

今天在露天看到這塊 DSP 開發板 :


TMS32F28335 是德儀開發的 32 位元 DSP 晶片, 內建 150 MIPS 的 FPU, 提供 12 位元 16 通道 ADC, 具有突出的低功號高效能特性, 廣泛應用於家用生活電子產品, 規格參考 : 


此晶片甚至有出版商出書介紹其用法 :





雖然 IO 介面一應俱全, 但獨獨缺少網路介面. 

2022年2月16日 星期三

二哥的數位信號處理 (DSP) 教科書

二哥下周要開學 (大三下) 有選數位訊號處理, 教授指定課本為 Oppenheim 寫的 2010 第三版, 此書完全是理論, 沒有程式碼實作, 所以雖然是 2010 年的書, 但似乎也不需要改版 : 


此書我在母校有找到, 但封面不一樣, 有可能是國際版與美國版的差異 (內容一樣). 我去年曾網購了一本全華出版, 張元翔教授寫的 DSP 書籍, 但他都出第二版了, 我才看到第二章 :


這本書淺顯易懂, 只要學過 Numpy 與 Scipy 即可輕易實作書本上的理論, 不過二哥他們老師要用 Matlab, 不是 Python, 所以這本只能參考. 用 Matlab 實作在博客來有找到一本具再熙寫的, 2007 年二版, 雖然有點舊了, 但還在賣表示價值不變 (母校有書) :


參考 : 


2021年7月2日 星期五

關於 Kolmogorov–Zurbenko (KZ) 濾波器

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


此濾波器係前蘇聯數學家 A.N. Kolmogorov 與 Igor 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 系列語法格格不入).