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 |
返回一个列表,该列表存放了各个频率点的幅值 |
【注意】
无
【举例】
无
【相关主题】
无