Forum: FPGA, VHDL & Co. Software Defined Radio SDR auf Spartan 3E Board


von tom (Gast)


Lesenswert?

Hallo,
ich habe seit knapp 2 Wochen nun mein Spartan 3E Board und wollte darauf 
nun mal versuchen ein Software Defined Radio (SDR) zu implementieren. 
Ich stehe was SDR betrifft noch ganz am Anfang. VHDL habe ich 2 Semester 
an der Hochschule gehabt und befasse mich auch privat ab und zu mal 
damit.
Jetzt würde ich mal gerne wissen, ob noch jemand Interesse hat ein SDR 
auf obengenanntem Board zu implementieren. Zunächst strebe ich nur mal 
den Empfang von DRM an, damit man auch etwas zum Vorführen hat. 
Hardwaremäßig ist auf dem Board ja einiges da, nur den HF-Teil müsste 
man noch dazu entwickeln und einen Softwareteil für den PC.

von ZZZ (Gast)


Lesenswert?

Was ist SDR?
Was ist DRM?

von SuperUser (Gast)


Lesenswert?

Wikipedia ist dein Freund..
DRM ist digitales Radio auf Kurzwelle
SDR ist software defined radio

Grundsätzlich ein sehr interessantes Projekt, aber ein DRM Empfänger 
wird ziemlich aufwendig im Digitalteil (COFDM Empfänger mit allem 
Schnick-Schnack).

Da bräuchte man ein etwas groesseres Team um in absehbarer Zeit zum 
Erfolg zu kommen.

Mich würde das interessieren, allerdings nur als Stand-Alone Version 
ohne PC. Mit dem PC kann man (ich) ja heute schon mit SW-Empfängern und 
einem KW-Radio über die Soundkarte DRM empfangen.

von Günter -. (guenter)


Lesenswert?

Das ist ein anspruchsvolles Projekt. Habt Ihr mal beim GNU Radio Projekt 
nachgesehen:

http://www.gnu.org/software/gnuradio/

Da steht das an DRM gearbeitet wird und vielleicht hilft die Hardware 
(A/D Karten) auch.

von tom (Gast)


Lesenswert?

Ob DRM am Anfang sinnvoll ist, weiß ich nicht, für was leichteres bin 
ich auch zu haben. Vorschläge bitte! Genauso wenig wie ich jetzt schon 
abschätzen kann ob man das komplett als Stand-Alone Gerät auf dem Board 
hinbekommt, als Endziel wäre das natürlich sicherlich denkbar. Also ich 
dachte man geht da mal Schritt für Schritt ran. Das ganze soll ein 
Einstieg in SDR sein und eine Auffrischung für VHDL. A/D- und 
D/A-Wandler hat das Board ja.

@SuperUser: Hast Du schon mal ein SDR gemacht?
@Günther: Danke das Projekt ist bekannt. Welche Hardware meinst Du? Hast 
du einen Link dazu?

von Günter -. (guenter)


Lesenswert?

@tom

Sorry, ich kannte dein Board nicht genau und wusste nicht das es schon 
A/D und D/A Wandler hat. Ich dachte daran von GNU radio die Wandler zu 
nutzen.

von tom (Gast)


Lesenswert?

Ich habe gerade gelesen, dass FM bzw. UKW-Empfang mit einem SDR auch 
möglich sein soll, stimmt das? Das wäre dann für den Einstieg sicher 
einfacher als gleich mit DRM zu starten?

von Günter -. (guenter)


Lesenswert?

> Ich habe gerade gelesen, dass FM bzw. UKW-Empfang mit einem SDR auch
> möglich sein soll, stimmt das? Das wäre dann für den Einstieg sicher
> einfacher als gleich mit DRM zu starten?

Auf jeden Fall einfacher. Schau dir mal den folgenden Link an:

http://andraka.com/shortwave.htm

Da hat einer einen Kurzwellenempfänger in einen Spartan II gebaut.

Das interessante daran ist natürlich, dass du erst mal den Empfänger für 
dein DRM hast ;)

Aber mal eine Frage um zu verstehen was du genau machen willst. Unter 
den Begriff SDR verstehe ich eine Software die auf einen Prozessor 
läuft. Ist das was du dir vorstellst mit dem FPGA oder möchtest du den 
Empfänger direkt in VHDL implementieren?

