滤波接口 更多...
结构体 | |
| struct | MoveAverageFilter |
| 滑动均值滤波 更多... | |
| struct | MoveAverageFilters |
| 滑动均值滤波 更多... | |
| struct | RMATRIX |
| 矩阵的结构体声明 更多... | |
| struct | KalmanFilter |
| 卡尔曼滤波 更多... | |
| struct | TIIRCoeff |
| struct | TIIRFilterParams |
| TIIRF的参数定义 更多... | |
| struct | TIIRFilter |
| TIIRF定义 更多... | |
| struct | TIIRFilters |
| TIIRF数组 更多... | |
宏定义 | |
| #define | ONLINEFILTERNUM 10 |
| 滑动均值滤波器数组长度 更多... | |
| #define | MoveAverageFilter_BUF 2000 |
| 滑动均值滤波的缓冲区大小 更多... | |
| #define | MATRIX_MAX 100 |
| 矩阵最大维度 更多... | |
| #define | ARRAY_DIM 50 |
| 这个参数必须大于等于2*MAX_POLE_COUNT,因为一些滤波器的多项式使用2*NumPoles进行定义 更多... | |
类型定义 | |
| typedef struct MoveAverageFilter | MoveAverageFilter |
| 滑动均值滤波 更多... | |
| typedef struct MoveAverageFilters | MoveAverageFilters |
| 滑动均值滤波 更多... | |
| typedef struct RMATRIX | RMATRIX |
| 矩阵的结构体声明 更多... | |
| typedef struct KalmanFilter | KalmanFilter |
| 卡尔曼滤波 更多... | |
| typedef enum TIIRPassTypes | TIIRPassTypes |
| 多种无限脉冲响应滤波器 更多... | |
| typedef struct TIIRCoeff | TIIRCoeff |
| typedef enum TFilterPoly | TFilterPoly |
| 一些可用的滤波器 更多... | |
| typedef struct TIIRFilterParams | TIIRFilterParams |
| TIIRF的参数定义 更多... | |
| typedef struct TIIRFilter | TIIRFilter |
| TIIRF定义 更多... | |
| typedef struct TIIRFilters | TIIRFilters |
| TIIRF数组 更多... | |
枚举 | |
| enum | TIIRPassTypes { iirLPF, iirHPF, iirBPF, iirNOTCH, iirALLPASS } |
| 多种无限脉冲响应滤波器 更多... | |
| enum | TFilterPoly { BUTTERWORTH, GAUSSIAN, BESSEL, ADJUSTABLE, CHEBYSHEV, INVERSE_CHEBY, PAPOULIS, ELLIPTIC, NOT_IIR } |
| 一些可用的滤波器 更多... | |
函数 | |
| void | init_move_average_filter_online (MoveAverageFilter *maf, int buf_num) |
| 创建在线滑动均值滤波器 更多... | |
| double | move_average_filter_online (MoveAverageFilter *maf, double value) |
| void | init_move_average_filter_onlines (MoveAverageFilters *mafs, int buf_num, int _dof) |
| 创建多个在线滑动均值滤波器 更多... | |
| void | move_average_filter_onlines (MoveAverageFilters *mafs, double *value_in, double *value_out, int _dof) |
| void | initKalmanFilter (KalmanFilter *kf, double dt, RMATRIX *A, RMATRIX *C, RMATRIX *Q, RMATRIX *R, RMATRIX *P, RMATRIX *x0) |
| 使用指定的矩阵参数来创建卡尔曼滤波器 更多... | |
| RMATRIX * | KalmanFilter_update (KalmanFilter *kf, RMATRIX *y) |
| 卡尔曼滤波器参数更新 更多... | |
| RMATRIX * | KalmanFilter_update1 (KalmanFilter *kf, RMATRIX *y, RMATRIX *A) |
| 卡尔曼滤波器参数更新 更多... | |
| RMATRIX * | getKalmanFilter_state (KalmanFilter *kf) |
| 获取卡尔曼滤波器的状态 更多... | |
| RMATRIX * | getKalmanFilter_out (KalmanFilter *kf) |
| 获取卡尔曼滤波器的输出 更多... | |
| void | initKalmanFilter_d (KalmanFilter *kf, double dt, double *A, double *C, double *Q, double *R, double *P, double *x0, int m, int n) |
| 使用指定的矩阵参数来创建卡尔曼滤波器 更多... | |
| void | initKalmanFilter_d1 (KalmanFilter *kf, double dt, double **A, double **C, double **Q, double **R, double **P, double *x0, int m, int n) |
| 使用指定的矩阵参数来创建卡尔曼滤波器 更多... | |
| double * | KalmanFilter_update_d (KalmanFilter *kf, double *y, double *filter_state) |
| double * | KalmanFilter_update1_d (KalmanFilter *kf, double *y, double *A, double *filter_state) |
| double * | KalmanFilter_update1_d1 (KalmanFilter *kf, double *y, double **A, double *filter_state) |
| double * | getKalmanFilter_state_d (KalmanFilter *kf, double *state) |
| double * | getKalmanFilter_out_d (KalmanFilter *kf, double *out) |
| double * | getKalmanFilterA (double *A, double dt, int n) |
| double * | getKalmanFilterC (double *C, double dt, int m) |
| double * | getKalmanFilterQ (double *Q, double value, int n) |
| double * | getKalmanFilterR (double *R, double value, int m) |
| double * | getKalmanFilterP (double *P, double value, int n) |
| void | initTIIRFilter (TIIRFilter *iirfiler, TIIRPassTypes types, double cornerFreq, double sampleFreq) |
| double | IIRFilter (TIIRFilter *iirfiler, double Signal) |
| double * | IIRFilterZeroPhase (TIIRFilter *iirfiler, double *Signal_in, double *Signal_out, int n) |
| void | initTIIRFilters (TIIRFilters *iirfilers, TIIRPassTypes types, double cornerFreq, double sampleFreq, int n) |
| void | IIRFilters (TIIRFilters *iirfilers, double *in, double *out) |
滤波接口
| #define ARRAY_DIM 50 |
这个参数必须大于等于2*MAX_POLE_COUNT,因为一些滤波器的多项式使用2*NumPoles进行定义
| #define MATRIX_MAX 100 |
矩阵最大维度
| #define MoveAverageFilter_BUF 2000 |
滑动均值滤波的缓冲区大小
| #define ONLINEFILTERNUM 10 |
滑动均值滤波器数组长度
| typedef struct KalmanFilter KalmanFilter |
卡尔曼滤波
卡尔曼滤波器
| typedef struct MoveAverageFilter MoveAverageFilter |
滑动均值滤波
滑动均值滤波器
| typedef struct MoveAverageFilters MoveAverageFilters |
滑动均值滤波
滑动均值滤波器数组
| typedef enum TFilterPoly TFilterPoly |
一些可用的滤波器
可用滤波器多项式
| typedef struct TIIRFilter TIIRFilter |
TIIRF定义
需要定义滤波类型(高通、低通等等)、截止频率、带宽、增益、滤波器原型、极点数量、通带波纹、阻带衰减、过渡带宽调整系数
| typedef struct TIIRFilterParams TIIRFilterParams |
TIIRF的参数定义
需要定义滤波类型(高通、低通等等)、截止频率、带宽、增益、滤波器原型、极点数量、通带波纹、阻带衰减、过渡带宽调整系数
| typedef struct TIIRFilters TIIRFilters |
TIIRF数组
数组最大容量为是个TIIRF
| typedef enum TIIRPassTypes TIIRPassTypes |
多种无限脉冲响应滤波器
TIIR infinite impulse response
| enum TFilterPoly |
| enum TIIRPassTypes |
| RMATRIX* getKalmanFilter_out | ( | KalmanFilter * | kf | ) |
获取卡尔曼滤波器的输出
| kf | 创建的卡尔曼滤波器 |
| double* getKalmanFilter_out_d | ( | KalmanFilter * | kf, |
| double * | out | ||
| ) |
| RMATRIX* getKalmanFilter_state | ( | KalmanFilter * | kf | ) |
获取卡尔曼滤波器的状态
| kf | 创建的卡尔曼滤波器 |
| double* getKalmanFilter_state_d | ( | KalmanFilter * | kf, |
| double * | state | ||
| ) |
| double* getKalmanFilterA | ( | double * | A, |
| double | dt, | ||
| int | n | ||
| ) |
| double* getKalmanFilterC | ( | double * | C, |
| double | dt, | ||
| int | m | ||
| ) |
| double* getKalmanFilterP | ( | double * | P, |
| double | value, | ||
| int | n | ||
| ) |
| double* getKalmanFilterQ | ( | double * | Q, |
| double | value, | ||
| int | n | ||
| ) |
| double* getKalmanFilterR | ( | double * | R, |
| double | value, | ||
| int | m | ||
| ) |
| double IIRFilter | ( | TIIRFilter * | iirfiler, |
| double | Signal | ||
| ) |
| void IIRFilters | ( | TIIRFilters * | iirfilers, |
| double * | in, | ||
| double * | out | ||
| ) |
| double* IIRFilterZeroPhase | ( | TIIRFilter * | iirfiler, |
| double * | Signal_in, | ||
| double * | Signal_out, | ||
| int | n | ||
| ) |
| void init_move_average_filter_online | ( | MoveAverageFilter * | maf, |
| int | buf_num | ||
| ) |
创建在线滑动均值滤波器
| maf | 滑动均值滤波器 |
| buf_num | 缓存区数量 |
| void init_move_average_filter_onlines | ( | MoveAverageFilters * | mafs, |
| int | buf_num, | ||
| int | _dof | ||
| ) |
创建多个在线滑动均值滤波器
| maf | 滑动均值滤波器数组对象 |
| buf_num | 缓存区数量 |
| void initKalmanFilter | ( | KalmanFilter * | kf, |
| double | dt, | ||
| RMATRIX * | A, | ||
| RMATRIX * | C, | ||
| RMATRIX * | Q, | ||
| RMATRIX * | R, | ||
| RMATRIX * | P, | ||
| RMATRIX * | x0 | ||
| ) |
使用指定的矩阵参数来创建卡尔曼滤波器
| dt | 抽样时间 |
| A | 系统动力学矩阵,尺寸为(n,n) |
| C | 输出矩阵,尺寸为(m,n) |
| Q | 过程噪声的协方差矩阵,尺寸为(n,n) |
| R | 测量噪声的协方差矩阵,尺寸为(m,m) |
| P | 估计误差的协方差矩阵,尺寸为(n,n) |
| x0 | 初始状态,输入尺寸为(n,1) |
| void initKalmanFilter_d | ( | KalmanFilter * | kf, |
| double | dt, | ||
| double * | A, | ||
| double * | C, | ||
| double * | Q, | ||
| double * | R, | ||
| double * | P, | ||
| double * | x0, | ||
| int | m, | ||
| int | n | ||
| ) |
使用指定的矩阵参数来创建卡尔曼滤波器
| dt | 抽样时间 |
| A | 系统动力学矩阵,尺寸为(n,n) |
| C | 输出矩阵,尺寸为(m,n) |
| Q | 过程噪声的协方差矩阵,尺寸为(n,n) |
| R | 测量噪声的协方差矩阵,尺寸为(m,m) |
| P | 估计误差的协方差矩阵,尺寸为(n,n) |
| x0 | 初始状态,输入尺寸为(n,1) |
| m | 输入矩阵尺寸 |
| n | 输入矩阵尺寸 |
| void initKalmanFilter_d1 | ( | KalmanFilter * | kf, |
| double | dt, | ||
| double ** | A, | ||
| double ** | C, | ||
| double ** | Q, | ||
| double ** | R, | ||
| double ** | P, | ||
| double * | x0, | ||
| int | m, | ||
| int | n | ||
| ) |
使用指定的矩阵参数来创建卡尔曼滤波器
| dt | 抽样时间 |
| A | 系统动力学矩阵,尺寸为(n,n) |
| C | 输出矩阵,尺寸为(m,n) |
| Q | 过程噪声的协方差矩阵,尺寸为(n,n) |
| R | 测量噪声的协方差矩阵,尺寸为(m,m) |
| P | 估计误差的协方差矩阵,尺寸为(n,n) |
| x0 | 初始状态,输入尺寸为(n,1) |
| m | 输入矩阵尺寸 |
| n | 输入矩阵尺寸 |
| void initTIIRFilter | ( | TIIRFilter * | iirfiler, |
| TIIRPassTypes | types, | ||
| double | cornerFreq, | ||
| double | sampleFreq | ||
| ) |
| void initTIIRFilters | ( | TIIRFilters * | iirfilers, |
| TIIRPassTypes | types, | ||
| double | cornerFreq, | ||
| double | sampleFreq, | ||
| int | n | ||
| ) |
| RMATRIX* KalmanFilter_update | ( | KalmanFilter * | kf, |
| RMATRIX * | y | ||
| ) |
卡尔曼滤波器参数更新
| kf | 创建的卡尔曼滤波器 |
| y | 测量值 用来修正参数 |
| RMATRIX* KalmanFilter_update1 | ( | KalmanFilter * | kf, |
| RMATRIX * | y, | ||
| RMATRIX * | A | ||
| ) |
卡尔曼滤波器参数更新
| kf | 创建的卡尔曼滤波器 |
| y | 测量值 |
| A |
| double* KalmanFilter_update1_d | ( | KalmanFilter * | kf, |
| double * | y, | ||
| double * | A, | ||
| double * | filter_state | ||
| ) |
| double* KalmanFilter_update1_d1 | ( | KalmanFilter * | kf, |
| double * | y, | ||
| double ** | A, | ||
| double * | filter_state | ||
| ) |
| double* KalmanFilter_update_d | ( | KalmanFilter * | kf, |
| double * | y, | ||
| double * | filter_state | ||
| ) |
| double move_average_filter_online | ( | MoveAverageFilter * | maf, |
| double | value | ||
| ) |
| void move_average_filter_onlines | ( | MoveAverageFilters * | mafs, |
| double * | value_in, | ||
| double * | value_out, | ||
| int | _dof | ||
| ) |