10| 2
|
[项目] 【Arduino 动手做】ESP32显示FFT波以识别音素、音符、节奏 |
布线 ESP32C3 Oled GND Vcc 5v 引脚 7 SDA 和引脚 6 SCL。 声音传感器 GND Vcc 3.3v 引脚 2 傅里叶分析、相位跟踪、滤波和高级信号处理 音频处理:FFT 用于识别音素、音符、和弦和节奏 机器状态监测:FFT 用于监测机器和系统的状况 故障分析:FFT 用于分析机器和系统中的故障 质量控制:FFT 用于对带有 LCD 或 OLED 声音传感器的机器和系统进行质量控制 esp32 在这种情况下,我将它们用于声音。 硬件设置 • 声音传感器:捕获音频信号并将其转换为模拟电压电平。 • ESP32:读取来自声音传感器的模拟信号,对其进行处理,并驱动 OLED 显示屏。 • OLED 显示屏:可视化频谱或其他结果。 ________________________________________ 2. 采样音频 • 声音传感器连接到 ESP32 上的模拟引脚。 • ESP32 以固定的采样率(例如 8 kHz)读取模拟信号。 • 采样数据存储在两个数组中: o vReal:存储信号的实部(实际采样值)。 o vImag:存储虚部(初始化为 0)。 ________________________________________ 3. 快速傅里叶变换 (FFT) • FFT 算法将时域信号 (幅度与时间) 转换为频域 (幅度与频率)。 • fft() 函数执行以下步骤: 1. Bit-Reversal:重新排列输入数据,为 FFT 计算做准备。 2. 蝶形运算:以计算频率分量的方式组合数据。 3. Complex to Magnitude:将复数 FFT 输出转换为幅度值,该值表示每个频率分量的强度。 ________________________________________ 4. 显示结果 • 每个频率区间的幅值使用以下公式计算: • 幅度 = sqrt(vReal * vReal + vImag * vImag); • 量级值映射到条形高度,并以条形图的形式显示在 OLED 屏幕上。 • x 轴表示频率区间,y 轴表示每个频率的幅度。 ________________________________________ 5. 应用 • 音频处理:识别特定频率(例如,音素、音符)。 • 机器监控:检测指示故障或磨损的异常频率。 • 质量控制:确保机器在指定的频率范围内运行。 ________________________________________ 要点 • FFT 将信号从时域转换为频域。 • OLED 显示屏实时可视化频谱。 • ESP32 处理采样、FFT 计算和显示更新。 ________________________________________ 这是使用 ESP32 和 OLED 显示屏分析音频信号或振动的一种简单有效的方法! ![]() |
项目代码
|
【Arduino 动手做】ESP32显示FFT波以识别音素、音符、节奏 项目链接:https://www.youtube.com/watch?v=pwi9sBT3_-E 项目作者:Electricum 项目视频 :https://www.youtube.com/watch?v=pwi9sBT3_-E 项目代码:https://github.com/ukkokalevala/FFTThinBars ![]() ![]() |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed