Forum: HF, Funk und Felder Alternativer SSB-TX Ansatz => QRP


von Wulf D. (holler)


Lesenswert?

Beschäftige mich gerade mit dem vereinfachten Ansatz zur Erzeugung eines 
SSB-TX Signals, nach der Idee der kleinen QRP uSDX-Transceiver.

Momentan noch theoretisch, hab die Idee in Octave / Matlab nachgebaut.

Das resourcen-sparende Konzept basiert darauf, aus Modulationssignal fm 
und seiner Hilbert-Transformierten separat Delta-Phase und Amplitude für 
das SSB-Signal zu berechnen.
Mit der Delta-Phase wird im Abtasttakt fs der Trägeroszillator gemäß 
fm*2*pi/fs nachgeführt.
Die Amplitude moduliert den Träger wie gehabt.

Hat das jemand aus dem Forum mal nachvollzogen?

Wollte mir über die zahlreichen YouTube-Videos über die Qualität des 
SSB-Signals ein Bild machen, aber das ist wegen der mittlerweile 
unerträglichen Werbung kaum drin.
Das was ich gehört habe, fand ich diplomatisch gesagt, ausbaufähig.
Nur schwer verständlich.

Hab mir das Hilbert-Filter aus der USDX-Software genauer angesehen: vom 
Prinzip her ok, aber viel zu kurz. Hat nur 15 Taps.
Nach meinen theoretischen Experimenten müssen mindestens 41 her, auch 
bei optimierter Synthese.

Hier scheint der Schwachpunkt des Ansatz zu liegen: kleinste 
Amplitudenfehler zwischen (verzögertem) Original- und Hilbert- Signal 
führen zu kleinen Phasenfehlern und die wiederum zu heftigen 
Verzerrungen im Spektrum des erzeugten SSB-Signals.
Das kann anscheinend nur durch ein sehr präzises - und damit langes - 
Filter vermieden werden.

Oder hat jemand andere Erfahrungen, egal ob theoretisch berechnet oder 
praktisch erprobt?
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wulf D. schrieb:
> Hab mir das Hilbert-Filter aus der USDX-Software genauer angesehen: vom
> Prinzip her ok, aber viel zu kurz. Hat nur 15 Taps.

Lass mich raten: die kleine CPU da ist zu langsam und/oder zu klein für 
mehr. Geräte wie QMX und Co. benutzen deutlich größere CPUs, aber sind 
leider nicht opensource (wie auch (tr)uSDX dann).

QMX benutzt aber, wenn ich das richtig verstanden habe, noch irgendwas 
ganz anderes.
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bin mir übrigens nicht ganz sicher, ob man den Thread nicht lieber ins 
DSP-Forum schieben sollte. Da gibt es möglicherweise mehr Expertise zu 
solchen Themen.
von Gerd E. (robberknight)


Lesenswert?

Wulf D. schrieb:
> Das resourcen-sparende Konzept basiert darauf,

Was für eine Ressource willst Du sparen?

Strom während dem Senden, Volumen im Gehäuse, Gewicht, Kosten für die 
Bauteile, Entwicklungszeit,...?

Das kann zu ganz unterschiedlichen Konzepten führen.
: Bearbeitet durch User
von Wulf D. (holler)


Lesenswert?

Jörg W. schrieb:
> Lass mich raten: die kleine CPU da ist zu langsam und/oder zu klein für
> mehr. Geräte wie QMX und Co. benutzen deutlich größere CPUs, aber sind
> leider nicht opensource (wie auch (tr)uSDX dann).
>
Wahrscheinlich, mit dem AT-Mega 8-Bitter sind wohl keine längeren Filter 
drin.

Dann ist der SSB-Betrieb im USDX wohl eher zum Spielen. Oder habe ich 
was übersehen?

Eine stärkere CPU wie im QMX wird helfen, schade das es closed Source 
ist.

Jörg W. schrieb:
> Bin mir übrigens nicht ganz sicher, ob man den Thread nicht lieber ins
> DSP-Forum schieben sollte. Da gibt es möglicherweise mehr Expertise zu
> solchen Themen.

Schon möglich, hier ist eher das HF-Analogforum.
Aber das DSP-Forum ist total verwaist. Außerdem hoffe ich noch auf eine 
Rückmeldung aus der Praxis, von jemanden der das USDX in SSB mal 
getestet hat.
von Wulf D. (holler)


Lesenswert?

Gerd E. schrieb:
> Was für eine Ressource willst Du sparen?
>
> Strom während dem Senden, Volumen im Gehäuse, Gewicht, Kosten für die
> Bauteile, Entwicklungszeit,...?

QRP eben: Leistung/Strom, Hardware, Volumen. Dadurch auch Kosten.

Konkret hätte ich gern Rückmeldung zum oben genannten Konzept.
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wulf D. schrieb:
> Außerdem hoffe ich noch auf eine Rückmeldung aus der Praxis, von
> jemanden der das USDX in SSB mal getestet hat.

Was ich gehört habe, nicht besonders toll.  Habe mal versucht, es für 
FT8 zu benutzen, recht erfolglos, und irgendwie klang das auch seltsam. 
Habe aber nicht versucht, ob sich irgendwo mit Aussteuerungspegel oder 
dergleichen da was Besseres machen lässt.

FT8 mit dem QMX habe ich schon gemacht, aber der hat eh einen eigenen 
Digimode, bei dem er das Analogsignal erstmal digitalisiert, die 
Frequenz(en) ermittelt, und dann explizites FSK in der Firmware macht.

Für „richtiges SSB“ bin ich allerdings der falsche Ansprechpartner.  Von 
ein paar Contestens abgesehen, habe ich in meinem Leben nur sehr wenig 
SSB gemacht.
von Wulf D. (holler)


Lesenswert?

Danke, das bringt mich schon mal weiter.

Ich werde im nächsten Schritt meine Octave-Simulation mit realen 
Audiosamples füttern und wieder Demodulieren. Mal sehen wie sich das 
anhört, auch im Vergleich zum USDX.

Hatte übrigens im Winter einen FT8 SW-Dekoder in ein kleines SDR auf 
Pico2-Basis gebaut.
Auf längere Sicht möchte ich das SDR TX-fähig ausbauen, incl FT8, ohne 
zusätzlichen PC etc.
von Georg S. (randy)


Lesenswert?

Sowas habe ich vor einiger Zeit mal gemacht:
https://dl0tz.de/polar/index.html
Nicht mit dem Ansatz QRP, sondern um ein SSB Signal im GHz-Bereich zu 
bekommen, ohne das übliche Setup (70cm-SSB-Funke und hoch mischen). 
Konkret ging es mir um 2,4GHz für einen QO-100 Uplink.
Ja, bei Polarer Modulation ist die Nachbarkanalunterdrückung das große 
Problem (siehe die Spektren auf der Webseite). Ist eher für Anwendungen 
geeignet bei denen das nicht so wichtig ist. Der Satellit sieht sowieso 
keine Nebenaussendung unterhalb -15dB weil das im thermischen Rauschen 
untergeht. Und bei anderen Mikrowellenbändern im Amateurfunkbereich ist 
der Freund auf dem Nachbarhügel vermutlich der einzige Empfänger in 
Reichweite.
von Georg S. (randy)


Lesenswert?

Ja, der uSDX hätte mal eine etwas stärkere CPU nötig. Wenn man in den 
Code schaut sieht man dass der sich ziemlich strecken muss um mit der 
mangelnden Rechenleistung zurecht zu kommen. Heutzutage unnötig. Ich 
baue mein o.g. Projekt gerade von einem STM32F103 (haha. ja, hab mit 
einem Bluepill Board angefangen) auf einen STM32H523 um. Dann kann ich 
die Amplituden- und Phasenwerte mit 48kSps berechnen statt mit 16kSps. 
Davon erhoffe ich mir eine bessere Nachbarkanalunterdrückung.
von Daniel (daniel3)


Lesenswert?

