HalliHallo
Ich bin gerade auf der Suche eines tollen skripts wo beschrieben wird
durch welche numerische verfahren ich signale (analoge) rückgewinnen
kann.
Aber irgendwie hab ich da noch gar nichts gefunden.
Hoffe es ist mir jemand behilflich und kann mir den einen oder anderen
tip geben.
Lieben Gruß
Fränzi
Also (a) ein Numerisches Verfahren, um die Modulation rückgängig zu
machen, oder (b) ein Verfahren um dein Signal numerisch zu
approximieren/darzustellen/auszuwerten?
Falls a) AM oder FM moduliert?
Falls b) Was für ein Signal, welcher Funktionsraum für die
Approximation?
/Ernst
Hallo Ernst
Also ich möchte mein Signal welches ich amplitudenmoduliert habe quasi
wieder demodulieren, demnach suche ich ein Verfahren wo dies möglich
ist.
Ein FM-moduliertes Signal habe ich auch, aber erstmal möchte ich mich
gerne mit dem AM beschäftigen.
Ich hoffe du kannst mir da ein wenig helfen
Liebe Gruß
Fränzi
Hallo Fränzi und Unernst oder was soll der Negationsstrich
( vielleicht http://www.nicht-lustig.de , der heisst Sauer)
Das sieht nach einer Art "software-defined radio"-Aufgabe aus. Mit
diesem Suchbegriff findet Google viel praxisbezogenes. Ein Signal, das
in Ampltude und/oder Phase moduliert ausgesendet wurde, wird mit zwei um
90 Grad phasenverschobenen Sinusschwingungen multipliziert, und damit
auf eine niedrigere Frequenz heruntergemischt. Diese beiden Signale kann
man beispielsweise mit der PC-Soundkarte weiterverarbeiten.
Hah! Zurück zu den alten Detektor-Radios!
Da lief die Demodulation etwa so ab: Schwingkreis für die
Träger-Frequenz, Gleichrichterdiode, Kondensator im Kopfhörer fitert die
Trägerfrequenz.
Geht dann softwaretechnisch so ähnlich, z.B. einfach eine floating
average über den Absolutwert deines Eingangssignals bilden.
Absolutwert entspricht Diode,
Mittelwert über die letzten X messwerte entspricht nem Kondensator.
/Ernst
Und wie realisiere ich das mathematisch (numerisch)?
z.B. wenn mein AM-Signal aus
Trägersignal ut=u_t*sin(2*pi*f_t*t)
Modulationssignal um=u_m*sin(2*pi*f_m*t);
zusammensetzt.
Liebe Gruß
Fränzi
Nur war der Detektordiode die Phasenlage egal. Die Absolutwertbildung
muß für alle Phasenlagen der Trägerfrequenz dieselbe Amplitude ergeben.
Deshalb macht man die doppelte Multiplikation mit Sinus und Cosinus, und
erhält als Zwischenergebnis erst mal zwei Signale. Mit dem Pythagoras
ermittelt man dann die Zeigerlänge, wenn man es als Zeigerdiagramm
betrachtet.
Trägersignal ut(t)=u_t*sin(2*pi*f_t*t);
Modulationssignal um(t)=u_m*sin(2*pi*f_m*t);
d.H. dein "Eingangssignal", das du Auswerten willst, ist
f(t)=ut(t)*(um(t)+u_m+offset); [offset]
(AM-Moduliert, bei um(t)==-u_m bleibt eine Träger-Ampliutude "offset"
übrig)
Geplottet ungefähr so:
1
+ A
2
2 + A A AA
3
+ AA AA AA AA AA
4
+ A A AA AA AA A A AA
5
| A A AA AA AA A A A A AAA
6
+ AA AA AA AAA AA AA AA A A A A A A
7
+ AA AA AA AAA A A A A AA AAA A A A A A A
8
1 + A AA AA AA A A A A A A AAA A A A A A A A A
9
+ AA AA AAA A A AAA AAA A A A A A A A AA A A A A A A A A
10
+ AA AA AAA A A A A A A A A A A A A A A A A A A A A A A A A
11
|AA AA AA A A A A A A A A A A A A A A A A A A A A A A A A A A
12
* A A AA AA A A A A A A A A A A A A A A A A A A A A A A A A A A A
13
* AA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
Naja, das erste Problem ist normal erstmal die
Trägerfrequenz/phasenrückgewinnung, da man wie schon gesagt wurde das
modulierte Signal wieder mit dem Träger multiplizieren muss zum
heruntermischen. Die Phasenlage muss übereinstimmen, sonst funktioniert
die Demodulation nicht, außerdem könnten die Signalfrequenzen leicht
unterschiedlich sein. In beiden Fällen führt das zur Auslöschung des
Signals.
So eine Phasenrückgewinnung kann man mit einer numerischen
Implementierung einer PLL machen. Der Fachbegriff dafür fällt mir leider
gerade nicht ein, es geht jedenfalls über einen Phasenakkumulator und
eine Regelschleife.
Wenn man dann dadurch die Trägerphase zum aktuellen Sample für jedes
Sample hat muss man nurnoch mit e^j*phase (oder auch -, fällt mir gerade
auch nich ein g) multiplizieren, um das ganze komplex
herunterzumischen. Das demodulierte Signal liegt dann entweder im Real-
oder im Imaginärteil von dem, was man dann bekommt.
Die Trägerphase ist nur für einen AM-Synchrondemodulator nötig.
Mit zwei Mischern für I und Q und die Pythagoras-Bildung ist die
Phasenlage egal, man berechnet so nur die Zeigerlänge, nicht dessen
Winkel. Durch die Phasenabweichung rotiert der Zeiger langesam statt
stillzustehen.
Statt zwei Mischern kann man auch mit einem Samplingmischer 4 mal pro
Trägerschwingung abtasten, das entspricht einem abwechselnden Mischen
mit Sinus und Cosinus . Die beiden Mischer sind quasi im Zeitmultiplex
durch einen ersetzt. Beide Verfahren brauchen keine Information über die
Phasenlage.
Im Elektor Dezemberheft wird diese Schaltung vorgestellt, statt
Sinusschwingungen mit Rechteck, damit natürlich Nebenempfang auf
Harmonischen:
http://www.elexs.de/iq1.htm
Erstmal möcht ich mich bedanken, 1a hilfe wird einem hier geboten
Werd mich jetzt erstmal damit beschäftigen.
Nebenbei hab ich ein wenig rumprobiert (mit matlab) und bin da schonmal
auf was ansehnliches gekommen (hoffe ich mal)
was mir im moment garnicht klar wird ist das bsp. von Ernst, sieht super
aus und vielleicht auch einfach aber die Mittelwertbetrachtung über den
letzten X Messwerten bei Äquidistanter Abtastung des Eingangssignals
bereitet mir arge probleme, da weiß ich garnicht wie ich anfangen soll
um auf 'ähnliche' kurvenverläufe zu kommen.
welche mathematischen möglichkeiten gibt es denn noch zur
Frequenzmodulation?
Lieben Gruß
fränzi
Hi nochmal
mal kurz das, was mir noch zu FM-Demodulation einfällt. Ist aber schon
bissl her, seitdem ich das gemacht habe, also weder vollständig noch
umbedingt richtig.
Bei der Demodulation:
1. Träger zurückgewinnen
2. Signal damit ins komplexe Basisband heruntermischen, also wieder
Multiplikation mit exp(j*phi), oder eben mit cos und sin multiplizieren
und damit I und Q betrachten.
Ich hatte allerdings beide Punkte nicht mit Software gemacht, sondern
mit Hardware I/Q-Demodulator runtergeschmischt und dann per 500ksps
AD-Wandler I und Q in den PC. Geht natürlich auch numerisch, wenn du
schnell genug abtasten und verarbeiten kannst.
3. Du musst nurnoch die Phasen der einzelnen Samples anschauen. Die
Ableitung der Phase ist das demodulierte Signal. Also signal(k) =
phase(k) - phase(k-1), oder in Matlab für komplette Vektoren: signal =
diff(phase);
Zusammengefasst ging die FM-Demodulation jedenfalls mit einer Zeile
Code, müsste dann so etwas wie signal = diff(angle(bbsignal)) gewesen
sein.
4. Tiefpass filtern
Modulation: Sollte dann ja umgedreht gewesen sein ;)
Quasi:
bbsignal = exp(j*cumsum(signal));
Und dann eben wieder per IQ-Modulation auf Trägerfrequenz bringen.
Das Verfahren mit Summe und Differenz ist aber nicht ganz genau, da man
eigentlich die Ableitung braucht. Für Signalfrequenz << Abtastrate im
komplexen Basisband funktionierts aber ganz gut.
Ich hätte noch einen Literaturhinweis zum Thema:
"Digitale Signalverarbeitung in der Nachrichtentechnik" von
P.Gerdsen/P.Kröger Springer Verlag 1993 ISBN 3-540-55520-X
Darin u.a. als Blockschaltbild mit Beschreibung: AM und FM Modulatoren
und -Demodulatoren.
Zum Beispiel Seite 276-278: FM Basisband-Modulator, bestehend aus:
Integration des Modulationssignals - Verzögerung - Addition des
Nullphasenwinkels - Sinus/Cosinus-Kennlinie - Multiplikation mit dem
Scheitelwert.
Das Buch läßt sich vermutlich in einer Hochschulbibliothek auftreiben,
alt genug ist es ja.
wie könnt ich aber numerisch vorgehen falls digitale datensätze
vorliegen würden (demodulation kann nicht analog durchgeführt werden)
Lieben Gruß
Fränzi
vielleicht die digitalen signale (diskrete) durch interpolation in
kontinuierliche signale umwandeln.
Interpolation --> Umkehroperation der Abtastung
wie das nun genau funktioniert weiß ich nicht, vielleicht kann wer
anders helfen.
Peter
vielleicht unter bestimmten modellannahmen des kontinuierlichen signals
das digitale signal (diskret) möglichst gut reproduzieren.
wie das nun genau funktioniert weiß ich nicht, vielleicht kann wer
anders helfen.
weigstens habe auch ich meinen senf abgegeben.
Peter