音频信号的频谱分析实例

这篇具有很好参考价值的文章主要介绍了音频信号的频谱分析实例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在前面的文章 信号频谱分析与功率谱密度 中,我们初步探讨了信号频谱分析的概念,并介绍了其数学工具。本篇文章将结合实例,进一步探讨频谱分析在音频信号处理中的应用。

音频信号的频谱分析是一种将时域中的音频信号转换为频域表示的过程,从而可以观察信号在不同频率上的能量分布。这种分析可以帮助我们理解音频信号的频率成分、谐波结构以及其他特征,对于音频处理、音乐分析、语音识别等应用具有重要意义。

以下是进行音频信号频谱分析的基本步骤:

  1. 采样与预处理:从原始音频信号中进行采样,将连续的音频信号转换为离散的采样点。通常还需要对采样数据进行预处理,如去除直流分量、归一化等。

  2. 窗函数应用:为了在频谱分析中减少频谱泄露问题,通常会将信号分成一小段一小段,并在每一段上应用窗函数。常用的窗函数包括汉明窗、矩形窗等。

  3. 傅里叶变换:对每个窗口内的采样点进行傅里叶变换,将时域信号转换为频域信号。傅里叶变换可以得到信号在不同频率上的振幅和相位信息。

  4. 频谱表示:将得到的频谱数据以图形方式表示,通常使用频谱图显示信号在不同频率上的能量分布。横轴表示频率,纵轴表示振幅或能量。

  5. 谱线解释:分析频谱图中的峰值、谷值、频率分量,了解信号的频率特征,是否存在谐波结构,是否有噪音等。

  6. 功率谱密度计算:从频谱中计算出信号的功率谱密度,表示不同频率范围内的信号功率。功率谱密度图可以更清晰地表示信号在频域上的能量分布。

  7. 降噪与滤波:根据频谱分析的结果,可以进行降噪和滤波操作,去除不需要的频率分量或噪音,提升信号质量。

  8. 特征提取:从频谱图中提取有用的特征,用于后续的音频处理任务,如音乐分类、声音识别等。

常用的工具包括Python中的NumPy、SciPy和Matplotlib库,以及专门用于音频信号处理的Librosa库,它们提供了丰富的函数和方法来进行音频信号的频谱分析和处理。

AudioSet数据集

AudioSet是由Google开发的一个大规模音频数据集,用于各种音频分析任务,如声音识别、音频分类、音频事件检测等。该数据集包含了数千小时的音频剪辑,涵盖了数千种不同的音频事件和环境。

每个音频剪辑都与一个或多个标签相关联,这些标签描述了音频中出现的声音事件或环境。例如,一段音频剪辑可以被标记为"狗叫声"、“车辆行驶声”、"咖啡厅环境声"等。

AudioSet数据集的特点包括:

  1. 大规模:包含数千小时的音频数据,涵盖了丰富多样的声音事件和环境。
  2. 标签丰富:每个音频剪辑都有一个或多个标签,用于描述其中出现的声音事件或环境。
  3. 数据多样性:包括了来自不同国家、地区和环境的音频数据,具有很强的多样性。
  4. 用途广泛:适用于声音识别、音频分类、音频事件检测等多种音频分析任务。

