FFT eines AM-modulierten Signals
Ich erzeuge eine AM-modulierte Sinuswelle. Die Trägerfrequenz ist auf eingestellt$1000 \ \rm Hz$;; Die Modulationsfrequenz ist auf eingestellt$40 \ \rm Hz$ und $100 \%$ der Amplitude wird moduliert.
Ich habe 2 Signale mit 2 leicht unterschiedlichen Gleichungen erzeugt.
- Signal 1 folgt: $$\sin(2\pi f_m t) \cdot \sin(2\pi f_c t)$$
- während Signal 2 folgt: $$\big(1-\sin(2\pi f_m t)\big) \cdot \sin(2\pi f_c t)$$
Ich verstehe nicht, warum das erste Signal keine hat $1 \ \rm kHz$ Komponente auf der FFT und warum beide Signale nicht die gleiche Periode haben.
Beide $\sin(x)$ und $1-\sin(x)$haben die gleiche Periode, und ich kann sehen, dass Signal 1 die Amplituden-Sinus- und die Träger-Sinus-Phase in Phase hat, aber ich kann mich nicht um diese Diagramme kümmern und sie richtig interpretieren. Vielen Dank für alle Informationen und Erklärungen, die Sie zur Verfügung stellen können :)
Code-Snippet zur Erzeugung der 2 Signale:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from matplotlib import pyplot as plt
import numpy as np
import os
#%% Signal 1
fs = 44100 # sampling rate, Hz, must be integer
duration = 1.0 # in seconds, may be float
# Define the time series
t = np.linspace(0, duration, int(duration*fs), endpoint=False) # time variable
# AM - Amplitude Modulation
fm = 40 # Modulation frequency
amplitude = np.sin(2*np.pi*fm*t)
# Output signal
fc = 1000 # Carrier frequency
signal1 = amplitude * np.sin(2*np.pi*fc*t).astype(np.float32)
# Apply FFT
fft_freq1 = np.fft.rfftfreq(signal1.shape[0], 1.0/44100)
fft1 = np.abs(np.fft.rfft(signal1))
#%% Signal 2
fs = 44100 # sampling rate, Hz, must be integer
duration = 1.0 # in seconds, may be float
# Define the time series
t = np.linspace(0, duration, int(duration*fs), endpoint=False) # time variable
# AM - Amplitude Modulation
fm = 40 # Modulation frequency
amplitude = np.sin(2*np.pi*fm*t)
# Output signal
fc = 1000 # Carrier frequency
signal2 = (1-amplitude) * np.sin(2*np.pi*fc*t).astype(np.float32)
# Apply FFT
fft_freq2 = np.fft.rfftfreq(signal2.shape[0], 1.0/44100)
fft2 = np.abs(np.fft.rfft(signal2))
#%% Plot
f, ax = plt.subplots(2, 3, sharex=False)
ax[0, 0].plot(t[:4411], signal1[:4411])
ax[0, 0].set_title('Signal 1')
ax[1, 0].plot(t[:4411], signal2[:4411])
ax[1, 0].set_title('Signal 2')
ax[0, 2].plot(fft_freq1[900:1101], fft1[900:1101])
ax[0, 2].set_title('Signal 1 FFT')
ax[1, 2].plot(fft_freq2[900:1101], fft2[900:1101])
ax[1, 2].set_title('Signal 2 FFT')
ax[0, 1].plot(t[:4411], amplitude[:4411])
ax[0, 1].set_title('Signal 1 AM')
ax[1, 1].plot(t[:4411], (1-amplitude)[:4411])
ax[1, 1].set_title('Signal 2 AM')
Antworten
Es gibt zwei Definitionen für die AM-modulierten Signale
Der erste wird als klassischer AM (oder konventioneller AM) bezeichnet und ist gegeben durch
$$x_{AM}(t) = (A_c + m(t)) \cdot \cos(2\pi f_c t) \tag{1}$$
und der zweite wird als DSB-SC (Double Side Band Suppressed Carrier) bezeichnet und ist gegeben durch:
$$x_{AM}(t) = m(t) \cdot \cos(2\pi f_c t) \tag{2}$$
In Ihrem Code verwenden Sie Gleichung 2 (DSB-SC) für das erste Beispiel und Gleichung 1 (klassischer AM) für das zweite Beispiel. Ihr Unterschied besteht darin, dass der erste das Trägerspektrum enthält (die mittlere Spitze bei$f_c$) am Ausgang zusätzlich zu den modulierenden Signalspektren (Seitenbandspitzen). Der letztere DSB-SC enthält jedoch nur die Seitenbandspektren des Modulationssignals und nicht das Trägerspektrum, daher der Name unterdrückter Träger .
DSB-SC hat den Vorteil, dass die Übertragungsenergie reduziert wird, da die permanent strahlende Trägerenergie eingespart wird, was zu einer effizienteren Übertragung führt. Während der klassische AM, der weniger energieeffizient zu senden ist, den Vorteil hat, dass seine Demodulation (durch analoge Hardware) äußerst einfach ist und zusätzlich zum Antennenempfänger einen sogenannten Hüllkurvendetektor (eine Diode, einen Kondensator und einen Widerstand ) erfordert und Audioverstärkerschaltung).
Die Zeitbereichsmultiplikation von Signalen, die jeweils nur eine Summe von wenigen sinusförmigen Komponenten sind, ist als Frequenzbereichsfaltung einfach zu verstehen :
zeigt zuerst dein Signal 1:
$$\sin(2\pi f_m t) \cdot \sin(2\pi f_c t),$$
und dann dein Signal 2:
$$\big(1-\sin(2\pi f_m t)\big) \cdot \sin(2\pi f_c t),$$
bemerken, dass $\cos(x) = \frac{1}{2}e^{-ix} + \frac{1}{2}e^{ix}$ teilt jede reale Sinuskurve in eine negative und eine positive Frequenzkomponente auf.
Ich habe nur die Komponentengrößen in den Abbildungen gezeigt. Da keine der Komponenten spektral zusammenfällt, spielen die Phasen der Komponenten keine Rolle. Sie hätten also auch Cosinus anstelle von Sinus sagen können, und die Diagramme wären immer noch dieselben.
Der Frequenzbereich gibt auch einen Überblick über die Periodizitätseigenschaften der Signale. Ein periodisches Signal mit Grundperiode $P$ ist auch periodisch mit jeder Periode, die ein Vielfaches von ist $P$Daher sollten wir bei der Charakterisierung des Signals zwischen einer Periode und der Grundperiode unterscheiden. Die Grundperiode ist die kürzeste Periode eines Signals. Ein periodisches Signal mit Grundperiode$P$kann nur aus harmonischen Frequenzen der Frequenz bestehen, die über die Grundperiode des Signals genau einen Zyklus hat. Diese Frequenz ist das Gegenteil$1/P$der Grundperiode. Mit anderen Worten, damit ein Signal periodisch ist, muss seine Fourier-Transformation überall einen Nullwert haben, außer bei Vielfachen des Kehrwerts der Grundperiode des Signals.
Die Häkchen in den folgenden Frequenzbereichsdiagrammen zeigen die Frequenzen, die ein Vielfaches des Kehrwerts der Grundperiode sind. Die Häkchen wurden in dem regulären kammartigen Muster mit der geringsten Dichte angeordnet, das die Frequenz 0 enthielt. Das Muster mit der geringsten Dichte wurde ausgewählt, um die Grundperiode anstatt einer längeren Periode zu erfassen.
Die Häkchenmuster sind für die beiden Signale unterschiedlich, sodass sich die Grundperioden Ihrer beiden Signale unterscheiden .
Die Abbildungen zeigen jedoch auch, dass beide Signale periodisch mit einer Periode sind, die die Grundperiode von Signal 2 ist. Das Häkchenmuster von Signal 2 erfasst auch alle in Signal 1 vorhandenen Frequenzen.
Eine visuelle Inspektion im Zeitbereich bestätigt die Ergebnisse (Signal und seine Grundperiode als vertikale Linie dargestellt; blau: Signal 1, rot: Signal 2):