Wulf D. schrieb:
> Beschäftige mich gerade mit dem vereinfachten Ansatz zur Erzeugung eines
> SSB-TX Signals, nach der Idee der kleinen QRP uSDX-Transceiver.

Das finde ich auch sehr interessant.


> Hier scheint der Schwachpunkt des Ansatz zu liegen: kleinste
> Amplitudenfehler zwischen (verzögertem) Original- und Hilbert- Signal
> führen zu kleinen Phasenfehlern und die wiederum zu heftigen
> Verzerrungen im Spektrum des erzeugten SSB-Signals.

Kann es sein, dass ein Teil der Verzerrungen vom TP-Filter 
(Oberwellenfilter) hinter dem Sende-MOSFET wieder eliminiert wird (oder 
überhaupt oberhalb von 3KHz liegt und beim Empfänger weggefiltert wird)?
Vielleicht gehen diese Verzerrungen auch einfach im Kurzwellenstörnebel 
unter oder das menschliche Ohr kann damit gut umgehen?

Mit welchen Audio-Frequenzbereichen arbeitest du bei deinen 
Untersuchungen?


> Oder hat jemand andere Erfahrungen, egal ob theoretisch berechnet oder
> praktisch erprobt?

Kann man das ganze irgendwie simulieren und schauen, was dabei 
rauskommt? Oder in einen uSDX unterschiedliche Sinusfrequenzen 
einspeisen und mit einem Spectrum Analyzer schauen, was hinten 
rauskommt?

Habe einen uSDX und nutze den hin und wieder auf 40m. SSB funktioniert 
so weit gut, bei der kleinen Sendeleistung würde ein leicht kratziger 
Klang wahrscheinlich nicht wesentlich auffallen.
Von mir empfangene Stationen, die mit uSDX senden, klingen auf jeden 
Fall verständlich (aber eben oft eher leise).

Das mit dem Pi Pico2 ist sicher eine gute Idee!!!


> Wollte mir über die zahlreichen YouTube-Videos über die Qualität des
> SSB-Signals ein Bild machen, aber das ist wegen der mittlerweile
> unerträglichen Werbung kaum drin.

Gerüchten nach kann man Browsererweiterungen wie uBlock Origin 
verwenden, kenne mich da aber nicht aus.
: Bearbeitet durch User
von Sandra (sdr_f169)


Angehängte Dateien:

Lesenswert?

Kurz von mir in meiner Mittagspause:

Der uSDX war ursprünglich eine Modifikation des QCX. Da waren 
Amplitudenmodulation durch Modulation der 12V Betriebsspannung der 
Class.E Endstufe und Phasenmodulation am Gate der Endstufen-FETs 
weitgehend voneinander entkoppelt. Bei der späteren Verschlimmbesserung 
durch Modifikation des uSDX erfolgen dann Amplituden- und 
Phasenmodulation zusammen nur über die Gate-Spannung. Das erfordert eine 
Einstellung des DC-Wertes der Amplitudenmodulationsspannung und diese 
Einstellung ist auch noch vom jeweiligen Frequenzband abhängig. Die 
ursprüngliche Schaltung des uSDX ergibt auf jeden Fall das bessere 
SSB-Signal.
von Wulf D. (holler)


Angehängte Dateien:

Lesenswert?

Georg S. schrieb:
> Sowas habe ich vor einiger Zeit mal gemacht:
> https://dl0tz.de/polar/index.html

Klasse, dass sich hier jemand mit ganz Ähnlichem beschäftigt!
Interessant auch die Versuche mit dem SI5351. Wollte den auch nutzen. 
Mal sehen ob ich auf die gleichen Probleme stoße.

Georg S. schrieb:
> Ich
> baue mein o.g. Projekt gerade von einem STM32F103 (...) auf einen STM32H523 um. 
Dann kann ich
> die Amplituden- und Phasenwerte mit 48kSps berechnen statt mit 16kSps.
> Davon erhoffe ich mir eine bessere Nachbarkanalunterdrückung.

Bin gespannt was dabei rauskommt.

Nach meinen Octave-Versuchen sehe ich den Grund der Artefakte eher in 
mangelnder Filterpräzision und nicht in niedriger Abtastrate.

Anbei ein (theoretisches) Beispiel mit den USDX-Filterkoeffizienten und 
zum Vergleich ein selbst synthetisiertes Filter nach diesem Ansatz:
https://www.wirelessinnovation.org/assets/Proceedings/2011/2011-1b-carrick.pdf

Dabei ganz willkürlich drei Sinustöne mit -20dB Pegel mit 400Hz, 800Hz 
und 1600Hz durch die Filter gegeben und mit einem Träger von 15kHz in 
Polarmodulation beaufschlagt. Die Abtastrate des USDX auf 4500 1/s 
geschätzt.

Eigentlich sind die Ergebnisse des USDX absolut indiskutabel.

Bei 800Hz sieht es nur deshalb gut aus, weil ich testhalber die 
Skalierung auf genau diese Frequenz abgeglichen habe.

Genau daher komme ich auf die Vermutung, dass kleinste 
Amplitudenunterschiede von Original- und Hilbert- Signal zu heftigen 
Artefakten führen.

Und die Amplitudenabweichungen kommen zweifellos aus der Welligkeit des 
Hilbert-Filters.
von Wulf D. (holler)


Lesenswert?

Sandra schrieb:
> Bei der späteren Verschlimmbesserung
> durch Modifikation des uSDX erfolgen dann Amplituden- und
> Phasenmodulation zusammen nur über die Gate-Spannung. Das erfordert eine
> Einstellung des DC-Wertes der Amplitudenmodulationsspannung und diese
> Einstellung ist auch noch vom jeweiligen Frequenzband abhängig. Die
> ursprüngliche Schaltung des uSDX ergibt auf jeden Fall das bessere
> SSB-Signal.

Das die Amplitudenmodulation in einigen Varianten über das Gate und in 
Anderen über die Versorgungsspannung läuft, fiel mir auch schon auf.

Hatte das mal grob in LT-Spice simuliert, schien beides mit erträglichen 
Oberwellen zu funktionieren. Es wird ja mittels LUT linearisiert. 
Interessant aber die Abhängigkeit vom Frequenzband.

Nach dem Hinweis vom Jörg W. hatte ich mir auch das QMX angeschaut. Da 
steckt etwas mehr Aufwand in der PA-Ansteuerung. Ansonsten gleiches 
Prinzip.

Die Phase wird aber doch nur über den SI5351 gesteuert, hat nichts mit 
der PA zu tun.
von Wulf D. (holler)


Lesenswert?

Daniel schrieb:
> Kann es sein, dass ein Teil der Verzerrungen vom TP-Filter
> (Oberwellenfilter) hinter dem Sende-MOSFET wieder eliminiert wird (oder
> überhaupt oberhalb von 3KHz liegt und beim Empfänger weggefiltert wird)?
Nein, ich beziehe mich nur auf die Inband-Artefakte.

> unter oder das menschliche Ohr kann damit gut umgehen?
Denke auch, dass das menschliche Ohr noch die miesesten Signale 
verstehen kann.

> Mit welchen Audio-Frequenzbereichen arbeitest du bei deinen
> Untersuchungen?
Siehe Antwort auf Georg S., 400Hz - 1600Hz, also mitten im Sprachband.

> Kann man das ganze irgendwie simulieren und schauen, was dabei
> rauskommt?

Genau das habe ich versucht. Wobei ich nicht die beschränkte 8 Bit 
Genauigkeit berücksichtigt habe, nur auf Basis des Hilbert-Filters und 
der vermuteten Abtastfrequenz.

> Oder in einen uSDX unterschiedliche Sinusfrequenzen
> einspeisen und mit einem Spectrum Analyzer schauen, was hinten
> rauskommt?
>
Reale Meßwerte wären wirklich spannend. Wollte mir schon einen 
Gebrauchten nur zum messen kaufen. Aber wie einen der minderwertigen 
Clones auf dem Markt vermeiden?

