Hi Zusammen, Ich möchte eine FFT mit einem Mikrocontroller realisieren. Von Microchip gibt es da als application note eine FFT für den 17C42. Da ich mich mit der 16F-Reihe von Mocrochip so ein bisschen auskenne möchte ich das auch mit diesem Typ machen. Außerdem ist der 17C ja nur einmal beschreibbar, und so wie ich mich kenne würde ich beim programm-testen eine Tonne Mikrocontroller im Gegenwert eines Kleinwagens verbrennen. Meine Frage ist daher: Warum verwendet Microchip gerade den 17C42? Was kann der im Bezug auf Speicheradressierung und Verwaltung besser als Andere? Würde es ein anderer Typ auch tun? Für eine Antwort wäre ich sehr dankbar... Bis dann... kay
Hallo kay die PIC17Cxxxx sind nicht gerade die aktuellen PIC's. Die Application note dürfte also auch schon älter sein. Ich weiß es zwar nicht, aber ich vermute, daß der externe Bus, den der 17c42 unterstützt, der Grund für diese Wahl war. Heute würde man für eine FFT einen dsPIC30Fxxxx wählen. Diese neuen PIC's enthalten auch eine DSP-Einheit, die auch MAC Befehle kennt. Such mal auf http://forum.microchip.com da wirst Du sicher näheres erfahren. gerhard
Hi Gerhard, Danke für die schnelle Antwort. Ja die FFT-Doku ist schon älter (1997)Ich hab mal nachgeschaut und der 17C hat einen Datenbus um extern auf Speicher zuzugreifen der hier massig gebraucht wird. Ich schau mal auf die von Dir angebene Seite. Vielleicht gints ja einen Weg das Ganze mit einem 16F umzusetzen. Kay
Hallo Kay, zum Zeitpunkt als diese AppNote erschien, war die PIC17C Baureihe das leistungsfähigste was Microchip im Programm hatte. Mit 16F wirst Du sicher nicht weit kommen, da die Speicherarchitektur mit ROM-Bänken und RAM-Pages doch ziemlich "verkorkst" ist. Mit externem Speicher sieht es bei Microchip sehr dünn aus, da die Zugriffszeiten die maximale Taktfrequenz doch stark einschränken. Mir fällt da im Moment nur PIC18C601 und 801 ein. Dieter
Hallo Kay warum willst du das mit nem PIC16 erledigen ? Die PIC18 sind um einiges leistungsfähiger und kaum teurer. Die PIC30F sind zum Teil auch schon im Einzelhandel erhältlich oder auch kostenlos von Microchip als Sample. Gerhard
Hallo Kay nochwas: zu der PIC17Cxx Sache mit FFT gibts ne interessante Seite: http://www.piclist.com/techref/microchip/fft/picspect.htm Gerhard
Hallo Nochmals vielen Dank für die Hilfe. Heut ist ja mein erster Tag an dem ich mich mit so was beschäftige. (ich meine fft in einem Chip umzusetzen) Auf die 18-er Reiher zurückzugreifen ist bestimmt nicht besonders problematisch für mich da diese den 16-ern doch noch sehr ähnlich sind. Würde mich auch reizen mit denen was zu machen. Das mit den PIC30F muss ich mir mal näher anschauen. Noch was... Das Signal das ich auswerten möchte ist sehr niederfrequent. Da heißt Alles oberhalb von etwa 50 Herz (richtig gelesen, sozusagen grad bis zur Netzfrequenz) ist da schon nicht mehr durch den BP/TP gekommen. Wenn das zu betrachtende Frequenzband also relativ klein ist...komm ich da mit weniger leistungsfähigen Prozessoren (Abtastrate, Speicher usw.) aus oder bin ich da mit meinem mathematischen Verständnis auf dem Holzweg? Kay
Hallo der prozessor wird durch die Anzahl der Samples für die FFt gestresst. Machst Du nur 64 Samples hat der Prozessor natürlich weniger zu tun, als wenn Du ihm 1024 Samples zu verarbeiten gibst. Theoretisch ist also nicht der Frequenzbereich ausschlaggebend, sondern die gewünschte Auflösung. gerhard
Hi, Gibt es eigentlich eine Formel oder einen groben Anhalt wie hoch meine Samplerate auf dem Zeitsignal sein muss um auf einem Frequenzband eine bestimmte Auflösung zu erhalten. In meinem Fall ist das Freuquenzband ja rechte klein (bis max 50Hz) ich brauche aber eine hohe Auflösung im Zehntel-Herz-Bereich. Kay
Hallo Kay also wenn ich mich nicht irre ist das so: Wenn Du eine FFT mit 512 Samples durchführst, bekommst Du auch 512 Werte raus, umgerechnet auf 50 Hz Bandbreite ergibts dies etwas weniger als 0,1 Hz Auflösung. Ob das aber sinnvoll ist, ist etwas anderes. Die "Energie" der einzelnen Schwingungen verteilt sich dann auf die 512 Werte. Nach meiner Erfahrung ist eine Auflösung von 1 Hz meist besser. Gerhard
Hallo Kay sorry, muß mich revidieren, ist schon wieder ein bisschen her, daß ich mich damit beschäftigt habe. Also aus 1024 Samples gibts 512 Messwerte. http://www.tutschku.com/download/DiphoneStudio-DEGEM-01.pdf Gerhard
Hallo, die gewünschte Frequenzeinteilung bestimmt deine Messdauer. Und zwar ist T = 1/dt, d.h. T=1/0.1 Hz = 10s. Für die höchste abzutastende Frequenz fmax brauchst du 2 Abtastwerte, d.h. bei deinen 50 Hz wäre das eine Abtastrate von 100Hz. 10s * 100Hz = 1000 Werte. Die nächst höhere Zweierpotenz ist 1024, also nimmst du die am besten. Samplest du nun 1024 Werte in 10s, läge dein Frequenzspektrum zwischen 0 und 1/2 * 1024/10s = 51,2 Hz. Du kannst auch deine 50Hz beibehalten, deine Frequenzeinteilung wäre dann 2*50Hz/1024 = 0.097 Hz.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.