滤波接口 更多...
结构体 | |
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 | ||
) |