Wolfram Language

Verarbeitung von Audioelementen

AM-Signale

Beginnen Sie mit einem bandbegrenzten Signal.

In[1]:=
Click for copyable input
a = BandpassFilter[ AudioNormalize@ AudioResample[Import["ExampleData/rule30.wav"], 96000], {Quantity[ 10, "Hertz"], Quantity[5000, "Hertz"]}, 201]
Out[1]=
In[2]:=
Click for copyable input
Periodogram[a, 2000, ImageSize -> Small, PlotRange -> {{0, 10000}, All}]
Out[2]=

Modulieren Sie die Amplitude mit einem Sinusoid der Frequenz 22050 Hz, um den Inhalt an das obere Spektrumsende zu verschieben. Das Resultat sollte für die meisten Menschen bereits nicht mehr hörbar sein.

In[3]:=
Click for copyable input
amsignal = ((.5 + a) AudioGenerator[{"Sin", Quantity[22050, "Hertz"]}, Duration@a])/2
Out[3]=
In[4]:=
Click for copyable input
Periodogram[amsignal, 2200, ImageSize -> Small]
Out[4]=

Demodulieren Sie das AM-Signal, indem Sie das Ergebnis mit einem weiteren Sinusiod mit Frequenz 22050 Hz und derselben Phase multiplizieren.

In[5]:=
Click for copyable input
result = BandpassFilter[ amsignal*AudioGenerator[{"Sin", Quantity[22050, "Hertz"]}, Duration@amsignal], {Quantity[100, "Hertz"], Quantity[5000, "Hertz"]}, 201]
Out[5]=

Verwenden Sie nun einen nichtlinearen Filter, um ein AM-Signal zu demodulieren.

In[6]:=
Click for copyable input
BandpassFilter[# - Mean@# &@ MaxFilter[amsignal, 4], {Quantity[100, "Hertz"], Quantity[5000, "Hertz"]}, 201]
Out[6]=

Verwandte Beispiele

en es fr ja ko pt-br ru zh