使用 Python 和 Matplotlib 绘制谱图

2026-02-05 12:01:43 9319

使用 Python 和 Matplotlib 绘制谱图

原文:https://www.geeksforgeeks.org/标绘-a-谱图-使用-python-and-matplotlib/

先决条件:T2【马特洛特利

一个频谱图可以被定义为频率相对于时间的视觉表示,它显示了特定时间的信号强度。简而言之,声谱图只不过是声音的图像。它也被称为声纹或声谱。使用多种颜色显示频谱图,表明信号强度。如果颜色很亮,则意味着信号的能量很高。换句话说,颜色的亮度与声谱图中信号的强度成正比。

光谱图实际上是使用短时傅里叶变换(STFT)创建的。它帮助我们对所提供的信号进行时变分析。反正不要求深入这个话题。主要概念是我们将音频信号分成小块,然后将音频信号绘制在时间图上。

对于该可视化 specgram() 功能与所需参数一起使用。

语法:matplotlib.pyplot.specgram(Data,NFFT =无,Fs =无,Fc =无,detrend =无,window =无,noverlap =无,cmap =无,xextent =无,pad_to =无,sides =无,scale_by_freq =无,mode =无,scale =无,vmin =无,vmax =无, Data =无, * * kwargs)

参数:

数据-这是需要绘制的实际数据序列。

这是一个去故障值为 2 的定标器。

窗口-该参数转换数据段并返回数据段的窗口版本。

边-指定应该显示的光谱边。它可以有三个值,即“默认”、“单侧”和“双侧”。

NFFT-该参数包含用于快速傅立叶变换的每个块中的数据点的数量。

去趋势-此参数包含拟合前应用于每个线段的函数。

该参数允许对返回的频率值进行积分。

模式-这个参数是使用什么样的频谱{ '默认',' psd ','幅度','角度','相位' }。

no overlap-此参数是块之间的重叠点数。

比例-包含规格中值的比例,可以有三个值,即“默认值”、“线性”和“分贝”。

Fc:这个参数是 x 的中心频率。

camp:这个参数是一个 matplotlib.colors.Colormap 实例,它允许我们改变声谱图的颜色。

这些是声谱图的基础。现在,让我们继续使用 python 中的 matplotlib 库绘制摄谱仪。

方法

导入模块

设置时间差以拍摄生成的信号

生成一个值数组

使用参数正确的函数

向绘图添加附加自定义

显示图

示例:

蟒蛇 3

# Importing libraries using import keyword.

import math

import numpy as np

import matplotlib.pyplot as plt

# Set the time diffrence to take picture of

# the the generated signal.

Time_difference = 0.0001

# Generating an array of values

Time_Array = np.linspace(0, 5, math.ceil(5 / Time_difference))

# Actual data array which needs to be plot

Data = 20*(np.sin(3 * np.pi * Time_Array))

# Matplotlib.pyplot.specgram() function to

# generate spectrogram

plt.specgram(Data, Fs=6, cmap="rainbow")

# Set the title of the plot, xlabel and ylabel

# and display using show() function

plt.title('Spectrogram Using matplotlib.pyplot.specgram() Method')

plt.xlabel("DATA")

plt.ylabel("TIME")

plt.show()

输出:

我们一直在努力

apachecn/AiLearning