www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Numerische Verfahren für Signalrückgewinnung gesucht


Autor: Fränzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus was denn "rückgewinnen"? Ist das ursprüngliche Signal auf einen 
Träger aufmoduliert, oder ist es nur von Rauschen/Störungen überlagert?

Autor: Fränzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christoph

das ursprüngliche Signal ist auf einem träger aufmoduliert

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Fränzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Fränzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
   +                                                                                             A
 2 +                                                                                 A     A     AA
   +                                                                    AA    AA    AA     AA    AA
   +                                                        A     A     AA    AA    AA    A A    AA
   |                                                  A     A     AA    AA    AA    A A   A A   AAA
   +                                     AA    AA    AA    AAA    AA    AA    AA    A A   A A   A A
   +                               AA    AA    AA    AAA   A A   A A    AA    AAA   A A   A A   A A
 1 +                         A     AA    AA    AA    A A   A A   A A   AAA    A A   A A   A A   A A
   +            AA    AA    AAA   A A   AAA    AAA   A A   A A   A A   A AA   A A   A A   A A   A A
   +      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
   |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
   * 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
   * 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
   *--*+-*-+*-+*--*--*+-*-+*--**--*--*+-*-+*--*--*+-*-+*--*---*--*+-*-+*--*--*+-*-+*--*--**--*--*+-*-+
 0 +  A AA  A  A  A 0.02AA A   A A   A  0.04  A  A  A  A  A 0.06 A  A  A  A  A  0.08   A A   A  A  A0.1
   +  A A   AAAA   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
   +   AA    AA    AAA   A A   A A   A A   A  A   A A   A A   A A   A  A  A  A  AA A   A A   A 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
   +               AA    AAA   AAA   AAA    AA    A A   A A   A A   A A   A  A   A A   A A   A A   A
-1 +                      A     AA    AA    AA    AAA   A A   A A   A A    AAA   A A   A A   A A   A A
   +                                  AA    AA    AA    A A   A A   A A    AA    A A   A A   A A   A A
   +                                        AA    AA    AA     AA    AA    AA    AAA   A A   A A   AAA
   +                                                     A     AA    AA    AA    AA    A A   A A    AA
   |                                                           A     AA    AA    AA    AAA    AA    AA
   +                                                                       AA    AA    AA     AA    AA
-2 +                                                                                    A     A     AA
   +                                                                                                A

Jetzt den Mittelwert über die letzten X Messwerte bei Äquidistanter 
Abtastung des Eingangssignals:
                                                                                                    t - n
                                                                                                  -----
                                                                                                   \
                                                                                        avg(t) =    )   abs(f(x))/n
                                                                                                   /
                                                                                                  -----                                                                                                  
                                                                                                  x=t

Ergibt in etwa:
   +                                                                                                AA
1.6+                                                                                           AAAAA
   +                                                                                     AAAAAA
   +                                                                                AAAAA
   +                                                                           AAAAAA
1.4+                                                                       AAAAA
   +                                                                   AAAAA
   +                                                              AAAAA
1.2+                                                           AAAA
   +                                                       AAAA
   +                                                   AAAA
 1 +                                               AAAA
   +                                            AAAA
   +                                        AAAA
0.8+                                    AAAA
   +                                 AAAA
   +                             AAAAA
0.6+                          AAA
   +                       AAA
   +                   AAAA
0.4+                AAAA
   +             AAAA
   +          AAA
0.2+      AAAA
   +   AAA
   +AAAA
   *-+---+--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--+---+--
 0        0.02                0.04                0.06                0.08                 0.1

/Ernst

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jup, den Link von db1uq solltest du dir auch anschauen, das scheint 
wesentlich besser zu sein als meine Hemdsärmel-Methode.

/Ernst

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier das Blockschaltbild für ein Software-defined Radio mit 
AM-Demodulation, wie beschrieben mit zwei Mischern und Pythagoras:
http://www.winradio.com/home/g305-demod.htm

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Franziska Meyerhagen (fraenzi)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Fränzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das genannte Buch gibts in der 2.Auflage von 1996 noch zu kaufen:
http://www.amazon.de/gp/product/3540611940/ref=sib...
dort darf im Inhaltsverzeichnis blättern. Die vorgestellten Verfahren 
behandeln eine digitale (numerische) Verarbeitung, nichts analoges.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.