mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Suche FFT Baustein


Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, brauche dringend Hilfe,
ich suche einen IC der mir eine Ausgabe von FFT-Balken(Bandbreite 
erstmal nebensächlich)realisiert, und das ganze möglichst stromsparend! 
Ich hoffe das im Radiobereich so etwas gibt. Ich brauche eine Anzeige 
bis 130kHz.
Kennt jemand so einen Chip??????

Autor: sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Radiobereich?!

Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, soll eigentlich für Ultraschall sein, aber ich hoffe das für das 
Niederfrequente LW-Band so etwas existiert. Suche nur einen fertigen 
Baustein.

Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ich die zu verarbeitenden Werte in den IC gebe, ist vollkommen egal.
Also von Analog bis SPI....ist egal.

Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es überhaupt feste FFT-ics??? Also mit fester Funktion, und ggf. 
einstellbaren Fensterfunktionen oder so???

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>> Gibt es überhaupt feste FFT-ics?

Von der Stange glaube ich nicht?

Dürfte aber ein interessantes Projekt sein. Welchen Frequenzbereich 
brauchst du (von _ bis 130 KHz)?

Tipp: Ein Fragezeichen reicht.

Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benötige 10-120kHz. Der Abstand der Balken soll max 5kHz sein.
Welcher dsp ist günstig in der Programmierung (Programmer), stromparend, 
und schnell genug dafür? Ich bin eher in der Welt der AVRs und MSPs 
daheim. Das die dafüt zu langsam sind ist nix neues!

Autor: Ras Funk (rasfunk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein super Chip für diese Anwendung ist der Pathfinder-2 von Catalina:

http://pda.chipfind.ru/datasheet/pdf/etc/pathfinder2.pdf

Der rechnet Dir FFTs bis 1M Linien ind IEEE-754 SP floating point. Mit 
6W extrem stromsparend.

Autor: Ras Funk (rasfunk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Onit schrieb:
> Ich benötige 10-120kHz. Der Abstand der Balken soll max 5kHz sein.
> Welcher dsp ist günstig in der Programmierung (Programmer), stromparend,
> und schnell genug dafür? Ich bin eher in der Welt der AVRs und MSPs
> daheim. Das die dafüt zu langsam sind ist nix neues!

Argh, das sind ja gerade mal 32 Linien! Wieso soll da ein MSP zu langsam 
sein!? Es ist doch nur für eine Anzeige, d.h 25Hz Refreshrate ist schon 
zuviel des Guten...

Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, aber 6 Watt sind zuviel. Ich will mit einer Batterie arbeiten.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm einen ATMEGA mit ausreichend SRAM (z. B. ATMEGA8 1 Kbyte SRAM), da 
eine FFT64 vollkommen ausreichend ist. Code findest du in der 
Artikelabteilung unter FFT.

Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe einen Mega128 schafft der das wirklich bis 120 kHz?

Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RE: Ras Funk-MSP zu langsam
Die Sample and Hold einheiten der MSPs brauchen was bei 60us zur 
Wandlung. Somit ist bei rund 15 kHz leider Feierabend.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der sollte das schaffen. Aber schaue noch einmal in das Datenblatt.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, der ATMega8/ATMega128 schafft es nicht. Min. Zeit für eine 
Wandlung 13 µs, du brauchst ca. 8 µs. Versuch auf die PIC30F / PIC33F 
auszuweichen.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gäbe noch die Möglichkeit den ADC des AtMega zu übertakten. Eventuell 
sind dann nur noch 7 Bit vom Ergebnis brauchbar. Im Forum wurden schon 
Programme vorgestellt die VGA-Signale wandeln.

Autor: Warhawk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

sry aber du brauchst sogar einen ADC der eine Wandlungszeit von ca. 4 µs 
hat, da du mit mehr als der doppelten Frequenz abtasten musst. Also bei 
120kHz musst mit mehr als 240kHz abtasten und das schafft im Moment bei 
den AVRs(8bit) nur die ATXMega. Die sind mittlerweile sporadisch 
erhältlich.

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde zu einem PICCOLO von TI raten:

http://focus.ti.com/pr/docs/preldetail.tsp?section...

gruß avr

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Warhawk.

Asche auf mein Haupt.

Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
120kHz ist aber die maximal darzustellende Frequenz. D.H.:ich brauche 
4.1666us Abtastfrequenz (240kHz Abtastrate). Sind da die Pics noch 
geeignet, oder ist es da besser auf TI-Derivate umzusteigen? Wenn ja 
welcher von denen glänzt durch geringen Stromverbrauch?

Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry habe zum Schreiben zu lange gebraucht :-) Deswegen eine Frage die 
schon vorher beanwortet wurde. Ist schon mal ein suppi Tipp! Gibt es 
dropsdem noch etwas günstigeres?

Autor: Warhawk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mir ist gerade noch nen kleiner Fehler in meiner Aussage von eben 
aufgefallen. Ich befürchte das du mehr als nur 240 kHz Abtastrate 
brauchst, da für eine FFT nicht die höchste Frequenz die man darstellen 
will, sondern die höchste im Signal vorkommende Frequenz entscheident 
ist. Also kommt es darauf an wie du die Filter vor der Abtastungs 
auslegst. Hierbei solltest du aber auch beachteten das der Tiefpass 
nicht ab einer bestimmten Freuqenz alles wegschneidet, sondern ein 
übergangsbereich existiert, die Breite desen ist wiederum vom Grad des 
Filters abhängig. Am besten fragst du nochmal eine Elektortechniker 
deines Vertrauens, der müsste das berechnen können. ;-)

