Hardware Defined Radio

  • Hallo liebe Funkfreunde und Bastler,


    ich baue einen RX mit niedriger ZF (12kHz) und einem Polyphase-Netzwerk zur Unterdrückung der Spiegelfrequenz. Ich bin noch längst nicht fertig, denn es soll eine Untersuchung dieses Empfangsprinzips werden. Aber einiges gibt es schon. So auch Schaltpläne und Platinen. HF-Technik ist mein Hobby, aber nicht mein Beruf. Da Ihr ja alle Erfahrungen mit solchen Basteleien habt, wollte ich Euch einfach mal ganz unverbindlich fragen, was Ihr davon haltet. Ich würde mich über gute Anregungen, aber auch über sachliche Kritik freuen. Vielleicht schreibt Ihr mir einfach, was Ihr davon haltet?


    Die gesamten Unterlagen, so weit ich sie nun veröffentlicht habe, sind auf meiner Homepage unter dem Navigationspunkt "Untersuchung RX-Prinzip" zu finden.


    Die Homepage hat folgende URL:
    http://www.mydarc.de/dl7mwn/


    Die Homepage ist noch ganz neu und es lassen sich bestimmt noch Fehler finden. Auch da würde ich mich freuen, wenn Ihr sachliche Kritik walten lassen würdet und evtl. auch gute Anregungen zur Verbesserung habt.


    Bis bald
    Beste 73's de Werner, DL7MWN

  • Hallo, Werner!


    Zunächst Glückwunsch zu Deinem Mut, in dieser Richtung was zu probieren. Habe mir mal Deine Seite angeschaut; für den Anfang prima - jetzt solltest Du nicht nachlassen, sie zu vervollständigen.


    Zu Deiner Idee mit dem RX und seiner "ZF" von ca. 12 kHz und dem Polyphasen-Netzwerk.


    1.- Auf den HF-Vorverstärker würde ich an Deiner Stelle möglichst verzichten. Er ist eine Quelle von Intermodulation (in EU besonders "erfreulich" das 40-m-Band). Dan Tayloe, der Entwickler des auch von Dir vorgesehenen 4-Quadranten-Sample&Hold-Mischers, hat zu diesem Thema recht ausführlich berichtet. Da der relevante Artikel ellenlang ist, kann ich ihn hier im Forum nicht anhängen. Jedenfalls ergibt sich auch ohne Vorverstärker eine Grenzempfindlichkeit von wesentlich unter 100 nV bei 3 dB S/N, was zumindest für CW ausreichen wird. Voraussetzung ist die Optimierung des Eigenrauschens beim RX. Übrigens kann man sogar bei diesem "Tayloe-Detektor" ganz auf die Vorselektion verzichten; es ist nur ein Tiefpass nötig, da der Detektor auch auf Oberwellen des steuernden Oszillators reagiert. Eine weitere Quelle von Dämpfung und Rauschen entfällt dadurch.


    2.-Polyphasen-Netzwerk: Selbst mit hohem Aufwand wirst Du auch damit noch einiges an Frequenzgang vor allem bei der Amplitude bekommen. Und davon ist ganz wesentlich die Unterdrückung des unerwünschten Seitenbandes abhängig (Daumenwert: 1% Amplitudenunterschied zwischen den "Kanälen" bedeutet eine Verschlechterung der SB-Unterdrückung auf 40 dB). Wenn Du damit leben kannst, lohnt sich dennoch der Versuch. Es gibt andere Methoden, die möglicherweise ein besseres Ergebnis bringen.


    Jedenfalls wünsche ich Dir viel Erfolg und Spaß bei Deinen weiteren Experimenten. Falls du Fragen hast, kannst Du mich ja anmailen.


    73
    Hans/DJ4AZ


    PS: Meine URL: http://www.dj4az.de

  • Hallo, Werner,


    congrats, hochinteressantes Konzept, habe mir ein Bookmark auf Deine Seite gesetzt. Auch sehr wichtig Dein Hinweis, das die Schaltzeitstreunung beim Tayloe-Mixer gerade bei höheren Takt-Frequenzen ganz schnell zum Problem wird. Was auch interessant wäre, wenn irgendwann mal auf Deiner Seite einfließt, wie sich das Rauschen der kaskadierten ZF-Bandpässe auf die Empfindlichkeit und SNR des ganzen auswirkt.


    mni 55
    73
    Günter

  • Hallo OM Werner,
    das ist ein sehr anspruchsvolles Projekt und ich wünsche viel Erfolg bei der Vollendung. Ein Bericht über den Fortschritt ist hier immer sehr willkommen. Die HP ist doch klasse...

    Vy 72/73 de Gerhard

  • Hallo liebe Funkfreunde und Bastler,


    ich danke Euch für Euer Interesse an meinem kleinen RX-Projekt. In Euren Ausführungen liegen einige Überlegungen, welche auch mich zum Nachdenken veranlasst haben. Weitere Arbeiten an meiner RX-Schaltung haben gezeigt, dass das Polyphase Netzwerk und die aktiven ZF-Bandpässe sehr starke Rauschquellen sind. Die Bandpässe habe ich nun durch aktive Hoch.- und Tiefpässe ersetzt. Über das Polyphase Netzwerk denke ich noch nach. Bis alles fertig ist, werden wir da bestimmt noch einige, wertvolle Erkenntnisse sammeln können. Gelegentlich werde ich darüber berichten. Schaut halt hin und wieder auf meine Homepage, die Infos dort werde ich möglichst aktuell halten.


    Hier noch einmal meine URL: http://www.mydarc.de/dl7mwn/


    Beste 73's de Werner, DL7MWN

  • Hallo liebe Funkfreunde und Bastler,


    nun ist etwas Zeit vergangen und ich möchte meinen ersten Zwischenbericht vorstellen. Einiges ist geschehen. So habe ich alle Stufen meines RX in Betrieb gesetzt. Grundsätzlich läuft alles, aber es haben sich einige Schwächen und Mängel gezeigt. Das habe ich zum Anlass genommen, um noch einmal über alles nachzudenken. Da mein Zwischenbericht etwas länger ausgefallen ist, kann ich ihn hier nicht dranhängen.


    Einige OM's haben durch ihre Fragen und Anregungen auch mit dazu beigetragen, dass sich einiges ändern wird. Diesen OM's möchte ich an dieser Stelle noch einmal für die Teilnahme an meinem Projekt danken. OM Hans, DJ4AZ hat mich durch sein Schriftstück "DRM und der Weaver" und Diskussionen besonders zum Nachdenken angeregt.


    Wer sich dafür interessiert, der kann das alles ganz genau auf meiner Homepage nachlesen.


    Meine Homepage: http://www.mydarc.de/dl7mwn/


    Beste 73's de Werner, DL7MWN

  • Hallo liebe Funkfreunde und Bastler,


    es ist wieder einige Zeit vergangen und ich möchte meinen zweiten Zwischenbericht vorstellen. In meinem ersten Zwischenbericht ging es darum, ob das Polyphase-Netzwerk die beste Lösung ist, oder ob z.B. die Weaver-Methode für mein Vorhaben besser geeignet wäre. Um das herrauszufinden habe ich einige Simulationen durchgeführt. Vorab kann ich sagen, dass sich das Polaphase-Netzwerk für DRM doch besser eignet. Die einzelnen Gründe aufzuzählen, würde hier viel zu viel Platz in Anspruch nehmen. Darum habe ich wie bisher immer, einen Zwischenbericht auf meine Home-Page gestellt.


    Wer sich dafür interessiert, der kann sich diesen Zwischenbericht vom 17.12.2006 von meiner Homepage unter "Untersuchung RX-Prinzip" runterladen.


    Meine Homepage: http://www.mydarc.de/dl7mwn/


    Beste 73's de Werner, DL7MWN

  • Hallo Peter, DL2FI


    Zuerst einmal Danke für die Aufnahme ins QRP Forum!


    Ich hoffe das "unbedingt empfehlenswert" ist nicht ein Schmäh wie wir in Österreich sagen würden...
    Wenn nicht, so freue ich mich wirklich sehr über das Urteil eines erfahrenen OMs !


    Noch kurz zum Terminus "Hardware Defined Radio": Der Ausdruck für meinen Selbstbau Empfänger "HDR-2005" ist eigentlich ein Scherz und wurde von mir in Diskussionen mit amerikanischen und italienischen SDR Experten verwendet um das Hardwarekonzept statt Software zu betonen. Das hat wohl inzwischen ein Eigenleben entwickelt...ist gut so. Was von mir aber nie gewollt war, ist die Gruppenbildung hier die Hardwarebauer und dort die Softwareprogrammierer. Ich finde jedes Konzept hat seine Berechtigung und das Front End ist ja zumindest ähnlich. Bin schon gespannt wo der Ausdruck als nächstes auftaucht.


    Grüsse
    Chris Hirt

    73 de Chris, OE3HBW

  • Werter Bastlerfreund!


    Deinen Bericht finde ich sehr interessant!
    Ich experimentiere selbst in diesem Bereich (siehe auch http://home.pages.at/chirt/Projects/HDR2005/HDR2005.htm) und bin über jede Erfahrungsbeschreibung dankbar.
    Amateurfunker bin ich noch keiner, nur "Radiobastler", aber das soll sich 2007 ändern.


    Übrigens: Den Sätzen auf Deiner Homepage "Aber bei mir wird viel gebastelt, und das macht auch großen Spaß" und "Für mich ist wichtig, dass mich niemand zu dieser Arbeit drängt. Ich mache das neben meinem Beruf in meiner Freizeit. Aber zur Freizeit gehört auch noch was anderes als nur das Hobby" kann ich nur zu 100% zustimmen. Ist bei mir genauso!


    73
    Chris Hirt

    73 de Chris, OE3HBW


  • Nein Chris, meine Scherze kennzeichne ich als solche 8)
    ich halte den Beitrag für so gut, dass ich die Enpfehlung hier rein geschrieben habe da ich nicht davon ausgehe, dass alle anderen so wie ich als Foren Admin mir die Profile aller neuen User anschaue.


    Ich hoffe, dass sich eine rege Diskussion über dein Konzept entwickelt.

    73/2 de Peter, DL2FI
    Proud member of Second Class Operators Club SOC and Flying Pig Zapper #OOO (Certificated Kit Destroyer)

  • Hallo Chris,


    ich freue mich, Dich im Forum der DL-QRP AG begrüßen zu können. Ich kenne Deine Homepage schon seit 2005, ein direkter Kontakt über Deine Homepage hat jedoch nicht funktioniert. Vielleicht schaffen wir es gemeinsam, der amerikanischen Dominanz bei SDR eine deutschsprachige Antwort entgegen zu setzen.


    Ich habe übrigens bereits am 08.12. auf Deine Homepage hingewiesen, siehe auch MC1496 oder SA612 als Mischer einsetzen? .


    Ich finde Deinen eingeschlagenen Weg zum eigenen HDR sehr gut, es fehlt jetzt nur noch der Ersatz der Vierfachphasenschiebers durch ein DSP. Eine Lösung ala SDR-1000 mit externer Signalverarbeitung finde ich nicht so gut. Da ist die Lösung von DL7IY doch um einiges interessanter. Wenn Interesse an weiteren Diskussionen besteht, sende bitte ein PM.


    72/73 Gerd DM2CDB

    Einmal editiert, zuletzt von DM2CDB ()

  • Hi Gerd u.a. HDR-Interessierte


    Es scheint zur Zeit ein erhebliches Interesse am HDR zu bestehen, siehe z.B. auch diesen Thread RX mit niedriger ZF 12kHz und Polyphase-Netzwerk
    Gerne würde ich mich an Diskussionen über dieses RX Konzept beteiligen.


    Was den RX HDR-2005 angeht: Ich weiss da Einiges was verbesserungswürdig wäre! Auch einige Unklarheiten (die ich auch nicht in Diskussionen mit den Amerikanern ausräumen konnte) gibt es da noch...


    Vorerst aber werde ich mich jetzt in den Weihnachtsurlaub begeben :]
    und wünsche allen HDR-Interessierten ein frohes und erholsames Weihnachtsfest mit viel Zeit fürs Hobby und einen guten Rutsch ins 2007


    73
    Chris

    73 de Chris, OE3HBW

  • Hallo Chris,


    danke für Deine Hinweise. Die eine Quelle kannte ich schon, aber die andere ist mir neu. Wie ich es Dir schon in der E-Mail geschrieben habe, gemeinsam sind wir stärker! Und so muss es sein. Ich wünsche Dir und allen Lesern in diesem Forum auch noch ein frohes Weihnachtsfest und einen guten Rutsch ins neue Jahr. Und Danke fürs Mitmachen!


    Ich freue mich schon auf das neue Jahr. Im Moment arbeite ich gerade an der Kontrolle meiner neuen Leiterplatte. Einen großen Fehler hab ich nun ausgebügelt. Im Januar wird diese Leiterplatte dann wohl gefertigt und dann gibt es bestimmt wieder eine Menge neuer Erkenntnisse.


    Und noch was Chris, ich habe auf Deiner Homepage gesehen, dass Du ja schon die Software für den AVR-Controller für Dein Projekt geschrieben hast. Noch bin ich längst nicht so weit, aber bisher weis ich noch immer keinen Algorithmus zur Berechnung des langen Bitstreams für den AD9951 zur Bestimmung der genauen Frequenz. Wenn man den Bitstream genau ausrechnet, dann braucht man ja eine 64Bit-Arithmetik. Das ist aber etwas viel für einen 8Bit-Contoller, oder? Gibt es da einen einfacheren Weg? oder kann man da mehrere kürzere Berechnungen kaskadieren? Ich möchte das in C programmieren, aber mein C unterstützt nicht mehr als eine 32 Bit Arithmetik.


    Beste 73's de Werner, DL7MWN

  • Hallo Werner,


    wenn man sich das Datenblatt genau ansieht benötigt ein AD9951 nur jeweils eine, je nach Register, max. 40Bit Übetragung. 8Bit Instruktionen (1 Byte) die das zu schreibende Register bestimmen, gefolgt von z.B. einem 32Bit Frequenzwort. Beide Variablen werden einfach seriell unmittelbar nacheinander übetragen, CS (Chip Select, falls verwendet) dabei durchgehend low halten.
    Eine Möglichkeit (je nachdem was für Datentypen der C-Compiler unterstützt) um das Frequenzwort zu berechnen:


    1. "DDS Ausgangsfrequenz" geteilt duch "Taktfrequenz" (ergibt Float).
    2. Obiges Ergebnis multipliziert mit 2^32 (noch immer Float)
    3. Daraus 32Bit (unsigned) Integer machen ... der dadurch enstandene Frequenzfehler liegt im mHz Bereich.
    4. Zusammen mit "Instruction Byte" übetragen.


    Alle anderen Register (8Bit bis 32Bit Länge) als Konstanten deklarieren, da hier im Normalfall (!), einmal festgelegt, nichts mehr zu ändern ist und zusammen mit dem immer erforderlichen Instruktions-Byte am Anfang des Programms nacheinander schreiben.

    vy 72/73, Reinhold.

  • Hallo Reinhold,


    danke für Deine Hinweise. Die werde ich mir bei der Software ablegen. Aber wie ist das, wenn man die Abweichung der Quarzfrequenz umrechnen will, sodass diese kompensiert wird. Nach meiner Überlegung braucht man da mehr als 32 Bit. Wenn ich als Ergebnis 32 Bit erhalten möchte und diese 32 Bit zuvor noch durch eine Multiplikation oder Division berechnen muss, dann werden die Zwischenergebnisse nach meiner Meinung mehr als 32 Bit benötigen. Vielleicht sehe ich das auch nicht richtig und es gibt Algorithmen, mit denen das nicht so ist. Bisher habe ich mich damit noch nicht wirklich beschäftigt, weil ich von diesem Thema noch weit weg bin. Aber langsam muss ich mich auch auf solche Themen vorbereiten.


    Beste 73's de Werner, DL7MWN

  • Hallo Werner,


    ich sehe wo Dein 64Bit Problem liegt doch geht das mit einem Trick auch nur mit 32 Bits ;).
    Was mir weiterhin aufgefallen ist, ist die notwendige hohe Auflösung der Fließkommazahl bei den obigen Punkten "1." und "2.", nämlich mindestens 9 Stellen hinter dem Komma. Eine 32 Bit Float Variable bietet nur 6 oder 7 (?) Stellen hinter dem Komma. Weiterhin unterstützen manche günstige (kostenlose ?) C-Compiler für µC leider keine Fließkommaberechnungen (kann das Deiner ?), somit muß ein gänzlich anderer Weg gegangen werde. Ich tue mal so als ob ich in Assembler programmieren müßte, dazu gebe ich zum Verständnis ein Bsp. zur Berechnung des DDS-Freqenzwortes (hier für den AD9951 mit 400MHz Takt), inkl. eines Korrekturwertes für abweichende Taktfrequenzen, an !


    1. Annahme Taktfrequenz ist exakt 400MHz !


    1 Hz in "Bits" entspricht genau (2^32 / 400MHz) = 10,73741824 Bits/Hz


    2. In HEX Format (32Bit Länge) umwandeln und zwar der Ganzzahlanteil mittels den ersten 8Bit (MSB's) sowie den Nachkommateil mittels den restlichen 24 Bits (der Windows Taschenrechner ist ideal dafür !)


    Ganzzahl 10 entspricht: 0Ah

    Nachkommateil: (0,73741824 * 2^24) = 12371825,09 entspricht: BC C7 71h


    Womit 1Hz == 0A BC C7 71h


    Dieser Wert muß jetzt als Konstante fest im µC einprogrammiert werden !


    3. Alles was der µC selber noch an Arithmetik durchführen muß ist die gewünschte Ausgangsfrequenz in Hz mit dem ermittelten, fest kodierten, 1Hz HEX-Wert multiplizieren und schon hat man das DDS Frequenzwort !


    Bsp.: 14,120500MHz Empfangsfrequenz (Träger) in einem DC-RX


    (14120500 * 0A BC C7 71h) = 09 09 80 B2 2D 98 F4h


    Offensichtlich sind das jetzt deutlich mehr als 32 Bits (wie Du schon angemerkt hast), doch davon brauchen wir NUR die ersten 32 die man in einer passenden Variablen zur Weiterverarbeitung abspeichert und bekommen:


    09 09 80 B2h ... was als Frequenzwort (nach dem Instruktionsbyte) dem DDS-Chip zu übergeben ist !


    Testen wir mal ob's auch stimmt:


    (09 09 80 B2h * 400MHz) / 2^32 = 14,12049998MHz


    Freuqenzfehler = 20mHz ( min. Schrittweite eines 400MHz AD9951 ~ 93mHz) !!


    4. Zum Korrekturwert: Die Taktfrequenz weicht mit sehr hoher Wahrscheinlichkeit von den exakten 400MHz ab. Deshalb muß der 1Hz HEX-Wert geringfügig nach oben (Taktfrequenz < 400MHz) oder unten (Taktfrequenz > 400MHz) korrigiert werden. Das Ganze baut man bspw. in einem Menüpunkt der Steuerung ein damit der Nutzer die Korrektur später selbstständig durchführen kann.


    Dazu gibt man z.B. 10MHz aus und schließt einen Frequenzzähler am DDS-Ausgang an, der jetzt natürlich nicht genau 10MHz mißt. Nun vergrößern oder verkleiner wir den 1Hz HEX-Wert um 1 solange bis der Frequenzzähler genau die gewünschten 10MHz anzeigt. Der neu ermittelte HEX-Wert wird nun anstelle des Alten, fest im µC-EEPROM, gespeichert.


    Ohne Frequenzzähler: RX auf 10.001000MHz einstellen und 10MHz WWV in LSB empfangen. Soundkarte anschließen, die 1kHz mittels FFT (hohe FFT-Punktzahl) darstellen. Nun den 1Hz HEX-Wert solange verändern bis die FFT genau 1kHz anzeigt um danach die neue 1Hz HEX-Zahl ins EEPROM zu übernehmen.

    vy 72/73, Reinhold.