2.5 FFT 模块 API 手册#
1. 概述#
FFT(快速傅里叶变换)模块用于对输入的时域数据进行傅里叶变换,将其转换为频域数据并返回相应的频率幅值。通过 FFT 运算,可以有效地将时域信号转换为频域信号,便于分析信号的频率成分。
2. API 介绍#
FFT 模块提供了一个 FFT
类,支持三个主要函数:run()
、freq()
和 amplitude()
,用于分别进行快速傅里叶变换、频率计算及幅值计算。
2.1 类 machine.FFT
#
描述
该类用于创建 FFT 对象,并对输入的数据进行傅里叶变换。
语法
from machine import FFT
import array
# 定义时域数据
data = array.array('i', [1, 2, 3, 4, 5, 6, 7, 8])
# 创建一个 FFT 对象,执行 64 点 FFT 运算,偏移量为 0
fft1 = FFT(data, 64, 0)
参数
参数名称 |
描述 |
类型 |
输入/输出 |
---|---|---|---|
|
输入的时域数据, |
输入 |
|
|
FFT 运算的点数,支持 64、128、256、512、1024、2048 和 4096 点。 |
输入 |
|
|
数据的偏移量,默认为 0。 |
输入 |
返回值
返回值 |
描述 |
---|---|
0 |
操作成功。 |
非 0 |
操作失败。 |
2.1.1 run()
方法#
描述
该函数用于获取经过傅里叶变换后的频域数据。
语法
res = fft1.run()
参数
无
返回值
返回值 |
描述 |
---|---|
|
返回一个包含频域数据的 |
2.1.2 freq()
方法#
描述 该函数用于获取计算后的频率值。
语法
res = FFT.freq(points, sample_rate)
参数
参数名称 |
描述 |
输入/输出 |
---|---|---|
|
参与 FFT 运算的点数。 |
输入 |
|
数据采样率。 |
输入 |
返回值
返回值 |
描述 |
---|---|
|
返回一个列表,包含运算后各频率点的频率值。 |
2.1.3 amplitude()
方法#
描述 该函数用于计算各个频率点的幅值,主要用于测试用途,用户可自行在 Python 中编写更加复杂的幅值处理函数。
语法
amp = FFT.amplitude(FFT_res)
参数
参数名称 |
描述 |
输入/输出 |
---|---|---|
|
函数 |
输入 |
返回值
返回值 |
描述 |
---|---|
|
返回一个列表,包含各个频率点的幅值。 |