13 个版本
0.1.10-alpha.2 | 2024年4月28日 |
---|---|
0.1.10-alpha.1 | 2024年4月21日 |
0.1.6 | 2024年3月27日 |
#2 in #波
每月 112 次下载
105KB
2K SLoC
我开始这个项目是为了在 Rust 编程语言上自我训练。这个库提供了信号处理和分析的工具。它由四个类组成
TimeSeries
TimeSeries
对象描述时间序列数据,它由时间索引的向量组成。
属性
- fs: 采样频率
- t0: 第一个样本的时间
- data: 数据向量
方法
构造方法
- white_noise: 生成具有给定振幅的白噪声信号
- constant: 在给定值上生成恒定信号
- wave: 在 t0 上生成具有给定频率、振幅和相位的正弦信号
- from_vector: 将数据向量转换为
TimeSeries
对象
频谱分析方法
这些方法创建一个 FrequencySeries
对象。
- csd: 交叉谱密度
- psd: 功率谱密度
- asd: 幅度谱密度
- tf: 传递函数
- cohe: 相干性
获取方法
- get_fs: 获取采样频率
- get_t0: 获取起始时间
- get_size: 获取数据向量大小
- get_data: 获取数据向量
数学方法
- abs: 计算数据的模
- sqrt: 计算数据的平方根
- inv: 计算数据的倒数
运算符重载
- (+) 加法
- (-) 减法
- (*) 乘法
- (/) 除法
- ([]) 索引
其他
- apply_filter: 将
Filter
对象应用于时间序列 - print: 打印所选元素(调试函数)
- write: 将时间和数据向量写入 ASCII 文件
FrequencySeries
FrequencySeries
对象描述频率索引的数据。该向量包含复杂数据类型。
属性
- f_max: 采样频率
- data: 数据向量
方法
构造方法
- from_vector: 将数据向量转换为
FrequencySeries
对象。
获取方法
- get_f_max: 获取最大频率
- get_size: 获取数据向量大小
- get_data: 获取数据向量
数学方法
- re: 计算数据的实部
- im: 计算数据的虚部
- abs: 计算数据的模
- abs2: 计算数据的平方模
- conj: 计算数据的复共轭
- sqrt: 计算数据的平方根
- inv: 计算数据的倒数
运算符重载
- (+) 加法
- (-) 减法
- (*) 乘法
- (/) 除法
- ([]) 索引
其他
- print: 打印所选元素(调试函数)
- write: 将时间和数据向量写入 ASCII 文件
Window
属性
- overlap: 两个连续窗口重叠的样本数
- vector: 窗口向量
方法
构造函数
- rectangle
- hann
其他
- nb_fft: 计算窗口数
- get_size: 返回窗口大小
- get_windowed_data: 计算窗口数据
- get_norm_factor: 计算平方窗口的积分
Filter
属性
- gain: 滤波器的增益
- poles: 极点频率列表
- zeros: 零点频率列表
- fs: 采样频率
方法
滤波器应用方法
- bilinear_transform
- adapt_frequencies
- polezero_to_coef
通用滤波器构造函数
- 巴特沃斯
- 切比雪夫类型1
- 切比雪夫类型2
自定义滤波器构造函数
- 初始化滤波器
- 增益因子
- 添加极点1
- 添加极点2
- 添加零点1
- 添加零点2
- 添加积分器
- 添加导数器
获取函数
- 获取极点
- 获取零点
- 获取增益
- 获取采样频率
其他
- 频率响应
依赖项
约4MB
约79K SLoC