> Habe einen uSDX und nutze den hin und wieder auf 40m. SSB funktioniert
> so weit gut, bei der kleinen Sendeleistung würde ein leicht kratziger
> Klang wahrscheinlich nicht wesentlich auffallen.
> Von mir empfangene Stationen, die mit uSDX senden, klingen auf jeden
> Fall verständlich (aber eben oft eher leise).

Interessant.
von Georg S. (randy)



Lesenswert?

Wulf D. schrieb:
> Klasse, dass sich hier jemand mit ganz Ähnlichem beschäftigt!
> Interessant auch die Versuche mit dem SI5351. Wollte den auch nutzen.
> Mal sehen ob ich auf die gleichen Probleme stoße.

Auf welchen Frequenzbereich zielst du ab? Wenn du bei 24MHz sendest ist 
der Effekt nur 1/100 so groß wie bei 2,4GHz und damit vernachlässigbar.
Das zeigt wie kritisch Phasenrauschen und Phasenstabilität wird wenn man 
schmalbandige SSB Signale im GHz Bereich hat.


> Nach meinen Octave-Versuchen sehe ich den Grund der Artefakte eher in
> mangelnder Filterpräzision und nicht in niedriger Abtastrate.

Es gibt zwei Arten der Nebenaussendungen die ich im meiner Antwort 
vermischt hatte. Die "echte" Nachbarkanalunterdrückung (siehe 1.Bild) 
kommt durch nichtideale Kombination von Amplituden- und Phasenmodulation 
zustande. Die war  bei meinen Speki-Messugen an sich akzeptabel. Ich 
hatte aber auch noch den Effekt dass bei +/- 16kHz vom Träger das Signal 
wieder deutlich hoch kam (siehe 2.Bild).
Der F103 hat nicht genügend Rechenleistung um die Signale schneller als 
mit 16kSps zu berechnen. Ich hatte mal die AM und PM Werte für ein 3-Ton 
Signal mit 48kSps vorberechnet und mit dem Controller nur abspielen 
lassen, da war der zweite Effekt viel geringer. Deswegen hoffe ich dass 
bei höherer Rechenleistung und 48kSps die Nebenaussendungen auch bei 
Sprachsignalen niedriger werden.

Ja, ein 3-Ton Signal. Bei einem 2-Ton Signal geht die Amplitude durch 
Null, ganz schlecht wenn man polar moduliert. Deswegen habe ich einen 
3.Ton mit -20dB dazu genommen, so dass ich dem Nullpunkt der Amplitude 
immer nur auf 10% nahe gekommen bin. Ist für ein Sprachsignal auch 
realistisch, da kommt man nur selten Nahe an den Nullpunkt der 
HF-Amplitude ran. Und ich wollte die Nulldurchgänge mit den hohen 
FM-Hüben weg lassen um zu sehen was ich sonst noch für Probleme in der 
Modulation habe.
: Bearbeitet durch User
von Daniel (daniel3)


Lesenswert?

Ganz kurz, hier ein Video-Link:

https://youtu.be/PzubNCuGvEQ?t=110

"DL2MAN uSDX SSB transmit demo" - Er testet hier den uSDX über 
Dämpfungsglieder direkt an einem ICOM-Gerät (also keine KW-Störungen im 
Spiel).

Der Sound klingt für mich etwas übersteuert. Ansonsten hört man 
definitiv Artefakte, die aber auch mit der Übersteuerung zusammenhängen 
können.
In jedem Fall ist die Sprache verständlich.

Die Artefakte klingen wie KW-Prasseln, deshalb fallen sie im normalen 
Bettrieb wahrscheinlich kaum auf.
von Wulf D. (holler)


Lesenswert?

Georg S. schrieb:
> Auf welchen Frequenzbereich zielst du ab? Wenn du bei 24MHz sendest ist
> der Effekt nur 1/100 so groß wie bei 2,4GHz und damit vernachlässigbar.

Ok ziele auf KW, werde dann den Effekt kaum bemerken.

> Es gibt zwei Arten der Nebenaussendungen die ich im meiner Antwort
> vermischt hatte. Die "echte" Nachbarkanalunterdrückung (siehe 1.Bild)
> kommt durch nichtideale Kombination von Amplituden- und Phasenmodulation
> zustande.

Glaube dir gern, dass du Reste aus der Updatefrequenz des Taktgenerators 
und Signaldämpfers vorfindest. Sieht man auf deinem Analyzer-Screenshot. 
Die werden sich natürlich mit schnelleren Updates verändern.

Ich glaube aber trotzdem noch, dass kleine Fehler in der Amplitude, egal 
ob ungenau berechnet oder gegen die Phase verschoben, keinen 
gravierenden Effekt auf die SSB-Signalqualität haben.
Ganz anders sieht es bei kleinen Phasenfehlern aus. Und die berechne ich 
zumindest aus dem arctan (Hilbert / verzögertes Original). Sind da 
kleine Fehler z.B. durch Welligkeit des Hilberttransformators drin, 
sieht das SSB-Signal gleich ganz furchtbar aus.

>
> Ja, ein 3-Ton Signal. Bei einem 2-Ton Signal geht die Amplitude durch
> Null, ganz schlecht wenn man polar moduliert. Deswegen habe ich einen
> 3.Ton mit -20dB dazu genommen, so dass ich dem Nullpunkt der Amplitude
> immer nur auf 10% nahe gekommen bin.

Den Abschnitt verstehe ich nicht. Bezieht sich das auf meine gerechneten 
Spektrogramme?
Da hatte ich die drei Töne nacheinander durchgerechnet.


Daniel schrieb:
> https://youtu.be/PzubNCuGvEQ?t=110
>
> "DL2MAN uSDX SSB transmit demo" - Er testet hier den uSDX über
> Dämpfungsglieder direkt an einem ICOM-Gerät (also keine KW-Störungen im
> Spiel).
>
Für eine Direktverbindung sind schon deutlich Störungen zu hören.
Aber klar, ist gut zu verstehen.
Der Test mit dem Oszi sagt nicht viel aus, Aufbau ist auch ziemlich 
unklar.
von Georg S. (randy)


Lesenswert?

Wulf D. schrieb:
>> Ja, ein 3-Ton Signal. Bei einem 2-Ton Signal geht die Amplitude durch
>> Null, ganz schlecht wenn man polar moduliert. Deswegen habe ich einen
>> 3.Ton mit -20dB dazu genommen, so dass ich dem Nullpunkt der Amplitude
>> immer nur auf 10% nahe gekommen bin.
>
> Den Abschnitt verstehe ich nicht. Bezieht sich das auf meine gerechneten
> Spektrogramme?
> Da hatte ich die drei Töne nacheinander durchgerechnet.

Nein, ich hab mich auf das Bild von meinem "2-Ton-Test" bezogen der 
eigentlich ein 3-Ton -Test ist, nur dass der 3. Ton bei -20dB sowieso 
von den Intermod-Produkten der beiden Haupttöne zugekleistert wird.


Wulf D. schrieb:
> Für eine Direktverbindung sind schon deutlich Störungen zu hören.
> Aber klar, ist gut zu verstehen.

Ich habe festgestellt dass Sprache recht unkritisch ist. Wenn man die AM 
der polaren Modulation weg lässt, also nur die PM macht, klingt die 
Sprache zwar deutlich verzerrt, ist aber noch verständlich. Das Spektrum 
hat natürlich massiv Außerband-Abstrahlung, v.a. in den benachbarten 
Kanälen.
von Georg S. (randy)


Lesenswert?

Wulf D. schrieb:
> Für eine Direktverbindung sind schon deutlich Störungen zu hören.
> Aber klar, ist gut zu verstehen.

Es ist aber auch schwer Fehler zu suchen. Wenn ich meinen RTL-SDR per 
Dämpfungsglied an den Ausgang des polaren Modulators schalte hört sich 
die Sprache irgendwie verzerrt an. Wenn ich den Modulator für den QO-100 
Uplink benutze hört es sich im Downlink viel besser an. Weiß nicht warum 
das so ist. Vielleicht koppelt zu viel phasenmodulierte HF an dem 
digitalen Attenuator vorbei in den RTL-SDR rein. Und bei 2,4GHz kann ich 
mit dem RTL-SDR auch nicht empfangen, mir dem kann ich nur bei 1290 oder 
430 MHz testen.
von Wulf D. (holler)


