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??????
>>> 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.
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!
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...
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.
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.
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.
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?
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?
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. ;-)
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?
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
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????
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
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
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
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