Forum: Digitale Signalverarbeitung / DSP / Machine Learning Einfache Realisierung von Filtern


von Michael (Gast)


Lesenswert?

Hi @ all

Ich möchte zwei Signale filtern. Diese liegen bis jetzt noch analog
vor. Für die Digitalisierung benötige ich 2 AD-Wandler die mit je 10MHz
arbeiten. Die beiden Signale sollen dann gefiltert werden und
anschließend wieder über 2 DA-Wandler digitalisiert werden. Für die
Berechnung der Filterkoeffizienten möchte ich Matlab benutzen.
Anschließend würde ich den Filter gerne im Blockschaltbild realisieren,
dann die berechneten Koeffizienten zuordnen. Zum schluss soll daraus ein
Code erzeugt werden, der in einen DSP geladen wird und alles läuft.

Nun zu meinen Fragen:
1. gibt es gute Software, mit der man das RAD nicht wieder neu erfinden
muss?

2. gibt es Möglichkeiten aus den Blockschaltbild einen Code für einen
DSP erstellen zu lassen ? (soll eine schnelle Lösung sein, ohne das man
Monate programmieren muss)

3. Welche DSP's sind gut (zwischen 50 und 100€)

Grüsse

Michael

von Alex (Gast)


Lesenswert?

Gut, schnell und billig sind gegenläufige Forderungen (noch dazu bei
deiner Abtastrate! => machst du das Platinenlayout selbst?)

Für Matlab gibt es eine Real-Time-Target Toolbox, die diverse DSPs
(u.a. TI) unterstützt. Damit könntest du am schnellsten ans Ziel
kommen.

Bei der gewünschten Abtastrate wird dir aber mit gängigen DSPs nichts
anderes übrig bleiben, als den Kram in Assembler zu programmieren - und
selbst da dürfte bei Filtern höherer Ordnung bezeiten finito sein.

Z.B. haben ADs Sharcs 400MHz Taktfrequenz, d.h. es bleiben 40 Takte je
Samplezeit, also 20 Takte je Kanal. Klingt reichlich illusorisch, so
vernünftig arbeiten zu können, oder?

Bei solchen Anforderungen wirds wohl eher ein FPGA werden.

Für deine 50-100 Euro solltest du dir erstmal ein Buch über
Echtzeitdatenverarbeitung kaufen, um einen Eindruck von den
Möglichkeiten aktueller Produkte zu bekommen.

von Michael (Gast)


Lesenswert?

Ich habe für 100€ einen DSP von TI gefunden, der mit 600MHZ läuft. So
wies jetzt aussieht wird die Abtastfrequenz doch unter 10MHz liegen,
ich denke mal zwischen 1MHz und 5 MHz. Dies wird sich aber erst bei
einer genauen Analyser herrausstellen. Wenn man dann z.B. mit 1MHz
abtastet, dann bleiben 600 Takte für die Filterung übrig, da 2 Signale
verarbeitet werden sollen sind es dann nur noch 300 Takte. Mit einem
Takt wird doch bei dem modernen DSP's sicherlich mehr als nur 1
Multiplikation durchgeführt. Dann sollten doch Filter mit einer Ordnung
< 50 ok sein.



Ich habe mir mal die Software von von Texas Instrument heruntergeladen
(Demo) Dort wird angegeben, das einen Code-Wizard geben soll. Was schön
wäre wenn man einen Schaltplan erstelllen könnte,wo man z.B. einen
Tiefpass aus einer Bibliothek entnimmt, diesen auf dem Schaltplan
plaziert und dann die durch Matlab errechneten Koeffizienten in eine
Maske eingibt. Der TI-Compiler, muss dann nur noch den Code daraus
erzeugen, der auf den Ausgewählten DSP optimiert ist.

Es ist kein Poblem den Tiefpass in C zu programmieren. Habe schon
Beispiele gefunden. Nur sind die halt allgemein geschrieben und nicht
auf einen bestimmten TI-DSP zugeschnitten. Dadurch wird beim
Compilieren sicherliche eine menge Performence verloren gehen.nUR
LEIDER denk TI wohl nicht so sehr an die Kunden.


Wie ist es denn bei der Real-Time-Target Toolbox? Hat die einen eigenen
Compiler? Kann ich den Code auf den DSP laden?

Grüsse

Michael

von Thomas (Gast)


Lesenswert?

> Wie ist es denn bei der Real-Time-Target Toolbox?
> Hat die einen eigenen Compiler?
Nein, den mußt du zusätzlich kaufen.

> Kann ich den Code auf den DSP laden?
Ja, das geht sehr einfach über nen eigenen Bootloader.

Aber Alex hat vollkommen recht, das ist eine typische FPGA Anwendung.
Schau dir das mal an:
http://www.mathworks.com/products/filterhdl/

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.