https://code.google.com/archive/p/tspl/downloads
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 编码
Signal Processing Library in C++
This is a C++ library for Numerical Computation and Signal Processing. All of the algorithms is implemented by C++ template classes, and organized by ".h" files, so you don't need compile them by yourself.
The SP++ is also published at "Open Source China", the blog publishing URL is: http://my.oschina.net/zmjerry/blog.
The algorithms implemented in SP++ are as follow:
1 Vector Class Template
1.1 Basic Vector Class
1.2 Vector Version for Often Used Functions
1.3 Utilities Functions
1.4 A Simple Timer
2 Matrix Class Template
2.1 Basic Matrix Class
2.2 Matrix Version for Often Used Functions
2.3 Cholesky Decomposition for Real and Complex Matrix
2.4 LU Decomposition for Real and Complex Matrix
2.5 QR Decomposition for Real and Complex Matrix
2.6 SVD Decomposition for Real and Complex Matrix
2.7 Eigenvalue Decomposition for Real and Complex Matrix
2.8 Inversion and Pseudoinversion for Real and Complex Matrix
3 System of Linear Equations
3.1 Common Linear Equations
3.2 Undetermined Linear Equations
3.3 Rank Defect Linear Equations
4 Nonlinear Equation and Equations
4.1 Root of Nonlinear Equation
4.2 Root of Nonlinear Equations
4.3 Romberg Numerical Integration
5 Interpolation and Fitting
5.1 Newton Interpolation
5.2 Cubic Spline Interpolation
5.3 Least Squares Fitting
6 Optimization Method
6.1 Line Searching
6.2 Steepest Descent Method
6.3 Conjugate Gradient Method
6.4 BFGS Method
7 Fourier Transform
7.1 FFT for Signal with Length of 2^n
7.2 FFT for Signal with Arbitrary Length
7.3 A Friendly Used Version of FFT
7.4 C++ Interface for FFTW
7.5 Convolution and Its Fast Algorithm
8 Digital Filter Design
8.1 Widow Functions
8.2 Basic Class for Filter Design
8.3 FIR Digital Filter Design
8.4 IIR Digital Filter Design
9 Random Signal Processing
9.1 Random Number Generator
9.2 Often Used Functions for Probability and Statistics
9.3 Correlation and Its Fast Algorithm
10 Power Spectrum Estimation
10.1 Classical Estimation Methods
10.2 Parameter Estimation Methods
10.3 Eigenanalysis Estimation Methods
11 Adaptive Filters
11.1 Wiener Filter
11.2 Kalman Filter
11.3 LMS Adaptive Filters
11.4 RLS Adaptive Filters
12 Time-Frequency Analysis
12.1 Widow Fourier Transform
12.2 Discrete Gabor Transform
12.3 Wigner-Wille Distribution
13 Wavelet Transform
13.1 Continuous Wavelet Transform
13.2 Dyadic Wavelet Transform
13.3 Discrete Wavelet Transform
14 Searching and Sorting
14.1 Binary Search Tree
14.2 AVL Tree
14.3 Basic Sorting Algorithm
14.4 Huffman Code