Lesenswert?

Georg S. schrieb:
> Es ist aber auch schwer Fehler zu suchen.

Das erfahre ich auch gerade.

Wollte eigentlich meine Simulation mit Audiofiles füttern. Aber schon 
nach einigen 100ms gehen die Signale im anschwellenden Geräusch unter.

Da steckt noch ein systematischer Fehler drin. Eigentlich nichts 
komplexes, finde es aber nicht.

Hat irgendwas mit der Delta-Phase zu tun.
von Sandra (sdr_f169)


Lesenswert?

Georg S. schrieb:
> Wulf D. schrieb:
>> Für eine Direktverbindung sind schon deutlich Störungen zu hören.
>> Aber klar, ist gut zu verstehen.
>
>  ... Wenn ich meinen RTL-SDR per
> Dämpfungsglied an den Ausgang des polaren Modulators schalte hört sich
> die Sprache irgendwie verzerrt an. Wenn ich den Modulator für den QO-100
> Uplink benutze hört es sich im Downlink viel besser an. Weiß nicht warum
> das so ist. ...

Wenn ich das SSB-Signal vom uSDX über ein Dämpfungsglied mit dem ICOM 
selber anhöre, hört sich das auch schlechter an, als wenn ich mein 
Signal mit einem entfernten WebSDR anhöre. Bisher haben alle QSO-Partner 
mein SSB-Signal vom uSDX für gut verständlich befunden.
von Daniel (daniel3)


Lesenswert?

Georg S. schrieb:
> Weiß nicht warum
> das so ist. Vielleicht koppelt zu viel phasenmodulierte HF an dem
> digitalen Attenuator vorbei in den RTL-SDR rein.

Eventuell sollte man bei solchen Messungen die Massen entkoppeln.

z.B. mit einem symmetrischen Dämpfungsglied dazwischen, einem Übertrager 
oder einfach Signal und(!) Masse(n) jeweils mit einem kleinen C 
entkoppeln.
von Wulf D. (holler)


Lesenswert?

Danke euch erstmal für die Rückmeldungen, vor allem auch zu den 
praktischen Erfahrungen mit dem uSDX.

Habe den Fehler in meiner SSB-Simulation nach dem polaren Ansatz 
gefunden.
Hatte versucht, das Signal über einen ganz normalen Cosinus mit der aus 
dem Modulationssignal berechneten Delta-Phase abzubilden.
So in der Art:
Das geht leider sehr schnell schief. Grund ist die Periodizität des 
cos(), wo kleinste Rechenfehler in der Phase, also hier das Delta-Phi, 
in kürzester Zeit t das Ergebnis ruinieren.

Ich hatte in meinen Plots über 0,5s gerechnet. Da türmt sich schon ein 
beträchtlicher Fehler auf, die Ergebnisse sind unbrauchbar.

Lösen kann man das mit der VCO-Funktion. In meiner Octave-Version steckt 
zwar ein kleiner Bug drin, läßt sich aber umschiffen. Jetzt 
funktionieren auch längere Audio-Files.

Werde die Ergebnisse bei Zeiten korrigieren, sobald der eingeschränkte 
Wertebereich und die im uSDX verwendeten Näherungsformeln eingebaut 
sind.
von Herbert Z. (herbertz)


Lesenswert?

Mein Ansatz ist ...eventuell ist es auch falsch gedacht...man könnte ja 
das fast komplette Pico SDR Design benutzen um zumindest CW zu machen. 
Den Muxer brauchet es dann nicht, aber einen mehrstufigen Verstärker mit 
TP.
Einziges Manko wäre, die Angezeigte Sendefrequenz würde um den ZF Betrag 
(einige kHz) nicht mit der Sendefrequenz übereinstimmen. Wäre jetzt aber 
nicht so schlimm und eventuell gäbe es dafür auch eine Lösung. Ich bin 
da noch nicht fertig mit diesem Gedanken.
: Bearbeitet durch User
von Herbert Z. (herbertz)


Lesenswert?

Nachtrag :Ja ich weiß, es werden auch diverse VFO Baugruppen verkauft 
mit wenig Ausgangsleistung an 50 Ohm....
Auf Basis des Pico SDR arbeitet man auch an einem Allmode TX. Ist aber 
noch nicht so weit.
von Wulf D. (holler)


Lesenswert?

Der uSDX, der von Jörg erwähnte QMX und auch Georgs Projekt nutzen alle 
einen VCO.
Beim uSDX ist es der sehr günstige programmierbare Taktgenerator SI5351, 
den ein paar SW-Tricks in einen brauchbaren VCO verwandeln.

Mein mittelfristiges Ziel ist eine TX-Integration im Pico-SDR.

Wollte jetzt erstmal theoretisch schauen, wo die mehr oder weniger 
großen Abstriche an der TX-Qualität im uSDX liegen. Das schöne an dem 
Projekt ist, dass alle Quellen, HW und SW, offenliegen.

Jetzt kann man detailliert testen, was die einzelnen Vereinfachungen 
wegen fehlender Rechenleistung und beschränkter HW für Auswirkungen 
haben. Da wären z.B.:
1
- recht kurzes Hilbert-Filter
2
- 8- / 16 Bit Integerarithmetik
3
- einfache Wurzel-Näherungsfunktion
4
- grob genäherter arccos
5
- niedrige (?) Abtastrate
6
- fehlender Anti-Aliasing-Filter

Mit dem Pico2 bräuchte man viel weniger Kompromisse.

Im RX-Zweig des Pico-SDR verzichtet man sogar auf einen externen 
Taktgenerator und baut den mittels Microcode der Port-IO nach.
Funktioniert auch, aber das jittert ganz ordentlich. Für TX unbrauchbar, 
damit wird man vermutlich zu heftige Nebenaussendungen provozieren.
von Herbert Z. (herbertz)


Lesenswert?

https://github.com/kaefe64/Arduino_uSDX_Pico_FFT_Proj


Ist auch nahrhaft für den Kopf...
von Georg S. (randy)


Lesenswert?

Wulf D. schrieb:
> Das schöne an dem
> Projekt ist, dass alle Quellen, HW und SW, offenliegen.

Bei meinem Projekt liegen die Quellen auch offen:
https://gitlab.com/dg6rs/polar
Vor allem auf den Hilbert-Trafo will ich hinweisen: Meine Suche damals 
hat ergeben dass es einfacher ist I und Q als IIR-Allpässe zu berechnen, 
die untereinander 90° Phasenverschiebung haben. Das ist von der 
Rechenleistung her einfacher als den I-Kanal 1:1 (mit delay) 
durchzuschleifen und einen passenden 90° versetzen Q-Kanal zu berechnen. 
Man hat dann eine frequenzabhängige Phasenverschiebung im Audio, aber es 
heißt das menschliche Ohr hört das nicht.

Ich denke eines der Haupt-Kompromisse dem uSDX ist die niedrige 
Abstastrate. Ich hab die Grafiken nicht auf der Webseite sondern nur im 
Vortrags-Skript der UKW-Tagung in Weinheim: Die Wandlung der I/Q Daten 
in Amplitude und Phase ist eine nichtlineare Funktion die das Spektrum 
aufweitet. Außerhalb der 3kHz SSB-Nutzband müssen sich Amplituden- und 
Phasensignal so überlagern dass sie sich im Spektrum zu Null aufheben. 
Und das in dem ganzen Frequenzbereich in dem das AM und PM Signal 
relevant Leistungsdichte haben. Dafür sind meine 16kSps (=8kHz Nyquist) 
eigentlich schon zu knapp. Deswegen will ich das auf 48kSps aufbohren.
Ich glaube der uSDX hat nirgendwo ein Bild vom Spektrum seines 
TX-Signals. Ich hab da einen verdacht, warum...
: Bearbeitet durch User
von Wulf D. (holler)


