1. Kamerák
  2. Autóhifi és elektronika
  3. Otthoni audió
  4. Személyes audió
  5. Televíziók
  6. Okos otthon
  >> Elektronikus Technológia >  >> Személyes audió >> MiniDisc-lejátszók

Hogyan hozhatok létre egy hanghullám -grafikát a generátor használatával?

Nem hozhat létre egy * igazi * hanghullám -grafikát közvetlenül egyetlen generátor funkcióval, ahogyan gondolkodik (mint például a PNG -t generáló Python -funkció). A hanghullámok természetéből adódóan időbeli adatok (nyomásváltozás az idő múlásával). A grafika egy térbeli ábrázolás. A hanghullám -adatok *el kell generálnia *, majd *feldolgozza azokat az adatokat a vizuális ábrázolás létrehozásához *.

Így lehet ezt megtenni a Python használatával, a könyvtárak kihasználásával a hanggeneráláshoz és a kép létrehozásához:

1. Generálja a hanghullám adatait:

Ez a rész létrehozza a hanghullámot képviselő numerikus adatokat. A „numpy” -et a numerikus számításhoz és a „SCIPY” -hez különféle hullámformák előállításához használjuk.

`` `Python

Import Numpy mint NP

Importálja a matplotlib.pyplot -ot PLT -ként

Import scipy.io.wavfile mint wav

A SCIPY.Signal Import Sawtooth -tól, Square

Paraméterek

Frekvencia =440 # Hz (A4 megjegyzés)

időtartam =2 # másodperc

Same_rate =44100 # Hz (standard audio sebesség)

amplitúdó =0,8 # tartsa 1 alatt a vágás elkerülése érdekében

idővektor

t =np.linspace (0, időtartam, int (minta_rate * időtartam), endpoint =hamis)

Válasszon egy hullámformát (szinusz, négyzet, fűrészfog stb.)

#waveform =np.sin (2 * np.pi * frekvencia * t) * amplitúdó # szinuszhullám

#waveform =négyzet (2 * np.pi * frekvencia * t) * amplitúdó # négyzethullám

hullámforma =fűrészfog (2 * np.pi * frekvencia * t) * amplitúdó # fűrésztooth hullám

#Optional:Adj hozzá némi zajt

Zaj =np.random.normal (0, 0,1, len (hullámforma))

hullámforma +=zaj

normalizálja, hogy elkerülje a vágást (fontos az audio kimenethez)

hullámforma =hullámforma / np.max (np.abs (hullámforma))

#Optional:mentés wav fájlként

wav.write ("output.wav", sampe_rate, waveform.astype (np.float32))

`` `

2. Hozzon létre a grafikát:

Ez a rész átveszi a generált hanghullám -adatokat, és a „matplotlib” használatával ábrázolja.

`` `Python

ábrázolja a hullámformát

PLT.figure (FigSize =(10, 4))

Plt.plot (t, hullámforma)

PLT.XLABEL ("Idő (k)")

PLT.YLABEL ("amplitúdó")

Plt.Title ("Sound Waveform")

Plt.grid (igaz)

Plt.Savefig ("sound_wave.png") #save mint png

pult.show ()

`` `

Teljes kód:

`` `Python

Import Numpy mint NP

Importálja a matplotlib.pyplot -ot PLT -ként

Import scipy.io.wavfile mint wav

A SCIPY.Signal Import Sawtooth -tól, Square

Paraméterek

Frekvencia =440 # Hz (A4 megjegyzés)

időtartam =2 # másodperc

Same_rate =44100 # Hz (standard audio sebesség)

amplitúdó =0,8 # tartsa 1 alatt a vágás elkerülése érdekében

idővektor

t =np.linspace (0, időtartam, int (minta_rate * időtartam), endpoint =hamis)

Válasszon egy hullámformát

hullámforma =fűrészfog (2 * np.pi * frekvencia * t) * amplitúdó

#Optional:Adj hozzá némi zajt

Zaj =np.random.normal (0, 0,1, len (hullámforma))

hullámforma +=zaj

normalizálja a vágás elkerülését

hullámforma =hullámforma / np.max (np.abs (hullámforma))

#Optional:mentés wav fájlként

wav.write ("output.wav", sampe_rate, waveform.astype (np.float32))

ábrázolja a hullámformát

PLT.figure (FigSize =(10, 4))

Plt.plot (t, hullámforma)

PLT.XLABEL ("Idő (k)")

PLT.YLABEL ("amplitúdó")

Plt.Title ("Sound Waveform")

Plt.grid (igaz)

Plt.Savefig ("sound_wave.png")

pult.show ()

`` `

Ez a kód:

1. Készítsen egy fűrésztooth -hullámot (ezt könnyedén megváltoztathatja szinuszos, négyzet- vagy más hullámformákra a „scipy.signal” funkciókkal).

2. Opcionálisan adjon hozzá zajt, hogy realisztikusabbá váljon.

3. Normalizálja a hullámformát a vágás megakadályozása érdekében.

4. Opcionálisan mentse el WAV fájlként.

5. Hozzon létre és mentse el a hanghullám amplitúdójának PNG képét az idő múlásával.

Ne felejtse el telepíteni a szükséges könyvtárakat:`numpy`,` matplotlib` és `scipy`. Telepítheti őket a PIP segítségével:`PIP telepítse a numpy matplotlib scipy -t

  1. Hogyan töltheti le a zenét a játékkonzoljára?
  2. Melyik a legjobb márka MP4 lejátszóhoz?
  3. Mi a vészhelyzeti csatorna a binatone terrain 750 walkie talkie számára?
  4. Hol tudok venni Rio mp3 lejátszót?
  5. Mi az a vegyes médiakemez?