Ich baue an einem design mit, für das eine Zusatzplatine gemacht werden
soll, auf der ein FPGA und ein DSP sitzen werden und das nun auch eine
Vorverarbeitung leisten soll. Diese ist von der Methodik nach einfach,
vom Umfang her aber recht ordentlich. Das Problem ist die Bandbreite von
nur zwar nur 40MHz bei allerdings aufwändiger Filterung, die mir das
halbe FPGA zustellt. Ich brauche nach ersten Schätzungen einen
FIR-Filter von mindestens 1000 Stufen, um genau genug zu werden und
davon auch noch 2 in Reihe. Bevor ich einen dickeren FPGA vorschlage,
wollte ich Ausschau halten, ob es nicht fertige Filter-ASICs gibt, die
das schon leisten.
Benötigt wird ein Filter mit 1024 Stufen mit einer möglichst
schmalbandigen Durchlasswirkung bei 2,2 Mhz, das auf 20 MHz laufen kann.
Bis zu 60 könnte ich im FPGA machen.
Gibt es da was?
Viktor N. schrieb:> Was soll das Filter denn koennen ?
wie ich schrieb:
Markus Wagner schrieb:> Benötigt wird ein Filter mit 1024 Stufen mit einer möglichst> schmalbandigen Durchlasswirkung bei 2,2 Mhz, das auf 20 MHz laufen kann.> Bis zu 60 könnte ich im FPGA machen.
Der Filter-ASIC so es ihn gibt, sollte mit wenigesten 20 MHz zu takten
sein, tausend Werte oder 1024 verarbeiten und dann das gefilterte Signal
wieder ausgeben. Die 1000 Stufen korrelieren natürlich auch mit der
FIR-Filtergüte, die ich ausgerechnet habe.
Kurt Harders schrieb:> hast Du das mal mit einem ADI DASP-214xx angeschaut?
Gefunden und gelesen, aber noch nicht verstanden.
Ich habe keine Details zur Achitetur vorliegen. Kriege ich da meine 1024
Filter-koeffizienten rein?
Hallo Markus,
Markus Wagner schrieb:>> hast Du das mal mit einem ADI DASP-214xx angeschaut?> Gefunden und gelesen, aber noch nicht verstanden.>> Ich habe keine Details zur Achitetur vorliegen. Kriege ich da meine 1024> Filter-koeffizienten rein?
Der ADSP-214xx hat einen FIR-Beschleuniger mit 1024 Taps und 1024
Koeffizienten. Was der genau bringt kann ich nicht sagen. Wenn diese
Lösung für Dich in Frage kommt, wende Dich direkt an den Support von
ADI. Die helfen schnell, kompetent und ohne Ansehen der erwrteten
Stückzahl :-)
Grüße, Kurt
Dogbert schrieb:> Wenn die Systembandbreite von 20MHz gar nicht gebraucht wird kann man ja> einfach nur downsamplen, fir mit weniger taps und wieder upsamplen.
Sehe ich ja, es geht nur um einen Bandpass bei 2.2Mhz. Je nach
Bandbreite kann man da erst schon mal auf 10Mhz runtersamplen.
Da ein Bandpass auch immer eine gewisse Gruppenlaufzeit hat sollte auch
Latenz kein Problem sein.
Ich denke das lässt sich für erschreckend wenig Geld in FPGAs machen,
hier einen ASIC zu nehmen macht nur Sinn wenn man damit quasi auch die
"Entwicklung" kaufen will.
Wie genau?
Genauigkeit ist wählbar.
Da es aber ein Bandpass ist der wohl eine schmale Bandbreite hat denn er
hat 1000 Taps könnte man etwas anderes machen:
Es hat ja parallelen zu einem Radioempfänger, Stichwort „Gnuradio“,
„direct conversion“.
Runtermischen durch Multiplikation mit der Mittenfrequenz 0Grad/90Grad
„IQ Demodulation“.
Evtl. Bandbegrenzung am Eingang um Aliasing dabei auszuschließen, keine
Mischprodukte über der Fs/2.
Multirate Tiefpass in mehreren Stufen auf die gewünschte Bandbreite für
die IQ-Signale.
Da kommt man evtl. bei guter Stopbandunterdrückung vielleicht mit 32*2
(symmetrisch) Taps pro Stufe aus. Nur die erste fällt ins Gewicht, die
nachfolgenden laufen immer halb so schnell.
Auch eine Kombination aus Boxcar (Kammfilter) und FIR wie in DS Wandlern
könnte den Aufwand noch weiter reduzieren.
Oder ein CIC Filter?
Die letzte Stufe die „genau“ sein soll und leicht änderbar dann auf
jeden fall als FIR aber dafür bei 1/16 der Samplerate und mit deutlich
weniger Taps.
Wieder upsamplen, mit der Mittenfrequenz 0/90Grad multiplizieren und
summieren.
Die Genauigkeit leidet nicht, mathematisch äquivalent, praktisch muss
man natürlich auf die Anzahl der Bits an verschiedenen Stellen achten.
Hätte auch den Vorteil die Mittenfrequenz wäre leicht "durchstimmbar"
über den NCO.
Oder soll das Signal vielleicht eh in irgend einer weise demoduliert
werden?
Eine effektive Implementierung erfordert ein gewisses DSP-Wissen und
Erfahrung.
Evtl. ist sogar der gewählte Lösungsweg für das Gesamtsystem zu
überdenken.
Man könnte evtl. mit analoger Vorfilterung, und dann undersampling bei
vielleicht dem 10-fachen der schmalen Bandbreite des Filters die
günstigste und einfachste Lösung erzielen.
Ich habe nun einen weiteren FPGA davorgeknallt, in den ich einbauen
kann, was ich will. Momenten bleibt es bei zwei optimierten FIR-Filtern
mit nunmher 2048 TAPS.