Lesenswert?

Herbert Z. schrieb:
> https://github.com/kaefe64/Arduino_uSDX_Pico_FFT_Proj

Danke, kannte ich noch nicht. Einiges gefällt mir gut, z.B. das schöne 
Display mit gut aufgelöster FFT.
So was hätte auch gut meinem FT8-Decoder gestanden :-)

Es hat auch auf die Pico-Schwächen verwiesen, wie den beschränkt 
nutzbaren Wertebreich des ADC. Immerhin bringt der Pico2 1/2 Bit mehr.

Er generiert das TX-Signal aus kartesischen Daten, mit Mischer und viel 
nachgeschalteter HW. Ich hoffe das geht mit dem polaren Ansatz mit 
weniger.

Georg S. schrieb:
> Bei meinem Projekt liegen die Quellen auch offen:
> https://gitlab.com/dg6rs/polar

Klasse, Vielen Dank!


> Vor allem auf den Hilbert-Trafo will ich hinweisen: Meine Suche damals
> hat ergeben dass es einfacher ist I und Q als IIR-Allpässe zu berechnen,
> die untereinander 90° Phasenverschiebung haben. Das ist von der
> Rechenleistung her einfacher als den I-Kanal 1:1 (mit delay)
> durchzuschleifen und einen passenden 90° versetzen Q-Kanal zu berechnen.
> Man hat dann eine frequenzabhängige Phasenverschiebung im Audio, aber es
> heißt das menschliche Ohr hört das nicht.

Kannte ich noch nicht, muss man erstmal verstehen.

> Ich denke eines der Haupt-Kompromisse dem uSDX ist die niedrige
> Abstastrate.

Möglich, aber ich komme da nicht hinter: die Abtastrate ist im uSDX in 
der Arduino-Loop-Schleife verborgen, wenn ich den Code richtig 
interpretiere.
Wenn der Code der Schleife abgearbeitet ist, fängt der vermutlich gleich 
wieder oben an. Kenne aber Arduino kaum.

> Ich hab die Grafiken nicht auf der Webseite sondern nur im
> Vortrags-Skript der UKW-Tagung in Weinheim: Die Wandlung der I/Q Daten
> in Amplitude und Phase ist eine nichtlineare Funktion die das Spektrum
> aufweitet. Außerhalb der 3kHz SSB-Nutzband müssen sich Amplituden- und
> Phasensignal so überlagern dass sie sich im Spektrum zu Null aufheben.

Sorry, aber das bezweifele ich: das ist zwar zeit- und wertediskret, 
aber ansonsten doch linear???
1
- Amplitude aus sqrt (Re² + Im²)
2
- Phase aus arctan (Im / Re)
3
- Delta Phase = Phase' (dt)
4
5
=> Delta-Phase steuert den Oszillator nach
6
=> Amplitude moduliert die PA

> Und das in dem ganzen Frequenzbereich in dem das AM und PM Signal
> relevant Leistungsdichte haben. Dafür sind meine 16kSps (=8kHz Nyquist)
> eigentlich schon zu knapp.

Klar, der Hilberttransformator hat nur einen eingeschränkten 
Frequenzbereich. Deshalb muss da auch ein Bandpass (Anti-Alaisingfilter) 
vor. Hatte ich oben zum uSDX angemerkt.

Aber 16kSps halte ich für Sprache schon für äußerst komfortabel. Musst 
halt sehen, dass dein Hilbert-Transformator wegen der recht hohen 
Abtastrate unten rum noch gut funktioniert. Ist in deinem Ansatz 
vielleicht gar kein Problem.

> Ich glaube der uSDX hat nirgendwo ein Bild vom Spektrum seines
> TX-Signals. Ich hab da einen verdacht, warum...

Ja, echte Messwerte fand ich auch noch nicht. Vielleicht steckt in den 
zahlreichen Youtube-Videos mehr als Gelaber, ggf frage ich den 
werbefreien Abo-Account meiner Tochter mal an.
von Georg S. (randy)


Angehängte Dateien:

Lesenswert?

Wulf D. schrieb:
> Sorry, aber das bezweifele ich: das ist zwar zeit- und wertediskret,
> aber ansonsten doch linear???
> - Amplitude aus sqrt (Re² + Im²)
> - Phase aus arctan (Im / Re)

Das sind zwei nichtlineare Funktionen. Für den 16kSps Fall habe ich das 
Spektrum der AM und PM simuliert (mit Octave, siehe Bild). So viel Pegel 
wie die PM bei +/-8kHz noch hat wundert mich dass das resultierende 
Spektrum der echten HF bei 16kSps überhaupt so gut ist. Einer der 
Hauptgründe warum ich mit 48kSps probieren will um zu sehen wie viel 
besser das wird.

Wulf D. schrieb:
> Möglich, aber ich komme da nicht hinter: die Abtastrate ist im uSDX in
> der Arduino-Loop-Schleife verborgen, wenn ich den Code richtig
> interpretiere.

Ich hatte im Kopf dass der uSDX 8kSps benutzt. Aber es ist lang her dass 
ich einen Blick in den Code geworfen habe. Damals als Vorbereitung,bevor 
ich meinen Code gestartet habe.
: Bearbeitet durch User
von Wulf D. (holler)


Angehängte Dateien:

Lesenswert?

Georg S. schrieb:
> Das sind zwei nichtlineare Funktionen.

Das stimmt natürlich.
Ich hatte was anderes im Sinn, nämlich warum sollten die Funktionen das 
Spektrum des Eingangssignals verbreitern?

Am Ende hast du auch hier Recht, da sieht man die längere Erfahrung 
damit. Habe meine Octave-Simulation mit realen Audiofiles gefüttert und 
da kommt tatsächlich ein unerwartet breites Signal raus.

Verstehe ich aber noch nicht. Vor allem wenn man im Vergleich den 
synthetischen Sweep, einen Sinus von 200Hz bis 2800Hz, Amplitude von 0,9 
auf 0,1 fallend, ansieht.

Da gibt es die Verbeiterung nicht. Interessant auch die Audio-Resultate.
Das reale Audio ist ein Tagesschau-Intro mit Begrüßung, mit Audacity 
steilflankig auf 250Hz bis 2700Hz bandbegrenzt. Abtastrate 6kSps.

Der Sweep bleibt nach der Demodulation glasklar.
Das reale Audio hat dagegen stark gelitten.
Vermute noch einen anderen Effekt, der hier zu Fehlern führt. Denke da 
an die Differenzierung der Phase. Benötigst Du diesen Rechenschritt in 
der von dir verwendeten Methode auch?

Anbei die Audio-Files. Bei den Tagesschau-Audios habe zwei verschiedene 
Hilbert-Filter ausprobiert. Das vom uSDX mit 15 Taps und eines mit N=41.
Höre kaum einen Unterschied.

> Für den 16kSps Fall habe ich das
> Spektrum der AM und PM simuliert (mit Octave, siehe Bild). So viel Pegel
> wie die PM bei +/-8kHz noch hat wundert mich dass das resultierende
> Spektrum der echten HF bei 16kSps überhaupt so gut ist. Einer der
> Hauptgründe warum ich mit 48kSps probieren will um zu sehen wie viel
> besser das wird.

Weiß nicht wie du das simuliert hast. Habe probehalber bei mir die 
Abtastfrequenz von 6kSps auf 12kSps verdoppelt, ohne die 
Audio-Bandbreite zu verändern. Das hatte weder auf das SSB-Signal noch 
auf das demodulierte Nutzsignal irgend einen Effekt.
von Georg S. (randy)


Lesenswert?

Wulf D. schrieb:
> Ich hatte was anderes im Sinn, nämlich warum sollten die Funktionen das
> Spektrum des Eingangssignals verbreitern?

Weil sie nichtlinear sind. Ich bin kein Mathematiker und hab keinen 
Ansatz das erklären zu können. War nur immer schon so...


