K210机器听觉—FFT 信号处理

2023-10-29 14:10

本文主要是介绍K210机器听觉—FFT 信号处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

K210机器听觉—FFT 信号处理

  • 使用设备
    • ZTFR开发板
  • 快速傅里叶变换
    • 使用方法
    • 构造函数
    • 使用方法
  • 示例代码

使用设备

ZTFR开发板

在这里插入图片描述

快速傅里叶变换

FFT 即快速傅里叶变换(Fast Fourier Transform),将时域信号转化为频域信号,应用范围非常广,例如消除音频图像噪声。

快速傅里叶变换:百度百科

使用方法

k210 带有硬件 FFT 模块,支持 64 点、 128 点、 256 点以及 512 点的 FFT。

#导入 FFT 模块
import FFT
#输入时域数据(例如音频数据)并进行 FFT 运算
res = FFT.run(data, points, shift)

构造函数


import FFT
FFT1 = FFT.run(data, points, shift)'''FFT 运算模块;【data】输入的时域数据,bytearray 类型; 【points】FFT 运算点数,仅支持 64,128,256 和 512 点;【shift】偏移,默认为 0。返回值 FFT_res: 返回计算后的频域数据,以 list 类型呈现,该列表有 points个元组,每个元组有 2 个元素,第一个元素为实部,第二个为虚部.'''

使用方法

res = FFT.freq(points, sample_rate)'''频率计算; 【points】计算点数; 【sample_rate】采样率;返回值 res : 返回一个列表,该列表存放的进行运算后后所有频率点的频率值;'''
amp = FFT.amplitude(FFT_res)'''计算各个频率点的幅值;返回值 amp: 返回一个列表,该列表存放了各个频率点的幅值'''

示例代码

采集声音并进行FFT运算,将运算后的数据在屏幕上显示为柱状图

from Maix import GPIO, I2S, FFT
import image, lcd, math
from fpioa_manager import fm#FFT参数配置
sample_rate = 38640  #采样率
sample_points = 1024 #音频采样点数
fft_points = 512  #FFT运算点数
hist_x_num = 50 #条形柱数量
x_shift = 0    #频率#lcd初始化
lcd.init()#麦克风初始化
fm.register(20,fm.fpioa.I2S0_IN_D0, force=True)
fm.register(19,fm.fpioa.I2S0_WS, force=True)
fm.register(18,fm.fpioa.I2S0_SCLK, force=True)rx = I2S(I2S.DEVICE_0)
rx.channel_config(rx.CHANNEL_0, rx.RECEIVER, align_mode = I2S.STANDARD_MODE)
rx.set_sample_rate(sample_rate)#设置LCD条形柱显示宽度
if hist_x_num > 320:hist_x_num = 320
hist_width = int(320 / hist_x_num) #changeable#新建一张图片
img = image.Image()while True:audio = rx.record(sample_points)   #采集音频fft_res = FFT.run(audio.to_bytes(),fft_points) #FFT运算fft_amp = FFT.amplitude(fft_res) #计算频谱幅值img = img.clear()x_shift = 0#计算幅值,最大为240(LCD高为240像素)for i in range(hist_x_num):if fft_amp[i] > 240:hist_height = 240else:hist_height = fft_amp[i]#计算要显示的图像,矩形实心显示。img = img.draw_rectangle((x_shift,240-hist_height,hist_width,hist_height),[255,255,255],2,True)x_shift = x_shift + hist_widthlcd.display(img) #LCD显示fft_amp.clear()  #幅度值清0

效果
在这里插入图片描述

这篇关于K210机器听觉—FFT 信号处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/301169

相关文章

Go信号处理如何优雅地关闭你的应用

《Go信号处理如何优雅地关闭你的应用》Go中的优雅关闭机制使得在应用程序接收到终止信号时,能够进行平滑的资源清理,通过使用context来管理goroutine的生命周期,结合signal... 目录1. 什么是信号处理?2. 如何优雅地关闭 Go 应用?3. 代码实现3.1 基本的信号捕获和优雅关闭3.2

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

【机器学习】高斯网络的基本概念和应用领域

引言 高斯网络(Gaussian Network)通常指的是一个概率图模型,其中所有的随机变量(或节点)都遵循高斯分布 文章目录 引言一、高斯网络(Gaussian Network)1.1 高斯过程(Gaussian Process)1.2 高斯混合模型(Gaussian Mixture Model)1.3 应用1.4 总结 二、高斯网络的应用2.1 机器学习2.2 统计学2.3

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

1️⃣线性回归(linear regression) f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b​(x)=wx+b 🎈A linear regression model predicting house prices: 如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^

【机器学习-一-基础概念篇】

机器学习 定义分类算法 应用 定义 机器学习最早是被Arthur Samuel 提出的一个概念,指计算机无需明确编程即可学习的研究领域。1950年他发明的跳棋程序,这个人机对弈游戏让他的声名鹊起,机器学习这个概念才进入大众的是视线。 在这个跳棋程序里,他编程了一种算法,这个程序与Arthur下了数万次跳棋,计算机逐渐学会了下在哪里有更大的可能会赢得比赛,哪里会输,通过这种方法,最

机器学习之监督学习(三)神经网络

机器学习之监督学习(三)神经网络基础 0. 文章传送1. 深度学习 Deep Learning深度学习的关键特点深度学习VS传统机器学习 2. 生物神经网络 Biological Neural Network3. 神经网络模型基本结构模块一:TensorFlow搭建神经网络 4. 反向传播梯度下降 Back Propagation Gradient Descent模块二:激活函数 activ

参会邀请 | 第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)

第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)将于2024年9月13日-15日在中国张家口召开。 MVIPIT 2024聚焦机器视觉、图像处理与影像技术,旨在为专家、学者和研究人员提供一个国际平台,分享研究成果,讨论问题和挑战,探索前沿技术。诚邀高校、科研院所、企业等有关方面的专家学者参加会议。 9月13日(周五):签到日 9月14日(周六):会议日 9月15日(周日

线性代数|机器学习-P35距离矩阵和普鲁克问题

文章目录 1. 距离矩阵2. 正交普鲁克问题3. 实例说明 1. 距离矩阵 假设有三个点 x 1 , x 2 , x 3 x_1,x_2,x_3 x1​,x2​,x3​,三个点距离如下: ∣ ∣ x 1 − x 2 ∣ ∣ 2 = 1 , ∣ ∣ x 2 − x 3 ∣ ∣ 2 = 1 , ∣ ∣ x 1 − x 3 ∣ ∣ 2 = 6 \begin{equation} ||x