音频特征(2):时域图、频谱图、语谱图(时频谱图)

本文深入探讨了信号处理中的时域与时频域的概念及其相互转换,包括时域波形与频域谱线的区别,以及如何利用傅里叶变换揭示信号的频率特性。

傅里叶变换的典型用途是将信号分解成频率谱——显示与频率对应的幅值大小

时域和频域

1. 概述

(1)什么是信号的时域和频域?
时域和频域是信号的基本性质,用来分析信号的 不同角度 称为 ,一般来说,时域的表示较为形象与直观频域分析则更为简练,剖析问题更为深刻和方便。目前,信号分析的趋势是从时域向频域发展。然而,它们是互相联系,缺一不可,相辅相成的。
(2)时频域的关系是什么?
时域分析与频域分析是对模拟信号的两个观察面。对信号进行时域分析时,有时一些信号的时域参数相同,但并不能说明信号就完全相同。因为信号不仅随时间变化,还与频率、相位等信息有关,这就需要进一步分析信号的频率结构,并在频率域中对信号进行描述。动态信号从时间域变换到频率域主要通过傅立叶级数和傅立叶变换实现。周期信号的变换采用傅立叶级数,非周期信号的变换采用傅立叶变换
(3)信号的时域和频域表达方式各有什么特点?

我们描述信号的方式有时域和频域两种方式,时域是描述数学函数或物理信号对时间的关系,而频域是描述信号在频率方面特性时用到的一种坐标系,简单来说,横坐标一个是时间,一个是频率。
一般正弦信号可由幅值、频率、相位三个基本特征值就可以唯一确定。但对于两个形状相似的非正弦波形,从时域角度,很难看出两个信号之间的本质区别,这就需要用到频域表达方式。

小结

  • 时域:自变量是时间,即横轴是时间,纵轴是信号的变化(振幅)。其动态信号 x ( t ) x(t) x(t)是描述信号在不同时刻取值的函数。
  • 频域:自变量是频率,即横轴是频率,纵轴是该频率信号的幅度(振幅),就是指的信号电压大小,也就是通常说的频谱图

2.(时域)波形和频域:用几张对比图来区分

2.1 时域和频域

  • 时域 vs 频域
    在这里插入图片描述
  • 时域波形、频域谱线
    在这里插入图片描述

时域图:表现的是一段音频在一段时间内音量的变化,其横轴是时间方向,纵轴是振幅方向。

波形实质上是将各个频率的波形叠加在了一起(波形是由各频率不同幅值和相位的简单正弦波复合叠加得到的。)

频谱图:表现的是一段音频在某一时刻各个频率的音量的高低,其横轴是频率方向,纵轴为振幅方向。

将复合波形进行傅里叶变换,拆解还原成每个频率单一的正弦波构成,相当于把二维的波形图往纸面方向拉伸,变成了三维的立体模型,而拉伸方向上的那根轴叫频率,现在从小到大每个频率点上都对应着一条不同幅值和相位的正弦波

频谱则是在这个立体模型的频率轴方向上进行切片,丢去时间轴(即在每个时刻都可以拿刀在与时间轴垂直的方向上进行切片),形成以横坐标为频率,纵坐标为幅值的频谱图,表示的是一个静态的时间点上各频率正弦波的幅值大小的分布状况。
再说的直白一点,频谱就是为了找出一个波是由多少波复合而成的!

关于为什么是正弦波,可以查看之前的文章:从本质(信号分析角度)理解卷积

从下面的频谱图中可以得出这样的结论:

  • 原始波由三个正弦波叠加而成;
  • 横轴为这些正弦波分量的频率,纵轴为这些正弦波分量的振幅。
    在这里插入图片描述

2.2 区分:时频谱图(语谱图)

语谱图:先将语音信号作傅里叶变换,然后以横轴为时间,纵轴为频率,用颜色表示幅值即可绘制出语谱图。在一幅图中表示信号的频率、幅度随时间的变化,故也称“时频图”。

在这里插入图片描述
如下面两张图分别为数字0-10的波形图和语谱图

  • (1)数字0-10的波形图:
    在这里插入图片描述
  • (2)数字0-10的语谱图:

在这里插入图片描述

附:

  1. 频宽、带宽、频带?
    频带(frequency band):对信号而言,频带就是信号包含的最高频率与最低频率这之间的频率范围(当然频率分量必须大于一定的值)。对信道而言,频带就是允许传送的信号的最高频率与允许传送的信号的最低频率这之间的频率范围(当然要考虑衰减必须在一定范围内)
    频带宽度(band width):简称带宽,有时称必要宽度,指为保证某种发射信息的速率和质量所需占用的频带宽度容许值,以赫(Hz)、千赫(KHz)、兆赫(MHz)表示。
    注意区分:网络带宽,是指在单位时间能传输的数据量,亦即数据传输率
  2. 宽带和窄带?
    “窄”和“宽”是一个相对概念,并无严格数字界限,相对于什么呢?是指信道特性相对于信号特性。第一,什么叫宽带信号,“有待传输的信号”我们称为信源,信源是具备一定的频谱特征的。信源信号通常需要一个载波信号来调制它,才能发送到远方。信源信号带宽远小于载波中心频率的是窄带信号,反之,二者大小可比拟的称为宽带信号。
    第二,实际通信中,分配给你的频带资源+真实的传播环境, 我们称之为信道。信道也具备一定的频谱特征。通常情况下,分配到的频带资源越宽,传播环境越稳定,信道能够承载的数据速率就越高。