> Vor allem wenn man im Vergleich den
> synthetischen Sweep, einen Sinus von 200Hz bis 2800Hz, Amplitude von 0,9
> auf 0,1 fallend, ansieht.

Ein reiner Sinus ist ein Sonderfall. Da hat man in der polaren 
Modulation keine AM, und die FM ist eher konstant bzw. nur langsam sich 
ändernd.

> Weiß nicht wie du das simuliert hast.

Ich kann mein Octave File mal wieder ausgraben wenn du dich da 
durchkämpfen willst. Ist aber eher kraut&rüben. Und es ist lang her. Ich 
muss mich da auch erst wieder rein suchen wenn ich das was machen 
wollte.

> Höre kaum einen Unterschied.

Hören ist bei mir so ein Problem. Es hört sich "irgendwie seltsam" an, 
ohne dass ich die Messtechnik oder auch nur eine Idee hätte wie ich das 
Problem greifen oder präzisieren könnte.
von Georg S. (randy)


Lesenswert?

Schau dir aber auf jeden fall den Hilbert Trafo an den ich gefunden 
habe:
https://web.archive.org/web/20070814013543/http://yehar.com/ViewHome.pl?page=dsp/hilbert/011729.html
https://www.mikrocontroller.net/attachment/33904/hilbert_Olli_Niemitalo.pdf

Sehr breitbandig und durch die IIR Filter brauch er wenige 
Multiplikationen.
Ist ursprünglich für 44,1kSps gedacht, geht aber auch bei kleineren 
Sampleraten.
von Wulf D. (holler)



Lesenswert?

Danke für die Hinweise!
Der Ansatz mit den Allpässen funktioniert, habe testhalber zwei sehr 
einfache mit je zwei Koeffizienten ausprobiert:
1
% Branch I (In-Phase)
2
aI1 = -0.735495;
3
aI2 =  0.459346;
4
% Branch Q (Quadrature)
5
aQ1 = -0.152135;
6
aQ2 =  0.855073;

An bei das Ergebnis des Tagesschau-Testsignals nach polarer 
SSB-Modulation und sync. Demodulation / Filterung.

Klingt anders, aber nicht unbedingt besser oder schlechter.
Frage mich noch immer, warum das so verzerrt klingt. Das müsste besser 
gehen.

Hat die Deutsche Bundespost früher auf den Fernstrecken nicht auch 
SSB-Trägerfrequenz-Übertragung für Telefonie genutzt?

Ich glaube die Achillesferse ist die Unstetigkeitsstelle -pi => +pi des 
atan2 bei der Berechnung der Phase.
Anschließend wird die Phase differenziert, zeitdiskret heißt das eine 
Differenz des aktuellen mit dem vorherigen Wert.

Dabei kann die Differenz-Phase heftig springen. In Oktave gibt es dafür 
die "unwrap"-Funktion, die je nach Schwellwert der Differenz eine 
Korrektur um 2*pi vornimmt.

Vermutlich funktioniert das nicht richtig, hier lohnt ggf eine 
Detailbetrachtung.
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wulf D. schrieb:
> Hat die Deutsche Bundespost früher auf den Fernstrecken nicht auch
> SSB-Trägerfrequenz-Übertragung für Telefonie genutzt?

Dürfte eher A3E als J3E gewesen sein.

Nicht nur Bundespost, btw.


https://fernmeldemuseum-dresden.de/technik/uebertragungstechnik/tf-uebertragungstechnik/systeme-mit-12-kanaelen/
von Wulf D. (holler)


Lesenswert?

Jörg W. schrieb:
> Dürfte eher A3E als J3E gewesen sein.

Interessanter Link. Aber A3E kann es nicht gewesen sein. Zitat
1
12 Fernsprechkanäle 300 Hz – 3400 Hz werden über zwei Amplitudenmodulationsstufen frequenzmäßig hintereinander in den Bereich 60 kHz bis 108 kHz (auch Primärgruppe genannt) umgesetzt.

48kHz / 12 = 4kHz. Ein wenig Platz brauchen die Analogfilter auch, da 
bleibt nur noch SSB.
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wulf D. schrieb:
> da bleibt nur noch SSB

oder C3E oder wie das heißt, ein Seitenband unterdrückt, aber der Träger 
noch dabei
von Wulf D. (holler)


Lesenswert?

Jörg W. schrieb:
> Wulf D. schrieb:
>> da bleibt nur noch SSB
>
> oder ein Seitenband unterdrückt, aber der Träger
> noch dabei

Das wäre auch möglich. Ist schwer, richtig detaillierte Infos darüber zu 
finden.

Kann mich kaum noch erinnern, aber Anfang der 80er könnte die Technik 
bei Ferngesprächen noch im Einsatz gewesen sein, bevor auf PCM 
gewechselt wurde.
Da gabs Rauschen, manchmal Nebensprechen und Prasselgeräusche, aber so 
merkwürdige Verzerrungen wie in meiner SSB-Simu gabs nicht.

Vielleicht bin ich mit dem Polar-Ansatz, also Amplituden- und 
Phasenmodulation, auf dem Holzweg.
von Wulf D. (holler)


Angehängte Dateien:

Lesenswert?

Hab mal ein Blockschaltbild von der Simulation angefügt.
Die Symbolik zwischen zeitdiskret- und kontinuierlich geht etwas 
durcheinander, sollte aber das Vorgehen ausreichend erklären.

Denke schon dass die Simulation halbwegs passt, das Youtube von DL2MAN 
klingt ganz ähnlich verzerrt.
Nur in der Frage warum das so ist und wie man ggf Abhilfe schaffen kann, 
bin ich keinen Schritt weiter.
von Daniel (daniel3)


Lesenswert?

Wulf D. schrieb:
> Denke schon dass die Simulation halbwegs passt, das Youtube von DL2MAN
> klingt ganz ähnlich verzerrt.

Bist du sicher, dass du den Sound vom DL2MAN-Video als Referenz nehmen 
kannst? Wir hatten ja weiter oben schon diskutiert, dass da 
wahrscheinlich über die Gerätemassen zu viel Sendeleisting 
reingeschwappt sein könnte:

Sandra schrieb:
> Wenn ich das SSB-Signal vom uSDX über ein Dämpfungsglied mit dem ICOM
> selber anhöre, hört sich das auch schlechter an, als wenn ich mein
> Signal mit einem entfernten WebSDR anhöre. Bisher haben alle QSO-Partner
> mein SSB-Signal vom uSDX für gut verständlich befunden.

Meiner Meinung nach bräuchtest du echte Aufnahmen vom uSDX unter realen 
Bedingungen mit optimal ausgesteuertem Mikrofonsignal.
von Wulf D. (holler)


Lesenswert?

Daniel schrieb:
> Bist du sicher, dass du den Sound vom DL2MAN-Video als Referenz nehmen
> kannst?

Sicher bin ich nicht. Aber immerhin ist DL2MAN einer der beiden 
Entwickler des uSDX, sollte schon wissen was er tut.

> Meiner Meinung nach bräuchtest du echte Aufnahmen vom uSDX unter realen
> Bedingungen mit optimal ausgesteuertem Mikrofonsignal.

Klar, das wäre optimal. Am besten mit dem gleichen Audiofile 
angesteuert, welches ich für die Simu verwendete. Besitze aber keinen 
uSDX. Einen vertrauenswürdigen findet man ab 100€.
Vielleicht magst du einen Test durchführen, die Audio-Testdatei hatte 
ich oben angehängt.

Habe mal testweise das SSB-Signal kartesisch moduliert, d.h. die I- und 
Q- Komponente nach Interpolation mit cos() und sin() multipliziert und 
addiert bzw subtrahiert, mit der Trägerfrequenz im Argument.

Nach Demodulation mit dem gleichen Synchron-Detektor, wie ich in für die 
Polarmodulation nutzte, ist nun das Ergebnis nicht vom Original zu 
unterscheiden. Auch das modulierte Trägerspektrum ist deutlich schmaler.
Im realen Leben bedeutet aber so ein Ansatz einen viel größeren 
Hardwareaufwand.
von Wulf D. (holler)



