Radio-Bastler-Forum (RBF)

Normale Version: AM Stereo Sender mit FL2k und GNU Radio
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Zusammen,
 
Nachdem mich nun dank Bernhard45 der SDR-TX Bug gebissen hat, dachte ich es wäre schön einen Sender für AM Stereo zu "bauen" Nach einigen Rückschlägen ist es mir nun auch gelungen. Gleich zu Anfang eine Erfahrung die ich machen musste: Man darf nicht bei einem solchen Projekt einfach Baugruppen die man in Hardware zusammenfügen würde in Software nachbilden. Das kann gehen aber in diesem Fall waren die Resultate nicht gut.

Bei einer solchen Lösung muss man immer vor Augen haben, dass es hier um Mathematik geht die elektronische Baugruppen erzeugt. Das hat den Vorteil, dass man damit Dinge machen kann die mit Hardware nicht gehen. Oder hat hier schon einmal jemand einen Phasenmodulator mit nur einem Eingang für das Signal und einem Ausgang gebaut? Mathematisch gesehen geht das in der komplexen Zahlenebene der Träger ist einfach 0 (Null) und die Seitenbänder bauen sich um den Nullpunkt in positiver und in negativer Richtung auf. Genauso geht AM. Man kann also alle Funktionen quasi im Basisband erledigen und erst am Ende das Signal mit einem Multiplizierer auf eine höhere Frequenz bringen.

Da meine Zeit an der TH Darmstadt schon mehr als 30 Jahre zurück liegt fiel es mir auch nicht leicht mich wieder etwas in diese Thematik hinein zu denken...

Hier erst einmal das Blockschaltbild:

[attachment=68661]

Diese Lösung liefert ein Signal auf 630kHz und kann auf jede andere Frequenz umgestellt werden. Ich werde in den nächsten Tagen die Funktionsweise erläutern, da diese von der üblichen Methode abweicht und mit einem Amplituden und eine Phasenmodulator arbeitet. Trotzdem kommt hier CQUAM heraus, da ich das Signal vor dem Phasenmodulator noch etwas "vorbehandle". Die Idee mit der Vorverzerrung kam übrigens von Darius (Oldeurope) der das in Hardware mit enem VCA umgesetzt hat...

Und ja die "Stereo" Anzeigen an meinen AM Stereo Receivern gehen stabil an...

Mehr in Kürze...
Hallo Semir,
meine Erfahrung ist, das die meisten Leut bei komplexen Zahlen aufhören mit zu machen. Vielleicht sollte man generell etwas zu komplexen Zahlen und real/imaginär Teil am Einheitskreis schreiben, damit der Leser sich das bildlich vorstellen kann was das fūr die Amplitude und Phase im Signal bedeutet. Die Rechenregeln sind dann vielleicht leichter begreifbar. Ich glaube komplexe Zahlen spielen in der "normalen" Berufsausbild kaum eine Rolle, damit rechnet man nur an Fachhochschulen und Universitäten rum.

Otto
(04.11.2019, 22:53)OttoBerger schrieb: [ -> ]Hallo Semir,
meine Erfahrung ist, das die meisten Leut bei komplexen Zahlen aufhören mit zu machen.  Vielleicht sollte man generell etwas zu komplexen Zahlen und real/imaginär Teil am Einheitskreis schreiben, damit der Leser sich das bildlich vorstellen kann was das fūr die Amplitude und Phase im Signal bedeutet.

Hallo Otto,

ich habe ja anhand der Resonanz auf diesen Beitrag gemerkt, dass Du hier wohl den Nagel auf den Kopf getroffen hast und das Thema Komplexe Zahlen wohl für die Meisten hier eher abschreckend wirkt. Es wäre natürlich schade wenn dadurch Beiträge gleich unter "Zu kompliziert" abgehakt werden, deshalb möchte ich deinen Vorschlag aufgreifen und hier ein klein wenig über die für unser Hobby wichtigen Aspekte der Komplexen Zahlen eingehen.

Danke für die Anregung!
Hallo Zusammen,

der Anregung von Otto folgend möchte ich hier einmal auf das Thema komplexe Zahlen eingehen. Das ist kein Hexenwerk, sondern sehr nützlich wenn wir mit elektrischen Schaltungen oder deren Simulation arbeiten.

Viele Vorgänge die mit "Wechselstrom" zu tun haben lassen sich einfacher mit komplexen Zahlen darstellen oder rechnen. In der Nachrichtentechnik kommen ja Wechselspannungen in Form von Trägern und Signalen vor. Um nun Phase und Amplitude darzustellen ist die komplexe Zahlenebene sehr hilfreich. Das werde ich im nächsten Beitrag auch nutzen um den AM-Stereo Modulator der nun fertig ist und echtes CQUAM erzeugt vorzustellen.

Aber auch in der der Energietechnik sind Phasenverschiebungen ein wichtiger Faktor. Sicher haben die Meisten hier schon von Blindleistung gehört. Diese entsteht durch Komponenten im Netz die eine induktive oder kapazitive Last darstellen, also nicht reine Widerstände sind im Ohmschen Sinne. Auch hier lassen sich die Ohmschen und kapazitiven/induktiven Anteile sehr schön mit der Komplexen Zahlenebene darstellen.

Was sind nun komplexe Zahlen? Nun fangen wir mal beim Ursprung an, es gibt bei reellen ("normalen") Zahlen das Problem die Gleichung:

x²+1 = 0

