mikrocontroller.net

Forum: FPGA, VHDL & Co. Multicarrier Signal mit FPGA erzeugen


Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe noch nie mit FPGA's gearbeitet und wollte die hier
vorhandenen Experten einmal fragen wie ich folgendes Signal am 
einfachsten erzeugen kann:

Insgesamt sollen auf einmal 200 Sinustöne erzeugt werden.
Der erste Sinuston liegt bei 2MHz, die darauf folgenden
haben einen Abstand von 200kHz, also 2Mhz, 2.2MHz, 2.4Mhz usw.
Die Phasenbeziehung der Töne untereinander ist zufallsverteilt und soll 
am
Anfang in einer Tabelle vorgegeben werden.
Die sich ergebende Bandbreite beträgt ungefähr 42 MHz, also ist eine 
Samplerate für den DAC von mindesten 200MHz angebracht.

Wie kann ich dieses am schnellsten und einfachsten erzeugen ?
Vielleicht sogar mit einen Dev.-Kit ?

Vorab vielen Dank und Gruß

Mike

Autor: Bernd G. (Firma: LWL flex SSI) (berndg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne in die Tiefe zu gehen:
Die DDS aus dem Xilinx-Core Generator kann 16 Kanäle gleichzeitig 
erzeugen.
Solltest du dir mal ansehen.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie hast du das mit den 16 Kanälen gemeint ?

Autor: Bernd G. (Firma: LWL flex SSI) (berndg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
z.B. Kanal 1 = 2,2 MHz
Kanal 2 = 2,4 MHz
Kanal 3 = 2,6 MHz ... usw. bis Kanal 16

Du müßstest also max. 13 Stück DDS implementieren.
Etliche Kanäle könnten mehrfach genutzt werden. Und zwar die mit den 2^n 
Potenzen als Vielfachen (bei entsprechender Bitbreite der Kanäle).

Bitte erst bei Xilinx ansehen und dann weiterfragen :-)

Autor: Bernd G. (Firma: LWL flex SSI) (berndg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, die einzelnen Kanäle können bei einer DDS nicht ohne weiteres 
auseinander abgeleitet werden, es bleibt also bei 13 DDS!

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

Bewertung
0 lesenswert
nicht lesenswert
Kann man sowas nicht als "arbitrary function generator" bauen? Ins RAM 
muß allerdings die gesamte Kurvenform der periodischen Schwingung 
passen, also das kleinste gemeinsame Vielfache aller Sinusfrequenzen.

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Frequenzen sind ja alles ganzzahlige Vielfache von 200kHz. Der 
Faktor zwischen den 200kHz und Deiner angestrebten Abtastfrequenz von 
200Mhz ist ungefähr 1000, nehmen wir an es sei 1024. Dann nimmst Du ne 
Abtastfrequenz von 200kHz*1024 und nen 1024er Buffer. Wenn Du in den 
Buffer einen Sinus reinpackst, kommt der mit 200kHz raus, wenn Du 10 
Sinuswellen in den Buffer packst kommen die mit 2Mhz raus, 210 
Sinuswellen im Buffer machen 42MHz. Einfach im Buffer alle Sinuswellen 
addieren, aber Vorsicht, Phasen verdrehen, sonst entsteht nen Dirac.

Cheers
Detlef

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

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

Formatierung (mehr Informationen...)

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




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

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