Lesenswert?

Zum Vergleich Spektrum und Demodulationsbeispiel der Simulation mit 
kartesischer SSB-Modulation. Ist viel sauberer.
Bleibt noch immer die Frage warum, wo klemmt es beim polaren Ansatz?
von Daniel (daniel3)


Lesenswert?

Wulf D. schrieb:
> Klar, das wäre optimal. Am besten mit dem gleichen Audiofile
> angesteuert, welches ich für die Simu verwendete. Besitze aber keinen
> uSDX. Einen vertrauenswürdigen findet man ab 100€.
> Vielleicht magst du einen Test durchführen, die Audio-Testdatei hatte
> ich oben angehängt.

Grundsätzlich wäre das möglich. Ich könnte das File in den uSDX 
einspielen, dann über Dämpfungsglied ins RTL-SDR und den Sound dort 
(also im PC) aufnehmen.

Dann müsste ich aber wissen, wie groß das Dämpfungsglied etwa sein 
sollte (Sendeleistung uSDX irgendwo bei 3,5W je nach Betriebsspannung) 
und außerdem wäre wichtig zu wissen, wie das Dämpfungsglied aufgebaut 
sein müsste (Abschirmung einzelner Segmente, asymm. oder symm., wie 
viele Einzelsegmente etc.), damit es keine unerwarteten 
Übersprechungen/Übersteuerungen gibt.
von Wulf D. (holler)


Lesenswert?

Daniel schrieb:
> Grundsätzlich wäre das möglich. Ich könnte das File in den uSDX
> einspielen, dann über Dämpfungsglied ins RTL-SDR und den Sound dort
> (also im PC) aufnehmen.
>
Das wäre Klasse.
Ich habe ein Pico-SDR, das fühlt sich ohne Preamp zwischen -40dBm und 
-100dBm wohl. Darüber entsteht Clipping, darunter zu viel Rauschen.
5W sind 37dBm, d.h. du müsstest mindestens 80dB dämpfen wenn der 
RTL-Stick ähnlich viel verträgt.

Wenn du mit einem PC sowohl die Audiodatei abspielen, als auch den 
RTL-Stick mit Recorder betreiben willst, wird es vermutlich schwer die 
80dB zu erreichen. Da koppelt immer irgendwo was rüber.

Hast du nicht noch irgendwo einen Audioplayer mit Akkubetrieb, einen 
iPod oder ein älteres Handy mit 3,5mm Klinkenstecker wo man die 
Lautstärke des Analogausgangs regeln kann?
Bei Bedarf erzeuge ich das Testaudio in einer gängigeren Abtastrate.

Dann könnte man den ganzen Aufbau trennen und an den uSDX einfach nur 
einen 50-Widerstand ohne Antenne anschließen. Rund 50dB Spielraum sind 
drin und im Wasserfalldiagramm sollte der Empfangspegel abschätzbar 
sein.
von Georg S. (randy)


Lesenswert?

Wulf D. schrieb:
> Zum Vergleich Spektrum und Demodulationsbeispiel der Simulation mit
> kartesischer SSB-Modulation. Ist viel sauberer.
> Bleibt noch immer die Frage warum, wo klemmt es beim polaren Ansatz?

Theoretisch sollte es keinen Unterschied geben, v.a. in einer Simulation 
bei der die Trägheit PLL nicht zum tragen kommt. Bleibt an sich nur den 
Fehler in der Mathe zu suchen der in der Simulation steckt.
von Wulf D. (holler)



Lesenswert?

Georg S. schrieb:
> Theoretisch sollte es keinen Unterschied geben, v.a. in einer Simulation
> Bleibt an sich nur den
> Fehler in der Mathe zu suchen der in der Simulation steckt.

Fehler in der Mathe ja, aber die Simulation orientiert sich am uSDX-Code 
und da könnte sie ganz dicht dran sein. Vielleicht kann das Daniel mit 
einem Test bestätigen.

Versuche natürlich auch die Mathe zu verbessern. Bin da einen halben 
Schritt weiter. Wie schon zuvor gesagt, vermute den Fehler in der Phase.

Der uSDX geht in der letzten auf Github veröffentlichten Version 1.02x 
der usdx.ino wie folgt vor:
1
static int16_t prev_phase;
2
int16_t phase = arctan3(q, i);
3
int16_t dp = phase - prev_phase;  // phase difference and restriction
4
prev_phase = phase;
5
if(dp < 0) dp = dp + _UA; // make negative phase shifts positive: prevents negative frequencies and will reduce spurs on other sideband

Also erst den arctan() rechnen, dann Differenzieren und darauf bei 
Bedarf eine Korrektur um 2*pi.
Das arctan3(q, i) ist hier eine schnelle Näherungsfunktion des arctan2.

Habe zwei verschiedene Optimierungen versucht, beide mit exakt dem 
gleichen Ergebnis:

1. Die Reihenfolge oben vertauscht, d.h. arctan(), dann Phasenkorrektur 
und zuletzt differenziert.

2. Ganz ohne arctan() und Differenz, sondern die analytische Ableitung 
nach der Euler-Formel direkt berechnet.

In den Spektren schlägt sich die Änderung nicht besonders stark nieder. 
Aber ich finde das demodulierte Signal hört sich schon deutlich besser 
an.

Anbei die aktualisierte Übersicht und das demodulierte Audiosample mit 
der o.g. Verbesserung.
von Wulf D. (holler)


Angehängte Dateien:

Lesenswert?

Wieder einen halben Schritt weiter: neben dem besser funktionierendem 
unwrap der atan2-Unstetigkeit das Timing zwischen Phase und Amplitude 
fein abgeglichen.
Dazu die bereits auf Trägerfrequenz fc interpolierten Daten verwendet, 
auf Signal-Abtastrate umgerechnet war das Optimum bei 1,5 Ts Verzögerung 
der Amplitude. Ein T ging dabei sicher durch die Differenzierung der 
Phase verloren.

Das Tagesschau-Intro hört sich jetzt noch ein wenig besser an, die 
Sprache ist fast sauber. Im Zip-Archiv alle drei Verfahren 
nebeneinander, uSDX-like, die optimierte Polarmodulation und das rein 
kartesische Verfahren.

Spektrum sieht auch etwas besser aus: etwa 10dB bessere Unterdrückung 
des unteren Seitenbands USB und am oberen Ende etwa 10dB weniger 
Energie.

Vom Spektrum her lange nicht perfekt, das sieht man beim Vergleich mit 
dem kartesischen Ansatz und vor allem wenn man sich das 
Zweiton-Testsignal 600Hz + 1kHz anschaut: jede Menge Mischfrequenzen. Wo 
kommen die bloß her?

Der Abfall zu höheren Frequenzen beim demodulierten Signal liegt am 
Dezimationsfilter, hab da eine fertige Octave-Funktion genutzt. Die 
hätte ich besser dimmensionieren sollen, der Abfall hat also nichts mit 
der Modulation zu tun.
Generell haben die demodulierten Signale -6dB Amplitude gegenüber 
Einganssignal. Die andere Hälfte landet im unteren Seitenband.
von Wulf D. (holler)


Lesenswert?

Für die, die es interessiert: habe das Thema jetzt parallel in ein 
zweites Forum gestellt, mit Ausrichtung auf digitale Themen:
https://www.dsprelated.com/thread/18639/

Hätte hier vielleicht doch besser in den DSP-Slot gepasst.
Sieht man sich die unglaubliche Beteiligung am vintage 
4-Transistor-Verstärker Thread an, liegt das Interesse hier wirklich wo 
anders. Ist natürlich auch ok.
von Georg S. (randy)


Lesenswert?

