2.5 FFT API手册
前言
概述
本文档主要介绍canmv中FFT的使用
读者对象
本文档(本指南)主要适用于以下人员:
- 技术支持工程师
- 软件开发工程师
缩略词定义
简称 | 说明 |
---|---|
FFT | Fast Fourier transform (快速傅里叶变换) |
修订记录
文档版本号 | 修改说明 | 修改者 | 日期 |
---|---|---|---|
V1.0 | 初版 | 软件部 | 2023-10-16 |
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])
fft1 = FFT(data, 64, 0)
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
data | 输入的时域数据,bytearray 类型。 | 输入 |
points | FFT运算点数,支持64、128、256、512、1024、2048和4096点 | 输入 |
shift | 偏移,默认为0 | 输入 |
【返回值】
返回值 | 描述 |
---|---|
0 | 成功 |
非 0 | 失败 |
【注意】
无
【举例】
无
【相关主题】
无
2.1.1 run()
【描述】
获取转换后的数据。
【语法】
res = fft1.run()
【参数】
无
【返回值】
返回值 | 描述 |
---|---|
res | 返回计算后的频域数据,以 list 类型呈现,该列表有 points 个元组,每个元组有 2 个元素,第一个元素为实部,第二个为虚部 |
【注意】
无
【举例】
无
【相关主题】
无
2.1.2 freq()
【描述】
获取转换后的数据。
【语法】
res = FFT.freq(points, sample_rate)
【参数】
参数名称 | 描 述 | 输入/输出 |
---|---|---|
points | 计算点数。 | 输入 |
sample_rate | 采样率 | 输入 |
无 |
【返回值】
返回值 | 描述 |
---|---|
res | 返回一个列表,该列表存放的进行运算后后所有频率点的频率值 |
【注意】
无
【举例】
无
【相关主题】
无
2.1.3 amplitude()
【描述】
用于计算 FFT 运算后的各个频率点的幅值,目前用作测试,用户可以自己在python自行写幅值处理函数
【语法】
amp = FFT.amplitude(FFT_res)
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
FFT_res | 函数 run 运行后的结果。 | 输入 |
【返回值】
返回值 | 描述 |
---|---|
amp | 返回一个列表,该列表存放了各个频率点的幅值 |
【注意】
无
【举例】
无
【相关主题】
无