Hallo, hat jetzt schon mal jemand eine FFT in einem dsPIC realisiert? Komme mit der Microchip Beschreibung nicht ganz klar und für mich ist es das erste Mal, dass ich sowas programmieren muss und nicht nur rechnen. Folgende Ausgangslage: Ich nutze einen dsPIC30F4012 Ich wandel zwei AD-Kanäle (SIN & COS Signal) und speichere die Daten ab. Die gespeicherten Daten brauche ich für die FFT um daraus die Frequenz zu bestimmen. Letztlich soll daraus eine Geschwindigkeit ermittelt werden mittels Dpplerverschiebung. Habe die Daten bisher separat gespeichert für jeden Kanal einzeln. Nun meine Frage(n): Wie speicher ich die Daten am Besten ab? Wie programmiere ich am Besten die FFT für den dsPIC? Das Microchip Besipiel hilft mir im Moment wenig, da ich noch nicht so wirklich verstanden habe, was die da machen. Bei einem Verweis auf eine ordentlich Erklärung bin ich auch dankbar. FFT habe ich noch nicht weiter programiert, deswegen stelle ich auch keinen Progcode rein. Wie ich die AD-Wandlung mache ist ja wohl eher uninteressant. Vielen Dank Gruß Lars
>hat jetzt schon mal jemand eine FFT in einem dsPIC realisiert? ja. Z.B. microchip >Komme mit >der Microchip Beschreibung nicht ganz klar mit welcher Microchip Beschreibung? >und für mich ist es das erste >Mal, dass ich sowas programmieren muss und nicht nur rechnen. sowas musst du nicht programmieren, nur benutzen. >Nun meine Frage(n): >Wie speicher ich die Daten am Besten ab? Wie in der Microchip Beschreibung angegeben >Wie programmiere ich am Besten die FFT für den dsPIC? Das Microchip >Besipiel hilft mir im Moment wenig, da ich noch nicht so wirklich >verstanden habe, was die da machen. welches Microchip Besipiel? Du musst nicht verstehen, was die da machen, solange du die Routine richtig aufrufst >Bei einem Verweis auf eine ordentlich Erklärung bin ich auch dankbar. Wenn du fft.s in der Microchip DSP library nicht ordentlich erklärt findest, wird es schwer seinm, dich zufriedenzustellen.
@ Holger einfach mal den Senf dazu gegeben ohne weiterzuhelfen. Aber gut. Microchip Beispiel, was die in Ihren Examples angeben. >welches Microchip Besipiel? Du musst nicht verstehen, was die da machen, >solange du die Routine richtig aufrufst Dazu kann ich nur sagen, dass ich zu der Sorte Leute gehöre, die gerne verstehen, was sie da tun bzw. der Chip. Das bewahrt mich über kurz oder lang auch davor, Fehler zu machen, wo ich dann nicht verstehe wieso die auftreten. @ all Für weitere Hilfe bin ich nach wie vor dankbar. Gruß Lars
Hallo Lars, ich muss sagen, deine Art nach Informationen zu fragen ohne uns die Möglichkeit zu geben, auf irgendetwas Bezug zu nehmen, könnte man am ehesten als Trollposting ignorieren. Ich gehe aber mal davon aus, daß du es ernst meinst. Dann mußt du, wie Holger schon sagte, einen Link angeben, von welchen Beschreibungen und Beispielen du redest. Zum Thema Verstehen von angewendeten Programmroutinen schlage ich vor, daß du dich erstmal überzeugst, den FFT-Algorithmus und die Butterflyoperation verstanden zu haben. Wenn du vor diesem Hintergrund immer noch behauptest, die Microchip-Implementierung nicht zu verstehen, und auch angibst, WO die Schwierigkeiten liegen, kann man dir eventuell helfen. Nicht vergessen: auch mal an die eigene Nase fassen. Matthias
>Ich wandel zwei AD-Kanäle (SIN & COS Signal) und speichere die Daten ab. Ich verstehe nicht, was du mit SIN & COS Signal meinst. Zur Dopplermessung misst du doch einfach ein Signal, das vielleicht sinusförmig ist, aber eine unbekannte Phase aufweist. Oder meintest du, dass du die beiden Signale zu Testzwecken einspeist? Zu Testzwecken solltest du eher diese Funktionen programmtechnisch an die FFT übergeben, solange du mit der Prozedur noch nicht richtig umgehen kannst. Das schliesst andere Fehlerquellen aus. >Die gespeicherten Daten brauche ich für die FFT um daraus die Frequenz >zu bestimmen. Letztlich soll daraus eine Geschwindigkeit ermittelt >werden mittels Dpplerverschiebung. Dafür ist eine FFT gänzlich ungeeignet, da sie nur diskrete Frequenzen auflöst. Angenommen du rechnest eine 1024-Punkte-FFT, dann hast du eine Auflösung von ca. 2km/h bei Schallsignalen oder 600000 km/s bei Licht/Radar. Gruss, Karsten
@ Matthias Hallo, ich fasse mir immer mal wieder an die eigene Nase. Aber ich bin nach wie vor der Meinung, dass Holger sich diese Art der Antworet auch sparen kann. Ich hatte kein Beispiel angeführt, weil ich dachte, dass es hinlänglich bekannt ist. War ein Fehler von mir sehe ich ein. Da hätte er aber genauso nach fragen können, wie du es getan hast. Er gibt mir hingegen zur Antwort, dass Microchip schonmal ne FFT mit nem dsPIC realsiert hat. Das war mir auch klar. Weiterhin kam er mit so schlauen Sprüchen, wie ich muss es nicht verstehen nur benutzen. Um es zu benutzen sollte ich es aber vielleicht verstanden haben. Aber jetzt genug dazu. Im Anhang befindet sich das Beispielprogramm von Microchip für MPLAB und C30. @ Karsten Danke für die Antwort. Hier ein paar Erklärungen. Ich habe von einer HF-Karte zwei Ausgangssignale (SIN & COS sind sie bezeichnet), welche um 90° Phasenverschoben sind. Normalerweise nimmt man das eine Signal zur Bestimmung der Dopplerverschiebung und aus dem anderen lässt sich die Bewegungsrichtung bestimmen. Die brauche ich aber im Moment nicht, mich interessiert nur der Betrag. Mit MATLAB habe ich festgestellt, wenn ich beide Signale zuerst addiere und dann die FFT durchführe ist der Frequenzpeak deutlicher zu erkennen. Letztlich würde mir aber auch die FFT für ein Signal reichen. Bei den Signalen handelt es sich um Reflektionssignale von Gasblasen in einem Medium (hier erstmal Luft in Wasser). Die Sendefrequenz liegt bei 4MHz. Ich erwarte Geschwindigkeiten um ca. 25cm/s. In MATLAB habe ich mittels derer FFT-Routine die erwartete Frequenz bekommen und die daraus resultierende Geschwindigkeit. Nur kann ich meine Daten im Moment nicht auf die FFT-Routine von Microchip umsetzen, weil ich damit im Moment nicht klar komme. Vielleicht sieht es nach dem WE aber anders aus. Was sind Twiddlefaktoren? Habe ich noch nie gehört. Der Begriff ins Deutsche übersetzt heißt fummeln, aber was? Muss ich die Daten erst drehen, wie Microchip das irgendwo schreibt oder wie? Letztlich will ich eine FFT mit nur 32 bzw. 64 Werten durchführen. Ich hoffe ich konnte meine Frage jetzt etwas präzisieren. @ Holger Entschuldige meine erste etwas patzige Antwort, aber ich habe deine Kommentare wohl etwas zu sehr in den falschen Hals gekriegt, weil ich mich inzwischen auch schon 2,5 Tage mit dieser FFT rumärgere. Gruß Lars
>Entschuldige meine erste etwas patzige Antwort, aber ich habe deine >Kommentare wohl etwas zu sehr in den falschen Hals gekriegt, weil ich >mich inzwischen auch schon 2,5 Tage mit dieser FFT rumärgere. Matthias hat doch bereits festgestellt, dass dein Problem in erster Linie beim FFT-Algorithmus liegt und nicht am dspic, für den du noch immer kein konkretes Beispiel geschickt hast. 2,5 Tage sind auf deinem Level ein bisschen wenig, poste doch in 2,5 Monaten nochmal. >Er gibt mir hingegen zur Antwort, dass Microchip schonmal ne FFT mit nem >dsPIC realsiert hat. Ja und? Hast du was gegen Microchip und möchtest lieber Code von jemand anderem haben? > Das war mir auch klar. Das war mir nicht klar, dass dir das klar war. Entschuldige vielmals! Allerdings bezweifle ich, dass bei dir irgendwas klar ist.
Also irgendwie scheint mir das Holger sich die Post irgendwie garnicht richtig durchliest. @ Holger ?? Bist Du mit dem falschen Fuß aufgestanden??? Lars wollte, soweit ich den Post verstanden habe, nur ein Beispiel für die Verwendung der FFT haben. Das Beispiel in der Doku habe ich auch nicht verstanden. Hab grad noch mal reingeschaut. Das Thema würde mich auch interessieren, da ich wahrscheinlich in der nächsten ZEit auch so ein ähnliches Problem lösen muss. Bis dann und viele Grüße Christian
>Was sind Twiddlefaktoren? Habe ich noch nie gehört. Der Begriff ins >Deutsche übersetzt heißt fummeln, aber was? Muss ich die Daten erst >drehen, wie Microchip das irgendwo schreibt oder wie? Dir ist echt nicht zu helfen. Zum mitmeißeln: FFT ist ein Algorithmus zur schnellen Berechnung von Fourierreihen. Vielleicht hast du dich 2,5 Tage mit der Fouriertransformation beschäftigt, hast aber definitiv noch keine Erklärung zur FFT gelesen, sonst würdest du nicht solche Fragen stellen. RTFM, denn in der Beschreibung von Microchip und dessen Referenzen ist das gut verständlich erklärt, jedenfalls wenn wir die gleiche meinen. Aber das wird dein Geheimnis bleiben. Ich bin für einen IQ-Test als Aufnahmeprüfung für dieses Forum. Matthias
@Lars wie wärs mit Nulldurchgänge N im Zeitintervall T zählen und daraus die Frequnenz berechnen? Braucht zwar auch etwas Mathematik, aber f=N/T ist nicht so anspruchsvoll wie eine FFT und noch dazu genauer, wenn du ein sauberes Signal hast.
@ all sehe das als erledigt an. Mit dem IQ-Test könntest du schlechte Karten habe, da meiner mit Sicherheit nicht unterdurschnittlich ist, was mehrfach getestet wurde. Warum das Beispiel vorhin nicht hochgeladen wurde weiß ich nicht ist mir aber inzwischen auch egal. Und in den Erklärungen, die ich zur FFT habe steht auch nichts von Twiddlefaktoren (Stöcker, Bronstein), aber bei einer Erklärung dazu schick sie mir doch, dann kämen wir vielleicht mal auf den gleichen Level und ich kann irgendwann auch behaupten als Profi geboren zu sein wie Matthias und Holger. So das war für mich das Wort zum Wochenende. Danke. Lars
>So das war für mich das Wort zum Wochenende. Danke.
Wenn du der gleiche Lars wie larsherzfeld bist, fehlt dir jegliche
Umgangsform. Genau wie mir, wenn ich so angepflaumt werde, versteht
sich. Aber will ich was von dir? Und mit dir auf den gleichen Level will
ich schon gar nicht.
Hallo Lars die FFT eines diskreten Signals ist in einigen Büchern recht gut beschrieben. Es gibt auch welche mit Beispielprogrammen, wo der Aufbau eines solchen FFT-Programms erklärt wird. In deutsch kenn ich nur ein Buch: - Vorlesungen zum Informatik und Ingenieurstudium Bd 9, Fourier und Lapalce-Transformation von Hans-Jürgen Hotopp ua, ISBN 3-89639-080-5. Diese Buch ist vergleichsweise günstig: ca 18 Euro - DFT/FFT and Convolution.. von Burrus und Parks, Wiley Verlag. Diese Buch ist in Englisch, aber wirklich gut, leider eine Antiquität und so eigentlich nur in Uni-Bibliotheken oder bei www.abebooks.de zu bekommen. (ca 60 Euro) In beiden Büchern, besonders in letzterem wird der Aufbau und die Begriffe erklärt. Gerhard
Hallo Matthias, ja die Umgangsformen fehlen dann irgendwo allen ein wenig, erst recht wenn es so relativ anonym zugeht. Für mich war das Problem, dass ich eine Frage gestellt habe und irgendwo von zwei Leuten mehr oder weniger dumm gemacht wurde. Auf fehlende Teile zum Helfen hätte man mich ja auch freundlich Hinweisen können. Ich habe leider wenig Erfahrung mit dem Programmieren von Mikrocontrollern und weiß somit auch nicht, was andere benötigen um zu helfen. Dann kommen noch andere Einflüsse dazu und der Frust entlädt sich halt. Ich will/wollte was von euch ist auch klar. Ich denke Gerhards Post hilft mir auch weiter. Mehr wollte ich ja gar nicht ausser eine Empfehlung, wo ich etwas gut nachlesen kann, weil meine Bücher mir nicht geholfen haben oder aber wenn jemand hat von demjenigen eine Erklärung. Beispielcode und sowas ist zwar schön hilft einem aber meiner Meinung nach wenig beim Verständnis. @ Gerhard Danke für die Buchtipps, ich werde mal schauen, ob ich die Bücher bekomme. Gruß Lars
Nachtrag @ Gast Ist leider kein sauberes Signal, auch wenn sich das mit der Bezeichnung SIN & COS so anhört. Daher gestaltet sich das Zählen der Nulldurchgänge als sehr problematisch bis gar nicht machbar. Trotzdem danke für den Hinweis. Lars
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.