zu lösen, da diese nach x² aufgelöst ergibt:

x² = -1

Nun ist es aber so, dass es keine reelle Zahl gibt die man quadrieren kann bei der sich ein negatives Ergebnis ergibt. In der Schule haben wir ja gelernt, dass z.B. -1 * -1 = 1 also positiv ist. Das gleiche gilt auch für alle anderen negativen reellen Zahlen. Um dieses Dilemma zu lösen hat man in der Mathematik die imaginäre Zahl "i"  eingeführt und definiert, so dass:

i² = -1 ist

die imaginäre Zahl "i" (ohne Quadrat) hat also den Wert  Wurzel aus -1 bzw. √-1.

i = √-1

(Ich kann in diesem Programm leider kein schönes  Wurzelzeichen erzeugen, deshalb diese Schreibweise: ).

Eine komplexe Zahl besteht nun aus zwei Komponenten: einem Realteil und einem Imaginärteil. Das ganze wird so geschrieben:

Realteil + i * Imaginärteil

In der Elektrotechnik wird um Verwechslungen mit Strömen und Zählindices zu vermeiden für den Imaginärteil üblicherweise nicht "i" sondern "j" verwendet, dass werde ich hier auch ab jetzt tun. unsere Darstellung der komplexen Zahl sieht nun für Elektrotechniker so aus:

Realteil + j * Imaginärteil

Wenn wir nun diese Zahlen in einer zweidimensionalen Ebene darstellen möchten können wir den Realteil auf der "x"-Achse aufzeigen und den Imaginärteil auf der "y"-Achse. Der Realteil liegt also waagerecht und der Imaginärteil senkrecht. Hier eine Grafik aus Wikipedia die das veranschaulicht:

[attachment=68869]

Die im Bild gezeigte komplexe Zahl, nennen wir sie "z"  besteht aus einem Realteil "a" mit dem Wert 3 und einem Imaginärteil "b" mit dem Wert 2. Diese Zahl kann man also so schreiben:

z = 3 + j * 2

Das ist die kartesische Schreibweise also mit einem waagerechten "x" Wert und einem senkrechten "y" Wert. Es gibt aber auch noch eine andere für unsere Zwecke manchmal günstigere Schreibweise. Das ist die Darstellung in sogenannten Polarkoordinaten mit einem Strahl dessen Länge den Betrag der Zahl darstellt und einem Winkel in Verhältnis zur x-Achse der als Argument bezeichnet wird. Im Bild ist eine Linie zu sehen die im Ursprung beginnt und im Punkt x=3,y=2 endet. Das Ganze bildet ein Dreieck und deshalb können wir mit Hilfe von Herrn Pythagoras die Länge dieser Linie  die in unserem Dreieck die Hypotenuse darstellt, nennen wir sie "r" berechnen, sie ergibt sich zu:

r² = a² + b² oder r =  √(a²+b²)

In Zahlen:

r² = 2²+3² = 4+9 = 13 oder r ist √13 = 3,6 was auch graphisch hinkommt
 
Der ]Wert "r" wird auch Betrag der komplexen Zahl genannt. für die Darstellung der komplexen Zahl in Polarkoordinaten reicht dieser Wert aber nicht wir benötigen noch den Winkel φ im Zusammenhang mit komplexen Zahlen wird der Winkel auch als "Argument" bezeichnet dieser ergibt sich als:

arctan(a/b) oder arctan(2/3) = 33,69°

Bemerkung: der Arcus Tangens oder arctan ist die umgekehrte Funktion zum Tangens. In Worten ausgedrückt macht Sie folgendes: "Suche den Winkel φ der zu dem gegebenen Wert Gegenkathete / Ankathete passt."

Da wir nun den  Winkel φ auch kennen können wir unsere komplexe Zahl "z" nun so schreiben:

