Espectrograma Matplotlib

Espectrograma Matplotlib
Um espectrograma é uma representação gráfica de comprimentos de onda ao longo do tempo que descreve a energia de transmissão em um determinado momento. Em termos simples, um espectrograma é uma representação do som. Também é conhecido como voz ou impressão de voz. Os níveis de sinal são representados por um espectrograma, que é exibido em uma variedade de cores. Se o tom do sinal é brilhante, isso indica que a intensidade do sinal é forte.

Em outros termos, a taxa de amostragem do espectrograma está diretamente relacionada à luminância da cor. A série Fourier de curto tempo é usada para fazer os espectrogramas. Ele realiza uma avaliação simples e variável no tempo da frequência. A idéia principal é quebrar a onda sonora em pequenos pedaços, que são mostrados em uma trama contra a duração. O método Specgram () tem sido usado com os argumentos apropriados para esta representação visual.

Neste artigo, examinaremos em detalhes como desenhar um espectrograma em Python usando o módulo Matplotlib.

Use PLT.Método Specgram ()

Aqui, vamos discutir como utilizar a função PLT.specgram () para desenhar o espectrograma em python.

importar matplotlib.pyplot como plt
importar numpy como np
importação de matemática
Time_diff = 0.0005
Time_arr = np.linspace (1, 6, matemática.teto (6 / time_diff))
D = 30*(NP.pecado (4 * np.pi * time_arr))
plt.specgram (d, fs = 8, cmap = "arco -íris")
plt.título ('Figura 1')
plt.xlabel ("eixo x")
plt.ylabel ("eixo y")
plt.mostrar()

Antes de iniciar o código, temos que introduzir diferentes bibliotecas. Matplotlib.PyPlot é usado para criar visualizações animadas ou estáticas. Numpy Library fornece um grande número de dados quantitativos. E a biblioteca de matemática é utilizada para realizar cálculos matemáticos.

Na etapa subsequente, temos que declarar o intervalo de tempo para tirar a foto do sinal produzido. Agora, inicializamos uma variedade de valores usando a biblioteca Numpy. Aqui, chamamos a função matemática.teto () e o valor da diferença de tempo é fornecido como um parâmetro para esta função.

Além disso, criamos uma nova matriz que contém os pontos de dados reais que queremos ser desenhados. Empregamos o método sin (). Como um parâmetro desta função, multiplicamos os valores 3 e Pi pela matriz já existente. O espectrograma está sendo criado pelo uso do PLT.Método Specgram ().

Dados, frequência e cor do gráfico são passados ​​como um parâmetro desta função. Da mesma forma, definimos o título do eixo x e Y pelo uso do PLT.Função de etiqueta (). No final, representamos o gráfico com a ajuda do PLT.Método Show ().

Desenhe espectrograma com arco -íris esquema de cores

Podemos criar o espectrograma pelo uso do PLT.função specgram (). E aqui podemos especificar o mapa de cores, fornecendo o argumento 'CMAP' para a função PLT.specgram ().

importar matplotlib.pyplot como plt
importar numpy como np
NP.aleatório.semente (9360801)
d_t = 0.0007
time = np.Arange (1.0, 30.0, d_t)
sig1 = np.pecado (5 * np.pi * 150 * tempo)
Sig2 = 1.4 * np.pecado (1.4 * np.pi * 450 * tempo)
Sig2 [tempo <= 11] = sig2[14 <= time] = 0
ruído = 0.8 * np.aleatório.aleatório (tamanho = len (tempo))
a = sig1 + sig2 + ruído
Nfft = 620
Fs = int (2.5 / d_t)
plt.specgram (a, fs = fs, cmap = "arco -íris")
plt.título ('Figura 2',
fontsize = 22, fontwe] OIGH = 'Normal')
plt.mostrar()

Primeiro, importamos nossas bibliotecas necessárias para visualizações gráficas e análise quantitativa. Agora, aplicamos a função aleatória () da biblioteca Numpy para declarar um conjunto de dados aleatório. Especificamos o valor da diferença de tempo. Tomamos uma nova variável e a declaramos com o método de organização () da biblioteca Numpy.

Além disso, integramos dados para dois sinais pelo uso do método sin () da biblioteca Numpy. Criamos uma nova variável para ruído pelo método aleatório (). Aqui, passamos a função size () para encontrar o comprimento do sinal do intervalo de tempo.

Agora, fazemos uma nova variável que armazena os dados do ruído e outros dois sinais. Além disso, definimos o valor para o comprimento do segmento e a frequência de amostragem. A função plt.Specgram () está sendo chamado para desenhar um espectrograma. Esta função contém três parâmetros, incluindo o conjunto de dados do eixo x, frequência de amostragem e cor do mapa.

Pouco antes de exibir o gráfico, especificamos o título do gráfico pelo uso do PLT.Método Title (). Aqui, podemos definir o Fontsize e o peso do título.

Uso de NFFT para desenhar espectrograma

Nesta etapa, criaremos um espectrograma pelo uso do parâmetro NFFT.

Depois de integrar as bibliotecas, precisamos corrigir o estado aleatório pelo uso do método aleatório (). Agora, especificamos a diferença de horário. Aqui, seu valor é 0.0007. Além disso, declaramos o valor do intervalo de tempo usando a função Arranjo () da biblioteca Numpy.

Na próxima etapa, adquirimos os valores de ambas as ondas de sinal com a ajuda da função sin (). Agora, criamos um chirp temporário do segundo sinal. Adicionamos o valor do ruído à mistura usando a função aleatória (). Temos o comprimento da onda de ruído.

Além disso, definimos o valor de NFFT. Ele mantém o número de conjuntos de dados envolvidos em cada bloco. O valor para a frequência de amostragem também é definido. Para criar gráficos, primeiro criamos dois objetos e depois empregamos o PLT.Método Subparcelas (). Aqui, definimos o não. de linhas como um parâmetro.

Além disso, utilizamos o método specgram () para desenhar o espectrograma. Aqui, passamos o valor da sobreposição como um parâmetro. Isso mostra o não. de pontos que se sobrepõem entre pedaços. Finalmente, no final, temos que mostrar o gráfico pelo uso de PLT.show () função.

Conclusão

Explicamos o método para criar um espectrograma no Python. Observamos a utilização do método specgram () para esse tipo de visualização. Podemos especificar o esquema de cores do espectrograma passando 'CMAP' como um parâmetro para a função Specgram (). Além disso, obtemos o espectrograma com um padrão de cor do arco -íris.