Autor: M3 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm einen M3-Cortex von luminary, 50mhz und 1Ms/s. Die haben auch ein 
Eval-Brett für ein kleines Scope. DMA inklusive ...

Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wäre der Mega128 allein in der Lage der FFT-Berechnung ohne eigene 
Analog-Werteaufnahme?
Gibt es AD-->SPI-Wandler, oder AD-->Parallel-Wandler die für diese 
Anwendung schnell genug wären?

Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also AD-Wandler gibt es die schnell genug wären. Die Frage ist jetzt 
nur: Reicht der Mega128 für die Berechnungen aus?

Autor: Wolfgang M. (womai)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine Empfehlung waere ein Microchip dsPIC. Der eingebaute ADC hat ca. 
500 kHz Bandbreite, das sollte also reichen. Je nach dsPIC schafft er 
bis zu 2 MSamples/sec (fuer 120 kHz FFT musst Du mit mindestems 240 
kHz). Die Chips sind auch schnell genug (und haben einige 
Mathematic-Spezialbefehle im Befehlsatz), um eine vernuenftige FFT in 
Echtzeit zu schaffen (mit "Echtzeit" meine ich, schneller als Du schauen 
kannst, also zumindest etws 15 frames/sec bei 128 FFT-Bins).

Wolfgang

Autor: Onit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ziel soll ja eine Batterieapplikation sein! Müsste doch eigentlich mit 
dem MAX1601-MAX1603 etwas werden können. Die haben einen parallelen 
Ausgang, welchen ich an den Mega128 anklemmen könnte. Reicht der Atmel 
mit 20MHz dafür aus????

Autor: Andreas Bayer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dedizierte FFT-Chips gab es früher einmal, als DSP noch nicht die 
benötigte Leistung abliefern konnten.
Jeder Hersteller hat FFT-Bibliotheken im Programm, die mehr oder minder 
robust sind. Bei Festkomma-Prozessoren sollte die Rechengenauigkeit 
beachtet werden, denn durch Rundung in jeder Stufe der FFT entsteht 
numerisches Rauschen, das das Ergebnis beeinträchtigt.

Die eingebauten ADC (z.B. im Piccolo von Texas Instruments oder im 
Blackfin von Analog Devices) sind nicht gerade ideal für Messtechnik.

Ich empfehle eher einen kleinen SHARC (von Analog Devices) oder einen 
C672x von Texas Instruments mit einem vernünftigen ADC. Ein TMS320C2833x 
von TI bietet sich als reiner Rechner auch an. Bei anderen Architekturen 
achtet bitte darauf, keine 16-Bit-Arithmetik zu verwenden, sondern 
möglichst 24/32 Bit. Im Prinzip kann auch ein ARM ausreichend sein, wenn 
die Update-Rate der FFT nicht allzu hoch sein muss. Ein moderner DSP 
rechnet eine 1024-Punkte-FFT in weit weniger als 1 Millisekunde, ein 
Cortex M3 in vielleicht 100 Millisekunden (educated guess).

Für eine Messbandbreite von 130kHz sollte man über 400-500kHz Abtastrate 
nachdenken. Einfach nur Nyquist zu bemühen, reicht in der Praxis nicht 
aus (Filterung gegen Aliasing nie ideal).

Ein passender ADC-Baustein wäre z.B. der AD7723 von Analog Devices. 
Daten liest man z.B. per DMA ein und greift sich ein Paket Abtastdaten 
(z.B. 256 oder 512 pro Kanal), die zur FFT verhackstückt werden.

Ich hoffe, die Tipps helfen.

Gruß,
Andreas

Autor: Michael H. (morph1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dsPIC wären da eigentlich richtig, auch wenn das hier nicht gern gelesen 
wird ;)

der ad-wandler ist ausreichend schnell und ne fft-lib für die hardware 
gibts von mc ebenfalls

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Wenn du von der AVR-Schiene kommst: ATXMega (gibt es mittlerweile bei 
CSD).

->One Twelve-channel, 12-bit, 2 Msps Analog to Digital Converter

Denke das langt.

MfG Spess

Autor: Helmut (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nehmen wir mal an du willst eine Echtzeit-FFT. Echtzeit heißt, dass du 
während der Zeit in dem du die FFT berechnest, genau so viele neue Daten 
aufnimmst.

Abtastung mit 512kHz. FFT mit 256 Punkten. Daraus folgt alle 2ms eine 
FFT. Parallel noch a1lle 2us eine A/D-Wandlung durchführen und 
abspeichern.
Die FFT braucht ca. 1000 Additionen und 1000 Multiplikationen plus 4000 
Tabellenzugriffe anschließend nochmals 1000? Befehle um das Ergebnis 
umzusortieren. Sagen wir mal zusammen 10000 Befehle abarbeiten. Bei 
einem Prozessor mit 2Taktzyklus/Befehl wären das damit 20000 Taktzyklen 
in 2ms. Somit müsstest du mit 10Millionen Taktzyklen rechnen. Die 
Wortbreite muss mindestens 16bit sind (8 bit mehr als dein DAC hat). 
Jeglichen 8bit-Prozessor kann man da vergessen. Mindestens ein 
eingebauter 16*16 Hardwaremultiplizierer ist Pflicht. Besser wäre ein 
32bit Prozessor damit man statt 8bit direkt auch bis zu 16bit-A/D 
Wandler sinnvoll nutzen kann.

Ergebnis. entweder 32bit-DSP mit >20MIPS oder 32bit-uP mit >50MHz.
DSPs: Motorola 24bit, TI 32bit
uP: ARM 32bit, Blackfin

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]
  • [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.