跳到主要内容

2.5 FFT API手册

前言

概述

本文档主要介绍canmv中FFT的使用

读者对象

本文档(本指南)主要适用于以下人员:

  • 技术支持工程师
  • 软件开发工程师

缩略词定义

简称说明
FFTFast 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 类型。输入
pointsFFT运算点数,支持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返回一个列表,该列表存放了各个频率点的幅值

【注意】

【举例】

【相关主题】