C++數字訊號處理演算法庫SP++

syrchina發表於2017-04-06
SP++ (Signal Processing in C++) 是一個關於訊號處理與數值計算的開源C++程式庫,該庫提供了訊號處理與數值計算中常用演算法的C++實現。SP++中所有演算法都以C++類别範本方法實現,以標頭檔案形式組織而成,所以不需要使用者進行本地編譯,只要將相關的標頭檔案包含在專案中即可使用。”XXX.h”表示宣告檔案,”XXX-impl.h”表示對應的實現檔案。所有的函式和類均位於名字空間”splab”中,因此使用SP++時要進行名稱空間宣告:”using namespace splab”。
SP++專案地址:http://code.google.com/p/tspl/,所有演算法以程式碼的形式發表在了“開源中國社群”,部落格地址為:http://my.oschina.net/zmjerry/blog,若有找不到的檔案,可以通過部落格主頁提供的“搜尋部落格”功能進行查詢。
SP++中實現的相關演算法目錄如下:
1 向量類别範本
1.1 基本向量類
1.2 常用數學函式的向量版本
1.3 常用的輔助函式
1.4 簡單計時器
2 矩陣類别範本
2.1 基本矩陣類
2.2 常用數學函式的矩陣版本
2.3 實矩陣與復矩陣的Cholesky分解
2.4 實矩陣與復矩陣的LU分解
2.5 實矩陣與復矩陣的QR分解
2.6 實矩陣與復矩陣的SVD分解
2.7 實矩陣與復矩陣的EVD分解
2.8 矩陣的逆與廣義逆
3 線性方程組
3.1 常規線性方程組
3.2 超定與欠定線性方程組
3.3 病態線性方程組
4 非線性方程與方程組
4.1 非線性方程求根
4.2 非線性方程組求根
4.3 Romberg數值積分
5 插值與擬合
5.1 Newton插值
5.2 三次樣條插值
5.3 最小二乘擬合
6 優化演算法
6.1 一維線搜尋
6.2 最速下降法
6.3 共軛梯度法
6.4 擬Newton法
7 Fourier分析
7.1 2的整次冪FFT演算法
7.2 任意長度FFT演算法
7.3 普通訊號FFT使用方法
7.4 FFTW的C++介面
7.5 卷積與快速實現演算法
8 數字濾波器設計
8.1 常用窗函式
8.2 濾波器基類設計
8.3 FIR數字濾波器設計
8.4 IIR數字濾波器設計
9 隨機訊號處理
9.1 隨機數生成器
9.2 概論統計中的常用函式
9.3 相關與快速實現演算法
10 功率譜估計
10.1 經典譜估計方法
10.2 引數化譜估計方法
10.3 特徵分析譜估計方法
11 自適應濾波器
11.1 Wiener濾波器
11.2 Kalman濾波器
11.3 LMS自適應濾波器
11.4 RLS自適應濾波器
12 時頻分析
12.1 加窗Fourier變換
12.2 離散Gabor變換
12.3 Wigner-Wille分佈
13 小波變換
13.1 連續小波變換
13.2 二進小波變換
13.3 離散小波變換
14 查詢與排序
14.1 二叉查詢樹
14.2 平衡二叉樹
14.3 基本排序演算法
14.4 Huffman編碼

相關文章