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

返回一个列表,该列表存放了各个频率点的幅值

【注意】

【举例】

【相关主题】