Forum: Digitale Signalverarbeitung / DSP / Machine Learning Amplitudenmodulation in C++


von ka (Gast)


Lesenswert?

Guten Morgen allerseits,

ich beschäftige mich gerade mit der Amplitudenmodulation und möchte ein 
bestehendes Signal modulieren.

Hier mein bestehendes Signal
1
#define AMPLITUDE 1.0
2
#define SAMPLERATE 8000
3
#define PERIODE 1/SAMPLERATE
4
5
int genSignal(double* pSig, double freq)
6
{
7
    for(int i =  0; i < MAX_SIZE; i++)
8
    {
9
        //freq in diesem Beispiel = 2200Hz
10
        pSig[i] = AMPLITUDE * sin(2*M_PI*(double)freq*i*PERIODE)
11
    }
12
    return i;
13
}

Dieses Signal soll jetzt amplitudenmoduliert werden.
Ich habe für die AM folgende Formel.
Wenn ich das richtig verstanden habe ist Uc die Amplitude meines 
bestehenden Signals und Uc*sin(wc*t) mein bestehendes Signal welches 
oben erzeugt wurde.
Mein Problem ist nun wie komme ich an die Werte Um und wm?

: Verschoben durch Admin
von Thomas (Gast)


Lesenswert?

> Wenn ich das richtig verstanden habe ist Uc die Amplitude meines
> bestehenden Signals und Uc*sin(wc*t) mein bestehendes Signal welches
> oben erzeugt wurde.
Falsch.
Uc ist die Amplitude des Trägersignals.
Uc*sin(wc*t) ist das Trägersignal.

> Mein Problem ist nun wie komme ich an die Werte Um und wm?
Das hast du beides bereits:
Um ist die Amplitude, und wm die Kreisfrequenz deines Nutzsignals.
Was du suchst sind Uc und wc.
Mit Uc stellst du den Modulationsgrad ein, und mit wm die Frequenz des 
Trägers.
Am besten, du machst dich einfach nochmal schlau:
http://de.wikipedia.org/wiki/Amplitudenmodulation

Zum besseren Verständnis empfiehlt es sich damit mal unter Matlab oder 
SCILAB zu experimentieren und die Ergebnisse zu plotten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.