Gleichung für Chirp-Signal

Hallo,

ich möchte mit einem Simulationsprogramm ein einfaches Chirp-Signal herstellen, also ein Sinussignal, welches mit zunehmender Zeit eine lineare Frequenzänderung erfährt:

s(t)= sin(2*pi*f(t)*t)

mit f(t)= ((f2-f1)/T)*t + f1

f(t) leitet sich aus der Geradengleichung her mit
f1: Startfrequenz
f2: Stopfrequenz
T: Signaldauer

In der Simulation wird mit abgetasteten Werten gearbeitet, weshalb die zeitkontinuierliche Gleichung in eine zeitdiskrete gewandelt werden muss.

n = t/dt also t = n*dt

Bei einer Abtastrate von 48000 kHz ergibt sich

dt= 1/48000 [sec]

Daraus wird dann das Signal:

s(t) = sin(2*pi*(((f2-f1)*n)/(T*48000) + f1)*n/48000)

Soweit die Theorie. Gibt man diese Gleichung aber beispielsweise in MATLAB ein, so wird schnell offensichtlich, dass genau die doppelte Bandbreite des Signals durchfahren wird, als mit f1 und f2 spezifiziert.

Bsp: f1 = 10 kHz, f2 = 12 kHz, T = 10 sec
Anhand einer FFT kann man ein Signal beobachten, welches innerhalb der 10 sec von 10 kHz bis 14 khz durchwobbelt, also die doppelte Bandbreite benutzt als vorgegeben. Man kann das ganze mit dem Korrekturfaktor 2 im Nenner des Bruchs (f2-f1)/(2*T*48000) beheben.

Allerdings ist mir bislang keine Herleitung für diesen Faktor bekannt. Irgendwelche Ideen?

Vielen Dank im Voraus.

Gruß Thomas.

Hallo Thomas,

aufgrund der Tatsache, daß sin(a x) die Frequenz a hat, könnte man vermuten, daß ein frequenzmoduliertes Sinussignal mit Grundfrequenz 1 und schwacher, langsamer Modulation durch die Gleichung

sin((1 + 0.1 sin(0.1 x)) x) [\*]

beschrieben wird, worin der Term 1 + 0.1 sin(0.1 x) die Frequenz des Signals darstellt. Läßt Du Dir jedoch den Graph von [*] sowie den des Frequenzterms plotten, wirst Du eine erstaunliche Feststellung machen.

Offensichtlich ist also 1 + 0.1 sin(0.1 x) nicht die Frequenzkurve von [*]! Andererseits ist unbestreitbar a die Frequenz von sin(a x). Preisfrage: Wie kommt man von a x nach a? Eine Möglichkeit: Durch Anwenden des Operators „1/x *“. Dieser Operator kann aber nicht der richtige sein. Gibt es eine andere „einfache“ Möglichkeit? Ja: d/dx! Und das ist auch der korrekte Operator, sprich:

Das Signal sin(f(x)) hat die Frequenzfunktion f'(x). [\*\*]

Damit ergibt sich die wahre Frequenzfunktion von [*] zu

d/dx ((1 + 0.1 sin(0.1 x)) x)
= 1 + 0.1 (0.1 x cos(0.1 x) + sin(0.1 x))

–> Sofort den Plotter damit füttern und „Aha“ sagen.

Unseren Wunsch nach der Gleichung eines frequenzmodulierten Sinussignals mit schwacher, langsamer Modulation können wir nun via [**] erfolgreich realisieren:

sin(x + sin(0.1 x))

müßte die Frequenz 1 + 0.1 cos(0.1 x) haben, und hat es auch. Was man hier schön sieht, sollte man sich merken: Eine Frequenzmodulation ist „eigentlich“ eine Phasen modulation!

Damit ist jetzt auch der Grund für Deinen Faktor 2 (bzw. 1/2) klar: sin((ax + b) x) hat nicht die Frequenz ax + b, sondern die Frequenz d/dx ((ax + b) x) = 2 ax + b.

Mit freundlichem Gruß
Martin

Hallo Martin,

vielen Dank. Deine Erläuterung war einleuchtend. Hab auch die Formel für die Augenblicksfrequenz in der Phasenmodulation gefunden. Jetzt ist es gut herleitbar.

Gruß Thomas