2.5 FFT API手册#

cover

版权所有©2023北京嘉楠捷思信息技术有限公司

免责声明#

您购买的产品、服务或特性等应受北京嘉楠捷思信息技术有限公司(“本公司”,下同)及其关联公司的商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,本公司不对本文档的任何陈述、信息、内容的正确性、可靠性、完整性、适销性、符合特定目的和不侵权提供任何明示或默示的声明或保证。除非另有约定,本文档仅作为使用指导参考。

由于产品版本升级或其他原因,本文档内容将可能在未经任何通知的情况下,不定期进行更新或修改。

商标声明#

logo、“嘉楠”和其他嘉楠商标均为北京嘉楠捷思信息技术有限公司及其关联公司的商标。本文档可能提及的其他所有商标或注册商标,由各自的所有人拥有。

版权所有 © 2023北京嘉楠捷思信息技术有限公司。保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

目录#

[TOC]

前言#

概述#

本文档主要介绍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

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

【注意】

【举例】

【相关主题】