z = r * (cos φ + j sin φ[)

Warum ist das so? Nun wir kennen den Betrag "r" der in unserem Dreieck ja die Hypotenuse darstellt und  wir kennen den Winkel φ. Aus der Schule wissen wir:

cos φ = Ankathete / Hypotenuse oder:


Hypotenuse * cos φ = Ankathete

die Ankathete ist ja hier unser Realteil der auf der x-Achse liegt...

in unserem Beispiel wäre der Realteil r * cos φ oder in Zahlen:

3,6 * cos 33,69 = 2,99

Es kommt also wie erwartet der Realteil von 3 heraus. Da ich die Zahlen für den Betrag und den Winkel etwas gerundet habe hier nur 2,99.

Analog wäre der Imaginärteil:

Hypotenuse * sin φ = Gegenkathete

die Gegenkathete ist ja hier unser Imaginärteil der auf der y-Achse liegt...

in unserem Beispiel wäre der Realteil r * sin φ oder in Zahlen:

3,6 * sin 33,69 = 1,99

Es kommt also wie erwartet der Imaginärteil von 2 heraus. Da ich die Zahlen für den Betrag und den Winkel etwas gerundet habe hier nur 1,99.

Mathematisch ist es so, dass man "r * (cos φ + j sin φ" auch so schreiben kann:

[attachment=68878]

Das möchte ich hier nicht näher erläutern, da es für unsere Anwendungen nicht erforderlich die Herleitung zu kennen. Nur soviel für Interessierte: Die Funktionen cos, sin und e können auch durch sog. Reihen dargestellt werden, damit ist die Herleitung recht einfach verständlich hier nachzulesen.



Wozu ist nun das Ganze für unser Hobby nützlich? Hier ein paar Beispiele:

Beispiel 1: NTSC Farbfernsehen:

Hier wird die Farbe in Form eines Farbträgers übertragen in der Form:


r * (cos φ + j sin φ) wobei bei NTSC folgendes gilt:

r = Betrag oder in diesem Fall Amplitude des Farbträgers. Das Entspricht der "Stärke" der Farbe.


φ = Art der Farbe (rot, grün, gelb blau...). Ein Winkel von 0° entspricht blau, einer von 90° rot. Purpur liegt bei ca 45° und grün bei ca. 225°.

Was hat das mit der Formel oben zu tun? Nun die Farbe wird mit zwei um 90° versetzten Trägern übertragen:

Blauanteil * cos (2πft) + j Rotanteil * sin (2πft)

wobei hier im Term (2πft) f die Farbträgerfrequenz ist bei NTSC 3,57454MHz. Alle Phasen sind also im Verhältnis zur momentanen Phase des Farbträgers zu betrachten. Als Referenz wird hier der Wert auf der Blauachse verwendet.

Der Betrag r oder die Amplitude des Farbsignals ist hier

√Blauanteil²+Rotanteil²

Die Phase φ bzw. Farbart ergibt sich zu:


arctan (Rotanteil / Blauanteil)


Beispiel 2 AM Stereo:

hier wird auch mit der Form r * (cos φ + j sin φ) gearbeitet. Die Seiteninformation wird folgendermaßen als Phaseninformation erzeugt:

Seiteninformation = (L+R+1) * cos (2πft) + j (L-R) * sin (2πft)

Wobei der Term (L+R+1) * cos (2πft) eine simple AM des Summensignals beschreibt und

der Term (L-R) * sin (2πft)  eine AM mit unterdrücktem Träger (DSB) des Differenzsignals ergibt.



Ich hoffe ich konnte etwas Licht in das Thema komplexe Zahlen bringen. Im Bastelkeller kann man sich das mit Realteil und Imaginärteil noch anhand der Trägerphasen veranschaulichen und sich z.B. merken, das ein Träger mit 0° der cos Träger ist und der mit 90° der sin Träger. Wenn aber in einer Simulation gearbeitet wird und der Träger gar nicht vorhanden ist sondern mit den reinen Phasen gearbeitet wird ist das denken in komplexen Zahlen meist hilfreich, da man hier alle Rechenoperationen auf dem Papier durchführen kann. Das einzige was beachtet werden muss ist die Rechenregeln für die imaginäre Komponente j also dass z.b. j² = -1 ist und j³ = -j  (weil: j³ = j * j * j = -1 * j)...

Wer dazu mehr wissen möchte kann hier bei Wikipedia nachlesen.
Hallo Zusammen,

Zum Abschluss möchte ich hier nun die finale Variante meines AM Stereo Encoders nach Motorola CQUAM vorstellen. Nachdem ich einige Tests durchgeführt hatte musste ich feststellen, dass die Variante oben mit der Vorverzerrung nicht ganz fehlerfrei arbeitete und bei extremen Situationen also:

Nur Links oder nur Rechts ist ein Signal vorhanden

doch noch etwas Verzerrungen im jeweils anderen Kanal produziert hat. Diese sind zwar praktisch im Normalbetrieb nicht hörbar aber ich wollte einen 100% kompatiblen Encoder haben also musste ich nochmal überlegen wie ich das in GNU Radio umsetzen kann.

Das Problem war in erster Linie, dass in GNU Radio die Funktion eines Begrenzers nicht gut funktionierte und es zu starken Verzerrungen bzw Störungen kam wenn ich einen solchen mit der "Rail" oder "Threshold" Funktion umsetzen wollte. Im Motorola CQUAM Verfahren ist aber eine Begrenzung des Signals scheinbar nicht zu umgehen, dachte ich, aber die Kenntnis der komplexen Zahlen insbesondere der Variante mit Polarkoordinaten hat mir dann geholfen das sehr elegant anders zu lösen - wie ich meine.

Zunächst ein Überblick wie CQUAM Funktioniert:

1. In einer Matrix werden L+R und L+R gebildet
2. Das L+R Signal wird als Realteil in normaler AM moduliert
3. Das L-R Signal wird als Imaginärteil in DSB Moduliert.
4. Beide werden zu einem Signal addiert, damit ergibt sich ein Signal in der komplexen Zahlenebene
5. Das Resultat wird nun begrenzt um die AM zu entfernen und nur die Phase zu behalten
6. Das so gewonnene Signal wird als Träger verwendet und einem weiteren AM Modulator zugeführt
7. Dem 2. AM Modulator wird erneut das L+R Signal zugeführt und erzeugt die Hüllkurve - eine saubere AM

Das Verfahren ist deshalb so entworfen worden, um die Kompatibilität zu alten Hüllkurvengeräten zu wahren die quasi 99,9% der AM Radios ausmachen. Würde man das Signal aus Schritt 4 oben verwendet, so ergeben sich Verzerrungen, da die der AM überlagerte DSB zusätzliche Amplitudenveränderungen bewirkt. Der Begrenzer entfernt diese zwar aber damit auch die gesamte AM, also auch die welche wir behalten möchten vom L+R Signal.

Einfache Verfahren arbeiten nun mit einer reinen Phasenmodulation des AM Trägers vor dem finalen Hüllkurvenmodulator,  was auch eine feste Amplitude des Trägers ergibt. Diese Methode war der erste AM-Stereo Vorschlag in den USA nach Magnavox benannt und ist recht gut mit Empfängern nach dem CQUAM Verfahren kompatibel aber nicht perfekt.

Nicht perfekt deshalb, weil die reine symmetrische Phasenmodulation nicht der des CQUAM Verfahrens entspricht welche nicht nur vom L-R Signal sondern auch von L+R Signal abhängt und damit für links und rechts unterschiedlich vorverzerrt ist. Berücksichtigt man das nicht, sind im Empfänger bei den o.g. Extremsituationen verzerrte Signale im jeweils anderen Kanal zu hören. Bei echtem CQUAM konnte ich diese komplett eliminieren und das Signal im jeweils anderen Kanal fast unhörbar machen!

Da ein Begrenzer nicht in GNU Radio funktionieren wollte habe ich das anders gelöst CQUAM-GNU-S, die Veränderten Teile habe ich in Rot markiert:

1. In einer Matrix werden L+R und L+R gebildet - Nicht verändert
2. Das L+R Signal wird als Realteil in normaler AM moduliert - Nicht verändert
3. Das L-R Signal wird als Imaginärteil in DSB Moduliert. - Nicht verändert
4. Beide werden zu einem Signal addiert, damit ergibt sich ein Signal in der komplexen Zahlenebene - Nicht verändert
5. Aus dem komplexen Signal aus 4 wird nur die Phaseninformation extrahiert. Das ist die "Complex to Argument" Funktion
6. Das so gewonnene Signal wird einem Phasenmodulator zugeführt
7. Das reine nach CQUAM Phasen modulierte komplexe Signal im Basisband (Träger = 0) wird mit einem Träger versehen
8. Von diesem komplexen geträgerten Signal wird der Realteil mit der Funktion "Complex to Real" extrahiert.
9. Das Signal aus 8 wird als Träger für den Hüllkurvenmodulator, also dem 2. AM Modulator verwendet
10. Dem 2. AM Modulator wird erneut das L+R Signal zugeführt und erzeugt die Hüllkurve - eine saubere AM

Hier ein paar Bilder der Blöcke:

[attachment=68888]
Das ist die Matrix

[attachment=68889]
Die Modulatoren für die Phasenmodulation

[attachment=68890]
Abtastrate auf ca. 5x Trägerfrequenz (630kHz) "hochsamplen" und Argument (Phaseninformation) extrahieren

[attachment=68891]
Trägererzeugung und Hüllkurvenmodulation

[attachment=68892]
Ausgabe nach weiterer Erhöhung der Abtastrate auf ca. 8Ms/s

[attachment=68893]

Zubehör um die Signale zu kalibrieren und Pegel zu verändern

Hier ist nun die Gesamtübersicht:

[attachment=68894]

Das .grc File ist im Anhang zu finden, falls das jemand verwenden möchte. Die Trägerfrequenz kann einfach durch editieren des entsprechenden Blocks verändert werden.

Dies ist ein 100% CQUAM kompatibler Modulator der eine sehr hohe Kanaltrennung auf meinem Carver TX11a ("Mercedes" AM-Stereo Receiver, Neupreis 700US$, Heute ca. 200€)  erreicht. Alle anderen Verfahren die ich bisher alternativ genutzt habe konnte dieses Ergebnis nicht erreichen.

Viel Spaß beim Testen..
Hallo Zusammen,

ich denke Otto hatte recht, nun habe ich mit meinem Beitrag über die komplexen Zahlen die Bastlerfreunde noch mehr verschreckt, und keiner traut sich hier etwas zu posten Smile

Immerhin 3 Downloads sehe ich per heute Sonntag. Mich würden mal die Erfahrungen der Downloader interessieren falls Ihr das zum laufen bekommt bitte gebt mal Bescheid.

Ich überlege übrigens in GNU Radio auch noch einige der anderen AM-Stereo Verfahren umzusetzen wie z.B. das Kahn-Hazeltine Verfahren das in den USA am Anfang gegen Motorola angetreten ist. Mich interessiert hier er Vergleich der Qualität unter schlechten Bedingungen wie schwaches Signal, Rauschverhalten und Kanaltrennung.

Dazu suche ich noch einen Receiver der alle Verfahren beherrscht. Es gab mal ein solches Gerät von Sansui in den USA, aber das ist rar und teuer wie Goldstaub.

Für interessierte die hier still  mitzulesen scheinen Wink  hier die wichtigsten Links zum Thema AM Stereo:

http://www.amstereo.org/

https://www.amstzone.org/
Hallo Semir,

das ist eine tolle Abhandlung ^^ Ich wollte schon was posten, das wäre aber eher in Richtung Mathematik...komplexe Zahlen gegangen, also hab ichs gelassen.
Stichworte: WARUM gibt es überhaupt komplexe Zahlen, Suche nach Darstellung der Lösung quadratischer Gleichungen mit negativem Term unter der Wurzel... und Darstellung e-hoch-j-phi.

Man muß sich wirklich damit beschäftigen, dann hat man ein gutes Werkzeug für die Wechselstromlehre, leider ist die Herkunft der Komplexen Zahlen auch bei mir an der Hochschule untergegangen, wir bekamen das Gedeck mehr oder weniger "vorgesetzt". Die große Bedeutung erkannte ich erst später, auch in der Funktionentheorie.

Die eigentliche technische Lösung interessiert mich aber auch sehr, muß ich mich erst noch mit beschäftigen.

Sei aber gewiß, daß es auf großes Interesse stößt!

Dank dafür, Gruß Ingo
Hallo Semir,

nicht den Kopf hängen lassen, die AM-Stereo Geräte sind hier im Forum mit Sicherheit nicht sehr verbreitet, das bedeutet die meisten können den Stereo-Effekt nur erleben, wenn Sie die von GNU-Radio erzeugte HF in einer SDR-Software wie SoDiRa abspielen lassen. Klar, man kann den Stereosender auch auf einem Mono-AM Gerät hören, aber vielen ist der Aufwand dafür vielleicht zu groß, oder haben noch gar kein SDR zum Senden bzw. eine FL2k USB-Grafikkarte. Da hilft dann ein Video welches den Sender auf einem AM-Stereoradio in Aktion zeigt. Das Video muss natürlich auch den Stereoeffekt gut wiedergeben können. Ich hatte im Forum ja schon mal Videos gezeigt wie gut AM-Stereo auf der MW klingen kann, aber nicht über einen GNU-Radio SDR-Sender. Zur Einleitung des FL2K-Themas habe ich auch nur einen kleinen AM-Sender in GNU-Radio gezeichnet, nach dem Motto "keep it simple", damit nicht die Hälfte der Leser aussteigt, weil Sie den Signalfluß nicht verstehen. Ich denke mal ein Teil der Radioliebhaber kann sich gar nicht vorstellen was eine einfache AM-Modulation mathematisch ist und wie ein "Stück Signal" numerisch in einer Wertetabelle aussieht. Klar alle haben sicher schon mal einen amplitudenmodulierten Sinus im Oszi gesehen, aber sicher nicht weiter darüber nachgedacht was Sie da mathematisch sehen und GNU-Radio und digitale Signalverarbeitung bedeutet eines, Mathematik.
Aber es gibt ja auch vorsichtige Ankündigungen einiger Nutzer sich in mittelfristiger bis ferner Zukunft mal damit zu befassen..... Ich rechne bei meinem DAB(+) oder DRM -Sender mit FL2K eigentlich auch nicht so schnell mit Nachahmern. ;-) Für manche Radioliebhaber ist es halt ein Hochgenuss einen alten Kondensator optisch gerecht neu zu befüllen und alles danach zu fern vom eigenen Hobbyziel entfernt. Hobby soll ja Spaß machen! Ich werde mir deinen Sender jedenfalls mal genau ansehen und anhören, aber im Moment habe ich selbst viel zu wenig Zeit um deine Arbeit vollumfänglich begutachten zu können. Ich tue es aber! Aber ich will mir dabei Zeit nehmen und das nicht mal so in ein paar Minuten zwischendurch machen!