如果想要访问和使用AudioSet数据集,可以前往其官方网站(https://research.google.com/audioset/)进行下载和了解更多信息。请注意,由于数据集的规模较大,可能需要一定的存储空间和计算资源来处理和分析这些数据。

我从中选取了2个进行示例:

  1. WOP Race Truck Driving Off 7.3 Power Stroke Diesel

WOP Race Truck Driving Off

分析这段音频的频谱:

import librosa
import librosa.display
import matplotlib.pyplot as plt
import numpy as np

# Load audio file
audio_path = 'test.wav'
y, sr = librosa.load(audio_path)

# Plot original waveform
plt.figure(figsize=(10, 6))
librosa.display.waveshow(y, sr=sr)
plt.title('Original Waveform')
plt.xlabel('Time')
plt.ylabel('Amplitude')
plt.show()

# Compute and plot spectrogram
D = librosa.amplitude_to_db(librosa.stft(y), ref=np.max)
plt.figure(figsize=(10, 6))
librosa.display.specshow(D, sr=sr, x_axis='time', y_axis='log')
plt.colorbar(format='%+2.0f dB')
plt.title('Spectrogram')
plt.show()

原始波形图:

音频频谱分析,开源,python,算法,python,信号处理

频谱图:

音频频谱分析,开源,python,算法,python,信号处理

可以边听音频边对比频谱图,加油、刹车、再加油,还挺明显的吧。

  1. My first live steps with KORG esx-1 [7umb9yJpkKU]

My first live [7umb9yJpkKU]

与前面一样,分析这段音频的频谱:

音频频谱分析,开源,python,算法,python,信号处理

音频频谱分析,开源,python,算法,python,信号处理

能听出几种声音呢?

公众号 | FunIO
微信搜一搜 “funio”,发现更多精彩内容。
个人博客 | blog.boringhex.top文章来源地址https://www.toymoban.com/news/detail-852835.html

到了这里,关于音频信号的频谱分析实例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 实时频谱-2.2数字信号处理

    数字信号处理 (digital signal processing),是以数字运算方法实现信号变换、滤波、检测、估值、调制解调以及快速算法等处理的一门学科。数字信号处理具有高精度、高可靠性、可程序控制、可时分复用、便于集成化等优点。其应用领域十分广泛。 图 2-3 显示了泰克 RSA 系列中使

    2024年02月06日
    浏览(44)
  • 语音信号处理基础知识之频谱、相位谱、幅度谱、功率谱及语谱图

    一段音频信号在时域上,可以用一个实数向量来表示。这个数组的大小=采样率*音频时长。举个例子:一段采样率为8000,长15.6s的音频在matlab中表示为: 15.6x8000=124800大小的实数向量 下面是利用matlab读取.wav文件和.pcm文件的两种方法 从上图可以看出,音频信号在matlab中就是用一

    2024年02月05日
    浏览(82)
  • 【matlab算法原理详解】离散非周期信号频谱分析的MATLAB算法实现

    1 引言 介绍四种不同类型信号的频谱变化规律中的一种,即离散非周期信号。在从理论上掌握其频谱变化规律的基础上,着重讨论如何应用离散傅里叶变换DFT对其频谱进行分析,针对具体实例,通过MATLAB编程采用FFT算法实现对其频谱的计算,并和理论值比较,作了相应的误差

    2023年04月13日
    浏览(24)
  • 解决使用傅里叶变换开源库fftw分析音频频谱结果与matlab或audacity不一致的问题

    找的一些demo输出结果与实际结果相差巨大,修复后效果如下: 采用一个采样率48000,精度16bit,单通道的46Hz,振幅为32767的正弦波测试(理论上应该得输出一个一模一样的正弦波)。输出如下图,可以看到和matlab或audacity差不多。 fftw测试结果, audacity输出结果: 源码如下:

    2024年02月03日
    浏览(27)
  • 语音信号处理 —— 笔记(一)音频信号处理

      声音的产生 :能量通过声带使其振动产生一股基声音,这个基声音通过声道 ,与声道发生相互作用产生共振声音,基声音与共振声音一起传播出去。 传感器以 某种频率 探测声音的振幅强度以及振动方向,所得到的一系列随时间变化的点。 传感器的探测频率,即为采样

    2023年04月09日
    浏览(38)
  • FPGA 音频信号处理

    第八届集创赛杯赛题目——紫光同创杯 - 全国大学生集成电路创新创业大赛 题目任务要求:采集信号、降噪、识别、视频展示。 硬件:麦克风、扬声器、FPGA(盘古50)、HDMI显示器 软件:紫光同创PDS(用于部署)、anaconda、jupyter(用于部署训练网络) 1.麦克风采集好数据经过

    2024年03月14日
    浏览(41)
  • 音频信号处理库librosa

    参考: 1. librosa官网 2. librosa语音信号处理 3. 语音信号处理库 ——Librosa 4. librosa音频处理教程 5. Python音频信号处理库函数librosa介绍

    2024年02月05日
    浏览(30)
  • MATLAB GUI笔记(十):音频信号处理

    选择Blank GUI,然后更改保存路径 改变字体大小和显示内容 更改字体大小和显示内容 注意:以下代码中的部分变量使用global,是全局变量,这样别的控件callback函数也能调用该变量。 可以更改字体大小和显示内容 查看属性并更改字体大小和显示内容 面板 单选按钮 按钮 静态文

    2024年02月09日
    浏览(35)
  • 【FPGA-DSP】第九期:音频信号处理

    从本文开始将记录一些简单的 音频信号处理算法 在System Generator中的实现方法。本文将介绍如何搭建音频信号的采集与输出模型。 音频信号属于一维信号,一些基本概念如下: 采样频率:根据奈奎斯特采样定理,采样频率Fs应该不低于声音信号中最高频率2倍。常见的音频格

    2024年02月01日
    浏览(39)
  • 【Python 算法】信号处理通过陷波滤波器准确去除工频干扰

    对于一个信号来说通常汇入工频噪声往往是因为交流电产生的电泳,影响了我们信号采集导致信号上存在工频干扰。 那么matlab去除工频干扰可以通过陷波滤波器实现。 在python中通常使用scipy.signal实现信号的处理。 Scipy的信号处理模块(scipy.signal)来创建自定义的陷波滤波器

    2024年02月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包