Hallo, vielleicht übersehe ich hier etwas geradezu tragisch einfaches: ich habe ein digitales Signal s1[n] mit 128 samples dann habe ich ein zweites ebenfalls mit 128 samples. Beide komplex Nun will ich die beiden im Frequenzbereich kombinieren so dass das eine Signal im unteren und das andere im oberen Frequenzbereich liegt: also intuitiv würde ich das so machen (matlab) F1 = fft(s1); F2 = fft(s2); s3 = ifft([F1,F2]; jetzt hab ich aber 3 Fourier Transformationen, das muss doch auch direkt im Basisband gehen. ich weiss: null einfügen und dann filtern aber einen "perfekten" filter gibt es ja nicht und es muss doch sicher eine einfache Möglichkeit geben (so etwas wie aufmodulieren im analogen) ein test: s1 = exp(j*(1:128)/5) s2 = exp(j*(1:128)/2) F1 = fft(s1); F2 = fft(s2); s3 = ifft([F1,F2]); figure plot(abs(fft(s1))) figure plot(abs(fft(s2))) figure plot(abs(fft(s3)))
Am einfachsten müsste es gehen, wenn Du 2 komplexwertige Bandpässe entwirfst. Jedes Signal wird mit einem der Bandpässe gefiltert und das Ergebnis addiert. Bandpass 1 filtert die linke Seite des Spektrums von Signal 1 weg. Bandpass 2 filtert die rechte Seite des Spektrums von Signal 2 weg. Das ganze läuft vollständig im Zeitbereich. Gruß, ajax
genau das mit den Bandpässen wollte ich vermeiden und dachte das es vielleicht einen einfachen Trick gibt um mit extrem wenig Aufwand das Zeitsignal zu errechnen....
und natürlich ist das mit den FFT's extrem "sauber" so sauber kriegt man das mit Filterung einfach nicht hin....
>genau das mit den Bandpässen wollte ich vermeiden Hab ich in Deinem Text gar nicht gesehen, dass Du das vermeiden wolltest. Ich hätte noch einen 2ten Vorschlag: 1. FIR-Tiefpass mit 128 Stüztstellen 2. Transformation in die 2 Bandpässe durch Multiplikation mit e^j(+-)wt Danach wie gehabt. >und natürlich ist das mit den FFT's extrem "sauber" so sauber kriegt man >das mit Filterung einfach nicht hin.... nur theortisch, zeig mal die Spektren.
In der Analogtechnik hieße das ganze "independent Sideband modulation". Für die Einseitenband-Erzeugung gibt es zwei Verfahren, die schon genannte Filterung oder die Phasenmethode. Dazu wird das gesamte Signalband um 90 Grad in der Phase geschoben, was für breite Frequenzbänder, wie z.B ein Sprachsignal, nicht ganz einfach ist. Dann hat man noch einen Oszillator der als Sinus und Cosinus vorliegen muß und zwei Mischer. Digital wäre das eine Hilpert-Transformation als Phasenschieber und zwei Multiplikationen.
in Matlab gibts anscheinend Funktionen in der "Communications Toolbox" http://www.mathworks.com/access/helpdesk/help/toolbox/comm/ug/fp59322.html http://www.mathworks.com/access/helpdesk/help/toolbox/commblks/ref/ssbammodulatorpassband.html mit Suchbegriff "Hilbert transform filter" gefunden, damit findet Google noch mehr
danke! mit der H. Trafo hab ich direkt nach deinem posting angefangen. Ist wohl der beste weg.
Wenn Du das mit der Verschiebung eines Tiefpasse mit der komplexen Modulationsfunktion machst, erhälts Du genau das gleich wie mit der Hilbertransformation. Die ist sozusagen implizit mit drin.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.