Gruß Bernhard

PS: Mein Beitrag soll nicht bedeuten das ich einen Großteil der Forennutzer für Idioten halte! Jeder geht in einem anderen Teil des Faches auf. Also bitte kein bösen PNs! ;-) Danke!
Hallo zusammen,

danke für die Kommentare, ja es ist mir auch klar, dass die wenigsten hier ein AM-Stereo Gerät besitzen, manchmal vergesse ich das halt in meiner Begeisterung...

Mir ist auch bewusst, dass meine Themen oft exotisch sind wie z.B. UK 405 Zeilen TV oder demnächst das Französische 819 Zeilen System. Aber den Kopf lasse ich bestimmt nicht hängen wenn es auf meine Beiträge nicht gleich 10+ Kommentare gibt.

Da ich hier auch einen Freundeskreis habe der im Radiomuseum Linsengericht aktiv ist, habe ich diese Projekte natürlich auch in diesem Kreis vorgestellt mit dem Ergebnis, dass ich nun einige VGA Adapter für meine Freunde bestellen und "Linux Nachhilfe" geben musste Wink  Einer hat im Moment von mir einen Laptop geliehen auf dem die Projekte installiert sind und möchte damit etwas experimentieren. Ich bin hier mit dem Thema also bei weitem nicht alleine zugange.

