Matplotlib spektrogram

Matplotlib spektrogram
Et spektrogram er en grafisk fremstilling av bølgelengder langs tid som skildrer overføringskraft på et gitt tidspunkt. Enkelt sagt er et spektrogram en representasjon av lyd. Det er også kjent som Voicegrams eller VoicePrint. Signalnivåene er representert med et spektrogram, som vises i en rekke farger. Hvis signalets fargetone er lyst, indikerer dette at signalets intensitet er sterk.

I andre termer er spektrogrammets prøvetakingshastighet direkte relatert til fargenes luminans. Kortid Fourier-serie brukes til å lage spektrogrammer. Den utfører en enkel tidsvarierende evaluering av frekvensen. Den primære ideen er å dele ned lydbølgen i små biter, som deretter vises på et komplott mot varighet. Spekteret () -metoden har blitt brukt med passende argumenter for denne visuelle representasjonen.

I denne artikkelen ser vi i detalj på hvordan du tegner et spektrogram i Python ved å bruke Matplotlib -modulen.

Bruk PLT.specram () -metode

Her skal vi diskutere hvordan vi kan bruke funksjonen PLT.Spekter () for å tegne spektrogrammet i Python.

Importer matplotlib.Pyplot som Plt
Importer numpy som NP
Importer matematikk
Time_diff = 0.0005
TIME_ARR = NP.Linspace (1, 6, matematikk.Ceil (6 / time_diff))
D = 30*(NP.Synd (4 * NP.pi * time_arr))
plt.specram (D, FS = 8, CMAP = "Rainbow")
plt.tittel ('Figur 1')
plt.Xlabel ("X-Axis")
plt.Ylabel ("Y-Axis")
plt.forestilling()

Før vi starter koden, må vi introdusere forskjellige biblioteker. Matplotlib.Pyplot brukes til å lage animerte eller statiske visualiseringer. Numpy Library gir et stort antall kvantitative data. Og matematikkbiblioteket brukes til å utføre matematiske beregninger.

I det påfølgende trinnet må vi oppgi tidsintervallet for å ta bildet av det produserte signalet. Nå initialiserer vi en rekke verdier ved å bruke Numpy -biblioteket. Her kaller vi funksjonsmatematikken.Ceil () og verdien av tidsforskjell er gitt som en parameter for denne funksjonen.

Videre lager vi en ny matrise som inneholder de faktiske datapunktene som vi ønsker å bli trukket. Vi bruker SIN () -metoden. Som en parameter for denne funksjonen multipliserer vi 3 og PI -verdiene med den allerede eksisterende matrisen. Spektrogrammet blir opprettet ved bruk av PLT.specram () -metode.

Data, frekvens og farge på plottet sendes som en parameter for denne funksjonen. Tilsvarende satte vi tittelen på x-aksen og y-aksen ved bruk av PLT.etikett () funksjon. Til slutt representerer vi grafen ved hjelp av PLT.Show () Metode.

Tegn spektrogram med regnbuefargevalg

Vi kan lage spektrogrammet ved bruk av PLT.specram () -funksjon. Og her kan vi spesifisere fargekartet ved å gi "CMAP" -argumentet til funksjonen PLT.specram ().

Importer matplotlib.Pyplot som Plt
Importer numpy som NP
np.tilfeldig.frø (9360801)
d_t = 0.0007
Tid = NP.Arange (1.0, 30.0, d_t)
SIG1 = NP.Sin (5 * NP.pi * 150 * tid)
Sig2 = 1.4 * np.Synd (1.4 * np.pi * 450 * tid)
Sig2 [tid <= 11] = sig2[14 <= time] = 0
støy = 0.8 * np.tilfeldig.tilfeldig (størrelse = len (tid))
a = sig1 + sig2 + støy
NFFT = 620
FS = int (2.5 / d_t)
plt.specram (A, FS = FS, CMAP = "Rainbow")
plt.Tittel ('Figur 2',
FontSize = 22, fontwe] ight = 'normal')
plt.forestilling()

Først importerer vi bibliotekene våre som kreves for grafiske visualiseringer og kvantitativ analyse. Nå bruker vi den tilfeldige () funksjonen til det numpy biblioteket for å erklære et tilfeldig datasett. Vi spesifiserer verdien av tidsforskjellen. Vi tar en ny variabel og erklærer den med Arranger () -metoden til Numpy Library.

Videre integrerer vi data for to signaler ved bruk av SIN () -metoden til Numpy Library. Vi lager en ny variabel for støy etter den tilfeldige () metoden. Her passerer vi størrelsen () -funksjonen for å finne lengden på signalet fra tidsintervallet.

Nå lager vi en ny variabel som lagrer data om støy og andre to signaler. I tillegg til dette, definerer vi verdien for lengden på segmentet og prøvetakingsfrekvensen. Funksjonen plt.Spekter () blir kalt for å tegne et spektrogram. Denne funksjonen inneholder tre parametere inkludert datasettet til x-aksen, prøvetakingsfrekvens og farge på kartet.

Rett før vi viser grafen, spesifiserer vi tittelen for grafen ved bruk av PLT.Tittel () Metode. Her kan vi sette FontSize og Fontweight of the Title.

Bruk av NFFT for å tegne spektrogram

I dette trinnet vil vi lage et spektrogram ved bruk av NFFT -parameteren.

Etter å ha integrert bibliotekene, må vi fikse den tilfeldige tilstanden ved bruk av den tilfeldige () metoden. Nå spesifiserer vi tidsforskjellen. Her er verdien 0.0007. Videre erklærer vi verdien av tidsintervall ved å bruke Arrange () -funksjonen til Numpy Library.

I neste trinn tilegner vi oss verdiene til begge signalbølger ved hjelp av SIN () -funksjonen. Nå lager vi en midlertidig kvitring av det andre signalet. Vi legger til verdien av støy i blandingen ved å bruke den tilfeldige () funksjonen. Vi får lengden på støybølgen.

Videre setter vi verdien av NFFT. Den har antall datasett som er involvert i hver blokk. Verdien for prøvetakingsfrekvensen er også definert. For å lage grafer lager vi først to objekter og deretter bruker vi PLT.Subplots () -metode. Her setter vi nei. av rader som en parameter.

I tillegg til dette bruker vi Specrogram () -metoden for å tegne spektrogrammet. Her passerte vi verdien av overlapping som en parameter. Dette viser nei. av punkter som overlapper mellom biter. Til slutt til slutt, må vi vise grafen ved bruk av PLT.show () funksjon.

Konklusjon

Vi har forklart metoden for å lage et spektrogram i Python. Vi observerer bruken av specram () -metoden for denne typen visualisering. Vi kan spesifisere fargeskjemaet til spektrogrammet ved å passere 'CMAP' som en parameter til SpecGram () -funksjonen. Videre oppnår vi spektrogrammet med et regnbuefargemønster.