So einfach der Empfänger von Andraka aussieht, ich sehe trotzdem einigen 
Aufwand für die Implementierung, außer du hast genug Ressourcen und 
machst das in floating-point.

Normalerweise wird das in fixed-point Notation gemacht und da musst du 
einigen Aufwand rein stecken um Überläufe zu vermeiden, bzw. zu 
entscheiden wann du zurückskalieren kannst ohne die Qualität des 
Algorithmus zu beeinträchtigen.

von Stefan D. (stefan_dk)


Lesenswert?

Hi Tom,

ja so etwa habe ich auch vor. Es ist aber ein sehr umfangreiches 
Projekt. Aber man hat danach viele Themengebiete der digitalen 
Signalverarbeitung angeschnitten und seinen Horizont erweitert.

Ein SDR setzt sich aus verschiedenen Komponenten zusammen, FIR, CIC 
Filter, NCO, Mixer, Demodulatoren und und und.

Es gibt im Interent (Xilinx ???) irgendwo ein PDF, welches den Entwurf 
eines SDR anhand von Core-Generator Modulen erläutert. Man könnte die 
einzelnen Module von Hand programmieren um einen wirklichen Einblick in 
der digitalen Signalverabeitung zu bekommen. Es reicht alles in 
fixed-point zu kodieren.

Nachdem du ein Konzept darüber erstellt was genau du haben möchtest, 
könnte man mit dem "digitalen Front-End" beginnen. d.h. einen digitalen 
Mischer (Multiplizierer, NCO) mit anschließender sample-rate Reduzierung 
(durch CIC und oder FIR-Filter).
Damit ist man erst mal beschäftigt. Danach hat man eine gute Basis 
verschiedene Demodulierungsverfahren zu implementieren.

Viel Spass
Stefan

von Stefan D. (stefan_dk)


Lesenswert?


von sr2 (Gast)


Lesenswert?

Einfache Anwendungen im Hobbybereich auf XC2S.. oder XC3S.. würden mich 
auch interessiern.Bin aber absoluter Anfänger. Bis jetzt läuft nur ein 
Zähler bis 0.2/50 Mhz und fast keine Programmierkenntnisse. Bei 
Interesse an Erfahrungsaustausch bitte mal kurze Email. mfg...

von tom (Gast)


Lesenswert?

@Günter: Also mein Gedanke war eigentlich folgender, ich habe da jetzt 
ein Spartan 3E-Board das schon sehr viel Peripherie hat, 2 A/D-, 4 
D/A-Wandler, 1 LCD, 8 LED's, 4 Tasten, 4 Schiebeschalter,1 Ethernet,1 
USB,1 VGA,1 Drehtaster,1 RS232, SRAM, dieses wollte ich jetzt mal in 
einem größeren Projekt nutzen (Ampelsimulationen werden sehr schnell 
langweilig ;-).
Ich bin dann auf die Idee gekommen, ein SDR zu bauen (angeregt durch 
Elektor, CCZwei, Herr Kainka), also die Berechnungen die der PC macht 
auf das Board zu verlagern und erst dann im PC zu verarbeiten wenn auf 
dem Board keine andere Möglichkeit mehr besteht, wenn möglich vielleicht 
auch eine stand-alone Sache daraus zu machen. Allerding muss ich sagen 
steh ich was SDR angeht erst am Anfang. Ob dann zum Schluß DRM aus dem 
Lautsprecher kommt oder ob ich nur das DCF77-Signal dekodiert habe ist 
offen, ich will die Details verstanden haben und nicht nur das grobe 
Prinzip. Die ganze Sache ist rein hobbymäßig und nicht kommerziell oder 
so.

@Stefan Dk
Dein Ansatz/ Vorschlag ist schon mal interessant. Welches Board benutzt 
du, auch das Spartan 3E-Board Rev.D von Xilinx? Was hast Du dir zum Ziel 
gesetzt zu dekodieren?

von tom (Gast)


Lesenswert?

@sr2: ohne Angabe einer E-Mail-Adresse kann man dich schlecht per E-Mail 
anschreiben ;-)

von Stefan D. (stefan_dk)


Lesenswert?

Hallo Tom,

ich besitze auch das Spartan 3E Board, daneben benutze ich noch ein 
Altera DE1 mit dem CyclonII.