Auch wenn die Resonanz hier nicht immer groß ist, so hat das Forum mir schon viele Anregungen und Ideen vermittelt und so soll es auch in Zukunft sein.

Zum Thema CQUAM Modulator habe ich noch etwas gefeilt und das Konzept noch etwas optimiert. Den Block "Complex zu Argument" und den Phasenmodulator habe ich nun vor das erste Upsampling gesetzt was nochmal ca. 10% CPU Last eingespart hat, da diese Blöcke nun mit 44,1kHz anstelle mit 2,2MHz laufen. Das ist vom Resultat der Signalverarbeitung identisch verringert aber die erforderliche Rechenleistung. Auf meinem Core i5 auf dem ich diese Zeilen schreibe während der Modulator und VLC läuft habe ich nun ca. 40% Auslastung. Auch auf einem älteren Core Duo Laptop läuft das Programm einwandfrei hier allerdings mit ca. 65% Auslastung.

Die "Krummen" Sampleraten kommen übrigens daher, dass ich eine Ausgangsrate gewählt habe die der FL2000 exakt unterstützt und von dieser ausgehend die anderen Werte heruntergerechnet habe.

Als weiteres Feature habe ich noch eine Auswahl von 4 Frequenzen eingebaut die per "Knopf" anwählbar sind. Wer mag kann diese natürlich anpassen. Die aktuelle grc habe ich angehängt.