Ist hald ein Nischenthema. Als ich hier mein Projekt vorgestellt habe 
hat mich die sehr zurückhaltende Reaktion auch gewundert. Dachte ich 
hätte ein Alleinstellungsmerkmal: Die günstigste stand-alone(*) 
Möglichkeit in den Mikrowellenbändern ein SSB Signal zu bekommen. Ist 
aber scheinbar noch Nischichiger.
Bastle damit rum wenn es dich interessiert. Alle anderen kaufen sich 
einen QMX oder uSDX. Ist auch verständlich, da geht verdammt viel Zeit 
rein. Wenn man nicht basteln sondern nur funken will. Hab ich bei meiner 
QO-100 Station auch so gemacht. Alles außer dem polaren SSB-Generator 
ist einfach gekauft und zusammengesteckt. Sonst wäre das nie in einem 
reellem Zeitplan fertig geworden.
Diesen September gehe ich nochmal auf die UKW-Tagung in Weinheim. 
Vielleicht findet es da Interessenten. Vor allem weil ich vorhabe einen 
Fertigbausatz anzubieten, vielleicht nicht bis September, aber bis 
Jahresende (SMD bestückt, THT und Gehäuseeinbau selber machen)
Fertig ist das noch lange nicht. Die Integration mit SDR-Software steckt 
in den Kinderschuhen (wichtig für reine User) und die Variante mit 
48kSps hat einen schwer zu findenden Fehler den die 16kSps nicht hatte. 
Der vermiest das Spektrum.

(*) also ohne 2m/70cm Allmode-Funke deren Signal hochgemischt wird.
: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Georg S. schrieb:
> Vielleicht findet es da Interessenten.

Ich denke, Interessenten (im Sinne von "Leute, die das dann verwenden 
würden") finden sich immer, aber die wenigsten stecken da tief genug 
drin.

Letztlich, das Einzige, was mich am QMX stört ist, dass er nicht 
Opensource ist.
von Wulf D. (holler)


Lesenswert?

Georg S. schrieb:
> Ist hald ein Nischenthema.
Sieht so aus. Simple Antennenverstärker sind gefragter ;-)

Kann mich aber auch für low-tech-Themen begeistern. Wollte schon immer 
mal einen super-stromsparenden, schmalbandigen UHF-Regen.-Receiver mit 
3-Port SAW-Filter aufbauen. Auch so ein 2- 4- Transistor Projekt.

> Bastle damit rum wenn es dich interessiert. Alle anderen kaufen sich einen QMX 
oder uSDX.
Habe ich jetzt auch getan, einen beschädigten (tr)SDX. Eigentlich nur 
zum Vermessen. Will wissen, was der genau leistet. Muss erst reparieren, 
Sender angeblich durch Verpolung zerstört. Noch ist der nicht im Haus.

Im DSP-related Forum hatte auch jemand die polare SSB-Modulation mit 
ausreichender CPU-Power versucht. Sprache klingt ausgesprochen gut, aber 
er sagt auch, dass er an weiteren Optimierungen gescheitert ist. Hab ihm 
um Spektren gebeten, mal sehen ob was kommt.

> Vor allem weil ich vorhabe einen Fertigbausatz anzubieten
Das ist natürlich ein großer Schritt, was ganz anderes als ein PoC auf 
die Beine zu stellen.

> die Variante mit 48kSps hat einen schwer zu findenden Fehler den die 16kSps 
nicht hatte.
Ob du nun einen Zeitversatz zwischen Amplitude und Phase hast? Durch 
meine Simulation fand ich raus, dass bereits ein Sample (1/fs) das 
Spektrum deutlich verschlechtert.

Jörg W. schrieb:
> Letztlich, das Einzige, was mich am QMX stört ist, dass er nicht
> Opensource ist.
Beim SDX findet die Weiterentwicklung leider auch nur noch als closed 
source im (tr)SDX statt. Schade.
Und der QMX hat bis heute kein Update auf SSB: damit entfällt auch so 
was wie FT8, oder?
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wulf D. schrieb:
> Und der QMX hat bis heute kein Update auf SSB: damit entfällt auch so
> was wie FT8, oder?

Doch, er kann SSB (mit Polarmodulation), und er macht Digimodes 
ausgesprochen aufwändig: er misst die ankommenden Frequenzen, und 
generiert das FSK-Signal passend.

Ja, dass der (tr)uSDX von Opensource abgerückt ist, macht ihn mir auch 
wenig sympathisch.  Habe noch einen uSDX mit 9-Band-Modul, dass kann der 
QMX halt nicht (aber dafür ist er viel kleiner).
von Georg S. (randy)


Lesenswert?

Wulf D. schrieb:
>> die Variante mit 48kSps hat einen schwer zu findenden Fehler den die 16kSps
> nicht hatte.
> Ob du nun einen Zeitversatz zwischen Amplitude und Phase hast?

Wenn, dann müsste dieser kleiner gewesen sein als bei der 16kSps 
Variante, einfach wegen der 3fachen Samplerate. Aber ich bin wegen 
Wasser im Keller (Gewitterregen) die letzte Woche zu nichts gekommen.
Ich suche noch. Ein weiteres mal stellt sich raus dass es wertvoll ist 
den Source Code so zu organisieren dass man die Hardware-Abhängigen 
Sachen so abgetrennt hat dass man die Signalverarbeitung auf dem PC 
compilieren kann. Das hilft viel weil es man Zwischenwerte der 
Berechnung auf die Festplatte schreiben kann.
von Georg S. (randy)


Lesenswert?

Wulf D. schrieb:
> Und der QMX hat bis heute kein Update auf SSB: damit entfällt auch so
> was wie FT8, oder?

Bei meinem polaren Modulator sollte FT8 gehen. Selber getestet habe ich 
das bisher nicht, aber ein HAM aus Brasilien. Aber er hat keinen 
speziellen FT8-Moduls, sondern das läuft über den normalen SSB 
Modulator, mit entsprechend mehr Rauschen im Band als sein müsste.
von Wulf D. (holler)


Lesenswert?

Georg S. schrieb:
> Ich suche noch. Ein weiteres mal stellt sich raus dass es wertvoll ist
> den Source Code so zu organisieren dass man die Hardware-Abhängigen
> Sachen so abgetrennt hat dass man die Signalverarbeitung auf dem PC
> compilieren kann.

Auf jeden Fall macht das Sinn. Wenn's kompliziert wird, gehe ich 
dreistufig vor. Erst "High-Level" in Matlab/Octave, dann in C/C++ auf 
dem PC und im letzten Schritt erst auf dem uC. Auch da nutze ich 
zunächst Testdaten vom PC, sonst wird die Fehlersuche zu mühsam.
Hatte ich so beim FT8-Decoder auf dem RP2350 Ende letzten Jahres  so 
gemacht.

Mit dem QMX hat Jörg natürlich Recht, hab's nicht mitbekommen. Ob es 
davon Spektren gibt?

> Bei meinem polaren Modulator sollte FT8 gehen. ... sondern das läuft über den 
normalen SSB Modulator, mit entsprechend mehr Rauschen im Band als sein müsste.

Das Außer-Band als auch In-Band-Geräusch ist wirklich unschön. Auch bei 
FT8, wo man ja potentiell Nachbarn im gleichen Kanal zurauscht, wenn man 
wie in meiner Simu nur 30dB SNR schafft.

Könnte aber sein das das in der Simu ein Artefakt aus der dort 
verwendeten Interpolationsfunktion interp(x, k) ist und ich da ein 
Phantom jage.
Mit anderen Worten: die polare Modulation könnte auch fehlerfrei 
umsetzbar sein. Was zu beweisen wäre. Baue mal einen PoC auf, das wird 
aber Herbst oder später.
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wulf D. schrieb:
> Das Außer-Band als auch In-Band-Geräusch ist wirklich unschön. Auch bei
> FT8, wo man ja potentiell Nachbarn im gleichen Kanal zurauscht, wenn man
> wie in meiner Simu nur 30dB SNR schafft.

Deshalb hat er ja beim QMX auch einen separaten Digitalmodus 
implementiert, um nicht über den SSB-Modulator gehen zu müssen.
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
Noch kein Account? Hier anmelden.