Jedoch will ich nicht das komplette SDR selbst kodieren. Ich werde den 
AD6620 von Analog verwenden. Dies ist ein digital down converter (DDC). 
Es brauchen nur noch ein paar Parameter übertragen werden und fertig ist 
das "digitale Front end". Dazu kommt noch ein schneller ADC mit etwa 
50MHz.

Trotzdem brauche ich auf dem FPGA noch viele Blöcke (FIR, NCO) für die 
weitere Verarbeitung der I/Q-Daten vom AD6620. Im Grunde läuft es bei 
mir auf einen Amplituden und Phasendemodulator hinaus.

Für den Anfang rate ich dir (aus Erfahrung ;-) fange erstmal mit einem 
FIR-Filter oder einen NCO an. Dies sind grundlegende Blöcke im SDR 
Design. Vielleicht noch eine Datenanbindung zum PC. Darauf kannst du 
super aufbauen!

Stefan

von Chris L. (mince)


Lesenswert?

Hallo Tom

Ich hab hier auch ein "Spartan 3E Starter Board" rumliegen und hab mir 
auch schon Gedanken gemacht, damit einen SDR Empfänger zu bauen, ähnlich 
den USRP von "GNU Radio".
Übrigens gibt es dort Pläne, im Nachfolger von USRP, dem USRP2, auch 
einen Spartan FPGA zu verwenden und die Schnittstelle zum PC über 
Ethernet zu machen.

Zum Einstieg in SDR hab ich mir jetzt erst mal den ElektorSDR Empfänger 
gekauft.
Der funktioniert gut, aber Ziel des Spartan Projekts wäre, nicht über 
die Soundkarte zu gehen, sondern mit dem ADC auf dem Xilinx Board eine 
höhere Abtastrate und damit Bandbreite zu erreichen, und dann mit 
möglichst hoher Abtastrate in den PC zu gehen, und möglichst viel in 
Software zu rechnen. Natürlich kann man auch, wenn es damit 
Geschwindigkeits-Probleme gibt, einen DDC im FPGA programmieren.

Bzgl HF-Teil hab ich an einen TV-Tuner gedacht. Damit kann man 
Frequenzen von etwa 40 MHz bis ca 800 MHz runtermischen. Viele TV-Tuner 
haben ein I2C Interface und können damit digital angesteuert werden. 
TV-Tuner haben überlicherweise eine Bandbreite von ca 6 MHz.

Falls du in der Richtung etwas entwickelst, würde mich das sehr 
interessieren.
Ich selbst werde aber wahrscheinlich aus Zeit-Gründen nicht dazu kommen. 
Wahrscheinlich spar ich dann doch auf ein USRP Board.

Hier mal die technischen Daten zum "Spartan 3E Starter Board":
  * LTC1407A-1 dual ADC: 3Msps, 14 bit
  * LTC2624 Quad DAC
  * Spartan 3E XC3S500E-4FG320C
  * Ethernet 10/100 Phy

Viele Grüße
Chris

GNU Radio USRP:
<http://article.gmane.org/gmane.comp.gnu.radio.general/12329/match=usrp2>;
USRP Hersteller:
<http://www.ettus.com/>;
Info zum USRP2:
<http://article.gmane.org/gmane.comp.gnu.radio.general/12329/match=usrp2>;

Elektor SDR:
<http://b-kainka.de/sdrusb.html>;

Spartan 3E Starter Board:
<http://www.xilinx.com/products/devkits/HW-SPAR3E-SK-US-G.htm>;
<http://www.xilinx.com/support/documentation/boards_and_kits/ug230.pdf>;
ADC auf dem Starter Board:
<http://www.linear.com/pc/downloadDocument.do?navId=H0,C1,C1155,C1001,C1150,P2484,D2198>;

Das Spartan 3E Starter Board kann man privat am einfachsten bei 
Trenz-Electronic kaufen. 135 Euro.
<http://shop.trenz-electronic.de/catalog/product_info.php?products_id=92>;

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Hier gibts ein SDR mit 14Bit 80MS/s ADC (LTC2206) und Spartan XC3S250E 
zu kaufen:
http://www.ssb.de/amateur/products/perseus/perseus.shtml
Wird auch im Dezemberheft des "Funkamateur" besprochen.

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.