Das Programm läuft übrigens sehr stabil. Ich hatte es schon mehrfach über Nacht durchlaufen lassen und am nächsten Morgen lief es immer noch unverändert.


Auf meiner "To do" Liste ist nun noch ein Script zu schreiben um die einzelnen Komponenten mit einem Mausklick oder Befehl zu starten...
(11.11.2019, 10:57)Bosk Veld schrieb: [ -> ]ich habe allerdings noch keinen Notebook mit Linux.

Gruß, Frank

Hallo Frank, 

auch wenn wir hier vornehmlich Unix oder Linux benutzen, so ist dies keine Notwendigkeit! GNU Radio und die Fl2k-Treiber/Programme sind auch für Windows erhältlich!

Gruß
Bernhard
(11.11.2019, 16:36)Bernhard45 schrieb: [ -> ]auch wenn wir hier vornehmlich Unix oder Linux benutzen, so ist dies keine Notwendigkeit! GNU Radio und die Fl2k-Treiber/Programme sind auch für Windows erhältlich!

Hallo Bernhard,

wo gibt es denn die Treiber für den FL2k für Windows?

Ich habe mir extra auf meinem Firmenlaptop (Core i7 16GB Ram, Windows10) eine Virtuelle Maschine mit Linux Mint eingerichtet um unterwegs mit GNU Radio und dem FL2k experimentieren zu können nur leider leitet die Virtual Box den USB3.0 nicht richtig an die virtuelle Maschine weiter mit dem Resultat, dass ich den VGA Adapter nicht ansprechen kann.

Das GNU Radio selbst wäre ja auf Windows lauffähig...
Hallo Zusammen,

Oben hatte ich geschrieben, dass ich auch andere AM-Stereo Verfahren ausprobieren wollte. Nun da meine Sony Geräte SRF-A100 und SRF-A1 auch das Kahn-Hazeltine Verfahren unterstützen habe ich mich daran gemacht dieses umzusetzen. Hilfreich war hier wieder das Script von DiRu (Prof. Dietmar Rudolf) wo das Verfahren erklärt wird. Bei diesem Verfahren werden die Zwei Seitenbänder genutzt um Links und Rechts zu übertragen. Jedes Seitenband enthält einen Kanal. Das Blockschaltbild für einen Encoder kleiner Leistung habe ich hier mal aus dem Script von DiRu kopiert:

[attachment=68962]

Wie hier zu sehen ist, benötigt man wieder zwei um 90° verschobene Träger cos ωt und j sinωt denen jeweils das L+R und das L-R Signal zugeführt werden. Zusätzlich wird noch der Träger zugesetzt. Es ist also im Prinzip eine QAM mit Träger. Allerdings muss das L-R Signal, also die NF um 90° in der Phase gedreht werden um den Effekt der unterschiedlichen Seitenbänder zu erzielen. HAMs die mal SSB nach der Phasenmethode erzeugt haben wissen, dass das nicht einfach ist, gilt es doch den gesamten genutzten NF Frequenzbereich um exakt 90° in der Phase zu drehen. Schon bei der im Amateurfunkbereich üblichen NF die bei Telefonie nur von 300Hz-3kHz reicht ist das mit analoger Technik nicht einfach. Bei einem Frequenzbereich wie hier der von 50Hz bis 10kHz reicht wäre das analog noch schwieriger. Von der Genauigkeit der Phasendrehung hängt aber das zu erzielende Übersprechen ab, also muss diese relativ gut umgesetzt werden. Analog macht man das mit Op-Amps die als sog. Allpass betrieben werden. Diese Schaltung dreht die Phase ohne jedoch die Amplitude zu verändern. Die Wirkung ist aber nur in einem bestimmten Frequenzbereich genau, so dass mehrere solcher Schaltungen mit verschiedenen Zeitkonstanten hintereinander geschaltet werden müssen um die erforderliche Präzision der Phasendrehung über den gesamten genutzten NF Frequenzbereich zu erreichen. In der Digitaltechnik lässt sich das viel einfacher mit Hilfe eines einzigen Hilbert Filters machen. Zum Glück gibt es diesen auch als Baustein in GNU Radio. Ein Hilbert Filter macht genau das was wir hier benötigen, es dreht die Phase eines zugeführten Signals für alle darin vorkommenden Frequenzen um 90° - Bingo Problem gelöst!

Der Encoder in GNU Radio ist hier zu sehen:

[attachment=68963]

Ich habe in der hier geposteten Schaltung noch ein paar "Potis" in Form von Slidern, also veränderlichen Werten eingebaut um das Ganze auf minimales Übersprechen zu optimieren.

Am Anfang war ich gespannt als ich meinen SRF-A100 Empfänger auf Stellung "B" was Kahn-Hazeltine Modus entspricht umstellte und einen Kanal auf Null setzte. Das Resultat war jedoch nicht befriedigend und der Kanal der eigentlich nicht zu hören sein sollte war immer noch recht gut vorhanden. Ich überlegte und kam zum Schluss, dass ja die Signalverarbeitung des Hilbert Filters eine gewisse Zeit in Anspruch nehmen musste. Das hat zur Folge, dass das L-R Signal zu spät am QAM Modulator ankam. Die Lösung war eine Verzögerung in den L+R Kanal einzufügen um das Timing anzugleichen. Das brachte den gewünschten Erfolg - Fast perfekte Kanaltrennung und dabei einen sehr guten Klang der nach meinem Gefühl noch etwas besser als beim Motorola Verfahren ist - aber das ist meine sehr subjektive Meinung. Auch auf Mono Radios klingt der Sender wie ein normaler AM Sender ich konnte keine Verzerrungen feststellen.

