Forum: Mikrocontroller und Digitale Elektronik FFT mit PIC17C42


von kay stecklum (Gast)


Lesenswert?

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

von Gehard Gunzelmann (Gast)


Lesenswert?

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

von kay stecklum (Gast)


Lesenswert?

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

von dds5 (Gast)


Lesenswert?

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

von Gehard Gunzelmann (Gast)


Lesenswert?

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

von Gehard Gunzelmann (Gast)


Lesenswert?

Hallo Kay

nochwas: zu der PIC17Cxx Sache mit FFT gibts ne interessante Seite:

http://www.piclist.com/techref/microchip/fft/picspect.htm

Gerhard

von kay stecklum (Gast)


Lesenswert?

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

von Gehard Gunzelmann (Gast)


Lesenswert?

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

von kay stecklum (Gast)


Lesenswert?

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

von Gerhard Gunzelmann (Gast)


Lesenswert?

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

von Gerhard Gunzelmann (Gast)


Lesenswert?

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

von kay stecklum (Gast)


Lesenswert?

Hi Gerhard,

Danke für den Link...werd mich mal durchwühlen...

Kay.

von Thomas (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.