更多参考:音色与声谱图——很详细的介绍

参考:

  1. 如何理解 图像傅里叶变换的频谱图

  2. 频域(频谱)图和时域图横纵坐标及分析

  3. 声音的波形和频谱是什么?它们两者有什么联系?

  4. 语音信号语谱图分析

  5. 什么是信号的时域和频域?——比较精练的总结

  6. 信号频域分析方法的理解(频谱、能量谱、功率谱、倒频谱、小波分析) - Mr.括号的文章 - 知乎——比较全面的介绍

  7. Matlab 语谱图(时频图)绘制与分析

### 频谱图技术原理 频谱图是一种可视化信号频率成分随时间变化的表示方法,通常用于分析非平稳信号(如音频、语音、机械振动等)。其基本原理是通过短时傅里叶变换(Short-Time Fourier Transform, STFT)将时域信号转换为时频域表示。具体来说,信号被分割成多个小的时间窗口,每个窗口内进行傅里叶变换以提取频率信息,最终形成一个二维图像,其中横轴表示时间,纵轴表示频率,颜色或灰度表示能量强度[^1]。 在深度学习中,频谱图常被用作音频信号的输入特征,例如梅尔频谱图(Mel Spectrogram),它基于人耳听觉特性对频率进行非线性映射,能够更好地捕捉语音和音乐中的感知信息。此外,扩散模型(Diffusion Models)等生成模型也被用于从图像特征反向生成频谱数据,从而合成音频信号[^1]。 ### 应用场景 频谱图广泛应用于多个领域: - **语音识别与合成**:在自动语音识别(ASR)系统中,频谱图作为输入特征帮助模型理解语音内容;在文本到语音(TTS)系统中,频谱图用于生成自然语音波形。 - **音频分类与检测**:例如音乐流派分类、环境声音识别、异常声音检测等任务依赖频谱图来提取音频的时频特征。 - **生物医学信号处理**:脑电图(EEG)、心电图(ECG)等信号的频谱图可用于分析生理状态,辅助诊断疾病。 - **雷达与通信系统**:频谱图用于分析信号传播特性,优化无线通信性能。 - **音频编辑与增强**:在降噪、语音分离、音高变换等任务中,频谱图提供了可操作的时频表示[^1]。 ### 生成方法 频谱图的生成方法主要包括传统信号处理方法和基于深度学习的方法: #### 传统方法 使用短时傅里叶变换(STFT)或连续小波变换(CWT)可以生成频谱图。以下是一个使用Python和`librosa`库生成梅尔频谱图的示例代码: ```python import librosa import librosa.display import matplotlib.pyplot as plt import numpy as np # 加载音频文件 audio_path = 'example.wav' y, sr = librosa.load(audio_path) # 计算梅尔频谱图 S = librosa.feature.melspectrogram(y=y, sr=sr, n_mels=128) # 转换为对数尺度 log_S = librosa.power_to_db(S, ref=np.max) # 可视化 plt.figure(figsize=(10, 4)) librosa.display.specshow(log_S, sr=sr, x_axis='time', y_axis='mel') plt.colorbar(format='%+2.0f dB') plt.title('Mel spectrogram') plt.tight_layout() plt.show() ``` #### 深度学习方法 近年来,深度学习技术也被用于频谱图的生成和重构。例如,在图像到音频的跨模态生成任务中,可以通过卷积神经网络(CNN)将图像特征映射为频谱图,并结合逆梅尔缩放(Inverse Mel Scale)恢复音频信号。以下是一个简化的实现思路: ```python import torch import torch.nn.functional as F import torchaudio def generate_spectrogram_from_image_features(features): # 假设features是图像编码器输出的特征向量 spectrogram = F.relu(features.unsqueeze(0)) # 扩展维度并应用激活函数 return spectrogram def convert_spectrogram_to_audio(spectrogram): # 使用torchaudio将频谱图转为音频 audio = torchaudio.transforms.InverseMelScale()(spectrogram) return audio.squeeze().cpu() # 示例调用 image_features = torch.randn(512) # 假设这是从图像中提取的特征 spec = generate_spectrogram_from_image_features(image_features) audio = convert_spectrogram_to_audio(spec) torchaudio.save("generated_audio.wav", audio, 16000) ``` 上述方法展示了如何利用深度学习模型将图像特征直接映射为频谱图,并进一步转换为音频信号。这种方法在多模态生成任务中具有广泛应用前景,例如图像驱动的语音合成、视频配音等。 ---
评论 17
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值