Das Kahn-Hazeltine Verfahren ist auch weniger Ressourcen hungrig als das CQUAM. Mein Laptop läuft mit ca. 35% CPU Last während ich das hier schreibe und Shakatak auf meinem SRF-A100 in bestem AM-Stereo erklingt...

Noch zu tun wäre den Pilotton auf 15Hz umzustellen. Das habe ich noch nicht gemacht und diesen abgeschaltet, da die Sony Radios diesen ohnehin nicht auswerten.

Nun fehlt mir noch das Harris Verfahren für das ich aber im Moment noch keinen Empfänger habe aber da arbeite ich gerade dran...

Hier noch die grc für diejenigen die das mal ausprobieren möchten.

Auch wenn ich das schon geschrieben habe, ohne die Möglichkeiten von GNU Radio und der Digitaltechnik wäre das hier gezeigte nur mit viel Aufwand möglich gewesen und hätte mich einige Tage Arbeit gekostet. Vielleicht könnt ihr meine Begeisterung etwas nachvollziehen, da mit diesem Programm einfach auf dem Sofa Dinge getestet werden können die sonst nur in der Werkstatt möglich wären und viel länger dauern würden.

Ich plane übrigens dieses Projekt im RM.org in Englisch vorzustellen um es Hobbyisten in den Ländern wo AM-Stereo nicht so exotisch ist wie hier (Japan, Australien, Canada, USA) zugänglich zu machen...
(12.11.2019, 00:42)Semir schrieb: [ -> ]
(11.11.2019, 16:36)Bernhard45 schrieb: [ -> ]auch wenn wir hier vornehmlich Unix oder Linux benutzen, so ist dies keine Notwendigkeit! GNU Radio und die Fl2k-Treiber/Programme sind auch für Windows erhältlich!

Hallo Bernhard,

wo gibt es denn die Treiber für den FL2k für Windows?

Ich habe mir extra auf meinem Firmenlaptop (Core i7 16GB Ram, Windows10) eine Virtuelle Maschine mit Linux Mint eingerichtet um unterwegs mit GNU Radio und dem FL2k experimentieren zu können nur leider leitet die Virtual Box den USB3.0 nicht richtig an die virtuelle Maschine weiter mit dem Resultat, dass ich den VGA Adapter nicht ansprechen kann.

Das GNU Radio selbst wäre ja auf Windows lauffähig...

Neben GNU Radio für Windows, brauchst du noch libusb. Über eine Google Suche "libusb Windows" schnell zu besorgen. Fl2k gibt es als weekly-build auf dem osmocom FTP

http://ftp.osmocom.org/binaries/windows/osmo-fl2k/

Du kannst es mit dem kostenlosen Visual Studio von Microsoft aber auch direkt aus den Quellen compilieren.

Gruß Bernhard
Hallo Bernhard,

danke für den Hinweis und Link. Hab es gerade heruntergeladen. Morgen werde ich das mal auf meinen zwei Windows 7 Laptops ausprobieren. Mal sehen wie die grc Dateien unter Windows laufen, da die Laptops von der Hardware her identisch mit den Linux Maschinen sind kann ich das direkt vergleichen.

Mal so eine Idee vielleicht sollten wir einen GNU Radio Thread aufmachen und dort alle Fragmente  diesem Thema zusammentragen mit Verlinkungen zu den bereits geposteten Projekten? Ich werde jedenfalls versuchen weitere Freunde an dieses Thema heran zu führen. So habe ich einen lieben Kollegen in der Firma aus dem Funkbereich der auch HAM ist und trotzdem damit nichts gemacht hat den werde ich als nächsten "missionieren" Smile
(12.11.2019, 03:05)Semir schrieb: [ -> ]Mal so eine Idee vielleicht sollten wir einen GNU Radio Thread aufmachen und dort alle Fragmente  diesem Thema zusammentragen mit Verlinkungen zu den bereits geposteten Projekten? 

Das ist gar keine schlechte Idee! Ich werde da meine Beiträge zu alte nicht mehr verwendete und aktuell verwendete Digitalnormen beitragen. Also DSR, ADR, DAB, DAB+, DRM, DVB-x ,...... . Du wirst sicher AM, sämtliche AM-Stereo-Verfahren und alte Videonormen beitragen? Otto hatte schon mal was zum schweizer HF-Rundspruch gezeigt.  Wir sollten uns aber rein auf GNU-Radio und andere Programme zur Erzeugung der HF beschränken. Ob diese Daten nun von einer FL2K-Grafikkarte oder einem anderen SDR ausgestrahlt werden ist nebensächlich! Die Rohdaten bleiben ja die gleichen!

Gruß 
Bernhard
Hallo Bernhard,

Habe gerade die Windows Installation des fl2k auf zwei Rechnern versucht, leider erfolglos. Ich kann zwar die Adapter mit libusb und dem darin enthaltenen "inf wizard" installieren und sie erscheinen dann im Gerätemanager unter "libusb devices" und werden dort als funktionierend gemeldet. Allerdings kann ich mit dem osmocom fl2k Programm nicht auf die Karte zugreifen. Wenn ich auf der Konsole z.B. fl2k_test eingebe kommt eine Fehlermeldung, dass auf das Gerät #0 nicht zugegriffen werden kann...

