Ich möchte auf dem Spartan 3 AN Starterkit eine Frequenzmodulation realisieren. Anfangs soll erstmal ein Sinus ausgegeben werden. Hierbei bin ich auf die Schlagworte Direct Digital Synthesis und Phased Locked Loop gestossen. Bei DDS geht es darum den Sinus mittels Tabellenwerten zu erzeugen. Wie ich dies mit PLL mache ist mir noch nicht klar. Der Core Generator des ISE Webpacks bietet sowohl einen DDS Core als auch Cores zur Frequenzverdopplung bzw. Frequenzvervielfachung (DCM). Sollte ich den DDS Core verwenden oder liebe eigene Tabellen für den Sinus verwenden ? Mit welcher maximaler Frequenz kann ich einen Sinus auf dem Board erzeugen ? Verwende ich eigene Tabellen benötigen ich einen Takt möglichst hoher Frequenz. Wie weit kann ich das Clock-Signal "hochtreiben" ? Ich habe irgendwo etwas von 300 MHz gelesen die mit dem Clock Signal von 50 MHz möglich sind. Stellt sich noch die Frage nach dem Eingangsssignal. Ein Audiosignal digitalisieren und auf dem Board speichern oder ein Mikrofon anschliessen ? Wie kriege ich ein Mikro an den AD-Wandler angeschlossen ?
> Ich habe irgendwo etwas von 300 MHz gelesen... > ... Eingangsssignal. Ein Audiosignal digitalisieren ... Was willst du denn eigentlich machen? Du wirft mit grenzwertigen 300MHz um dich und willst zu Schluss ein Audiosingal verarbeiten... Das passt nicht zusammen :-/ (15kHz zu 300MHz, das sind 4 Zehnerpotenzen Unterschied) > Frequenzmodulation realisieren. ... erstmal ein Sinus ausgegeben werden. Welche Frequenz soll das endgültige Signal haben? Was soll moduliert werden? Wenn du einen Sinus in einer Tabelle haben willst, dann initialisiere die Tabelle (bzw. das Array) mit einem Sinus. Fertig.
Vielen Dank für die mathematische Nachhilfe. Ich wußte bisher nicht was eine Zehnerpotenz ist. Muss ich mein FH-Diplom doch wegschmeissen. Es werden bei einer Modulation zwei unterschiedliche Signale verwendet. Diese müssen nicht zusammen passen wie Stecker und Buchse und dürfen sogar unterschiedliche Frequenzen haben. Von 15 KHz habe ich nichts geschrieben. > Was soll moduliert werden ? Es soll ein Sinusträger mit einem Audiosignal moduliert werden. Als Modulationsverfahren soll Frequenzmodulation verwendet werden. Habe ich mich so schwer verständlich ausgedrückt ? > Welche Frequenz soll das endgültige Signal haben ? Im Prinzip irrelevant. Ich wollte nur wissen welches die maximal realisierbare (Mit dem Board) Frequenz ist. Zum einen als Takt, zum anderen als Sinussignal. Mir steht ein Vector-Signal-Generator und ein Spektrum Analysator zur Verfügung. Oszilloskop auch. > Wenn du einen Sinus in einer Tabelle haben willst, dann initialisiere die Tabelle (bzw. das Array) mit einem Sinus. Fertig. Hierzu gibt es verschiedene Ansätze. Manche arbeiten mit einer Tabelle, andere mit mehreren Tabellen. Hierzu zwei Arbeiten: 1. A Direct Digital Frequency Synthesizer Prototype for Space Applications Richard C.Meitzler, Wesley P.Millard Johns Hopkins University Applied Physics Laboratory 2. A Novel DDS Architecture using nonlinear ROM Adressing with improved Compression Ratio and Quantization Noise Malinky Ghosh, Lakshmi S.J. Chimakurthy Auburn University, Auburn, AL, USA
> Vielen Dank für die mathematische Nachhilfe. De nada. >> Ein Audiosignal digitalisieren ... > Von 15 KHz habe ich nichts geschrieben. Hmm... In welchem Bereich spielen sich deine Audiofrequenzen ab? > Habe ich mich so schwer verständlich ausgedrückt ? Kann sein... Lies deinen OP mal durch und sag mir wie ich hätte erkennen sollen, dass das Audiosignal aufmoduliert wird? > Ich wollte nur wissen welches die maximal realisierbare Frequenz ist. > Zum einen als Takt, ... Aus dem Datenblatt: der DCM-Ausgang kann bis 350 MHz (Speedgrade -5). Das BRAM kann maximal 320 MHz (Speedgrade -5). Um diese Frequenzen zu erreichen und bis zum Ausgangspin des FPGAs durchzuhalten, wirst du aber einiges an Feintuning am Design vornehmen müssen. Realistisch schätze ich 250 MHz als Taktfrequenz-Obergrenze ein. >... zum anderen als Sinussignal. Wie tief willst du modulieren (Frequenzhub)? Wie viele Bits deines Audio-Signals sollen übertragen werden? BTW: > Muss ich mein FH-Diplom doch wegschmeissen. > Wie kriege ich ein Mikro an den AD-Wandler angeschlossen ? Was hast du studiert?
@Hans-Werner Um einen Sinus auszugeben, brauchst du einen D/A-Wandler. Du hast sowas auf deinem Board drauf. Versuche, aus dem Datenblatt des D/A-Wandlers die maximale Samplerate herauszubekommen. Brauchbar ist dein D/A-Wandler dann für Frequenzen unterhalb der halben Samplerate. Am Ende der Signalkette ist aber ein (analoges) Tiefpassfilter vonnöten, damit dein Sinus nicht mehr so eckig aussieht, wie er aus dem D/A-Wandler herauskommt. Dann brauchst du innerhalb des FPGAs etwas, das dir deinen Sinus erzeugt. Dazu kannst du einen DDS-Core verwenden, den du nur noch parametrisieren musst. Des weiteren ist noch ein Modul nötig, das die Ausgangswerte des DDS-Cores regelmäßig (Samplerate) an den D/A-Wandler verschickt. Das limitierende Element ist der D/A-Wandler auf deinem Board. Falls du einen schnelleren (parallelen) D/A-Wandler anschliesst, besteht die Limitierung in der maximalelen Taktfrequenz, die das Synthesetool aus deiner zu synthetisierenden Schaltung (Signalverarbeitungskette) berechnet. Diese Frequenz entspräche dann wieder der Samplerate, wobei die Nutzfrequenz maximal halb so hoch sein kann, besser weniger. Ich habe so ohne besondere Maßnahmen in verschiedenen Versuchen 100 ... 150 MHz erreicht, was für mich ausreichte.
Nachtrag: Die 100 ... 150 MHz bezogen sich auf die Samplerate.
Danke ! 250 MHz als maximale Taktfrequenz ist schon eine interessante Aussage. Habe mal Technische Informatik an der FH studiert. FPGAs waren damals noch nicht Teil des Studiums bzw. vor mehr als 20 Jahren auch noch nicht so verbreitet.
Hallo Georg, das alte Nyquist Kriterium ist bekannt. Soweit ist alles klar. Habe es bisher jedoch versäumt mir die DA-Wandler anzuschauen. Mal schauen wie schnell die sind.
Ich schätze mal, dass die maximale Samplerate des D/A-Wandlers so bei 1 MHz ... 10 MHz liegen wird. Das erscheint mir bei der seriellen Ansteuerung naheliegend. Wenn du es schaffst, den Wandler mit einem Sinus anzusteuern, wirst du einiges dazugelernt haben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.