Erst dachte ich es läge eventuell am nicht vorhandenen USB3.0 Port des Rechenrs, also installierte ich einen per Express Karte mit zwei USB 3.0 Ports von Renesas. Das hat aber an der Sache nichts geändert.

Für mich ist diese Funktion nicht wichtig, da ich ohnehin das meiste auf Linux mache. als letzten Versuch werde ich nach meinem Urlaub das mal auf meinen Dienstrechner der wesentlich moderner ist und mit 64 Bit und Windows 10 läuft. Hier habe ich nur Windows 7 und Core i5 auf meinem alten Windows HP Elitebook 8440p. Wenn es da auch nicht geht. Auf einem baugleichen Elitebook 8440p unter Linux läuft alles ohne Probleme auch am USB2.0...

DietmarL

Hier wieder nur ein Versuch von Digitalradiolobbyisten die Digitaltechnik mit aller Gewalt in das Radiohobby zu bringen.

Gebt Acht, die wollen euch nicht wirklich helfen!

Dietmar
(13.11.2019, 18:33)DietmarL schrieb: [ -> ]von Digitalradiolobbyisten ...

Echt jetzt? Habe mich nie als ein solcher angesehen! Du Semir? 
Mich interessieren nur die Möglichkeiten, die die digitale Signalverarbeitung bietet! Das bekommt man in analoger Schaltungstechnik nämlich so flott und elegant nicht(!) hin. 
Das soll aber keine Kriegserklärung an die "Analogies" sein, diese können ja selbst mal zeigen was Sie in Ihrem Fach zu bieten haben und passenden Output produzieren.  Also weniger über uns angebliche "Digitalradiolobbyisten" ärgern, sondern sich hinsetzen und mal zeigen das die Analogtechnik immer noch eine Daseinsberechtigung hat! 

Gruß Bernhard
Hallo Bernhard, hallo Forum,

leider habe ich das erst jetzt gelesen, es ist doch immer wieder verwunderlich was für seltsame Leute sich hier anmelden. Wer keine Digitaltechnik mag - wo fängt die eigentlich an? Hat der Mann eventuell ein Handy, das ist nämlich auch digital...- Der sollte doch seine Zeit investieren und selbst ein "Analog-Only" Forum gründen. Da kann er dann nach Herzenslust über die "Digitalos" herziehen.

Der gute Mann hat nicht mal verstanden, dass es in meinem Thread in erster Linie um historische analoge AM-Stereo Geräte und Standards geht, aber lesen und Verstehen sind halt oft nicht synchron stattfindende Vorgänge...

Ich danke Richard für die schnelle Entfernung dieses Störenfrieds!

Und nein ich sehe mich nicht als Advokat von irgendeinem System oder einer Industrie. Ich sehe in den neuen Technologien das positive und mag trotzdem die alte analoge Welt gleichermaßen. Das muss und sollte doch kein Widerspruch sein?

Verwunderte Grüße

Semir
Hallo Zusammen,

zurück zum Thema. Ich habe in einer Bastelkiste noch einen RTL SDR Stick gefunden und wollte den mal mit DAB+ testen. Dabei bin ich auf das Programm Welle.io gestoßen. Unter Linux lief das auch sofort mit dem RTL Stick. Dermaßen motiviert war der nächste Versuch diese Kombination  unter Windows 7 zum Laufen zu bringen.

Das Ganze hat zunächst nichts mit dem Projekt hier zu tun, aber um den RTL Stick unter Windows zum Laufen zu bekommen habe ich das Tool "Zadig" installiert. Dieses ermöglicht die Einbindung von USB Komponenten mit einem Treiber der diese quasi an ein Programm wie in diesem Falle "Welle.io"  "durchreicht". Es gibt in "Zadig" verschiedene Treiber zur Auswahl neben libusb0 noch eine libusbk und eine WinUSB. Letztere hat den RTL Stick so eingebunden, dass ich ihn im "Welle.io" nutzen konnte.

Nun neugierig geworden, probierte ich den VGA Adapter mit dem FL2000 und auch dieser ließ sich mit der WinUSB Library über Zadig zum Laufen bringen. Ich konnte mit den Programmen von osmocom den fl2k_test durchführen und erhielt auf einem alten Dell E-6400 immerhin ca. 9Ms/s über USB2.0, auch der fl2k_tcp Part konnte gestartet werden und scheint zu laufen. Soweit so gut.

Doch dann wie so oft in der IT sind Euphorie und Frust nicht weit voneinander entfernt. Als nächstes wollte ich GNU Radio installieren, nur leider gibt es fertige "Binaries" also ein per "exe" installierbares Programm nur für 64Bit Windows. Eine x86 Version für 32Bit konnte ich nicht finden. Auf dem alten Dell E-6400 Rechner läuft aber bewusst eine x86 Windows Variante, da ich damit noch viele alte Geräte und deren 32Bit Treiber nutzen kann wie z.B. einen Galep4 Programmierer. Nun muss ich überlegen ob es sich lohnt das GNU Radio unter Win32 selbst zu kompilieren. 

Soweit der Stand mit Windows zu diesem Thema. Da viele hier keinen Linux Rechner haben werde ich versuchen das GNU Radio Projekt auch unter Windows zum laufen zu bringen und meine Erfahrungen hier posten, so es mir denn gelingt.
Seiten: 1 2