Guten Morgen, ich möchte für meine Studienarbeit Frequenzen von einem Beschleunigungssensor messen (Vibration). Leider habe ich nicht wirklich ahnung wie ich an die Sache ran gehen soll :( Da nur die "Hörbaren" Frequenzen interessieren wollte ich zunächst an den Eingang einen Bandpassfilter an den Eingang setzten (20Hz - 20kHz). Dann wollte ich die Signale vom Beschleunigungssensor (0-5V, 2.5V Offset 0g) mit einem AD-Wandler digitalisieren. Jetzt weis ich schon nicht mehr weiter ... Reicht es eine FFT über das Signal laufen zu lassen und dann das Frequenzspektrum anzuzeigen (also z.B. 1024 Samples vom Signal machen und das dann einer FFT Lib übergeben) oder muss man da wesentlich mehr machen? Letztlich soll eine Art "Equalizer" am PC angezeigt werden... Reicht dafür ein Ausreichend schneller µC (evtl. mit MAC-Einheit) oder sollte man da direkt zu einem DSP greifen? Wenn ja, für welchen DSP bekommt man günstige/kostenlose/selbstbau Programmer / Entwicklungssoftware / Compiler? Die reine Programmierung macht keine Probleme, ich bräuchte nur den richtigen Ansatz. Ich hoffe ihr könnt mir helfen ...
:
Verschoben durch Admin
Nur Anmerkungen Beschleunigungssensor: einige haben bereits Bandpassverhalten/Frequenzbereich. eventuell gibt es einen passenden? 20Hz bis 20 KHz => mind. 40 kS/Sek. (shannon, abtasttheorem) Bei 1000 Samples ist der gesamte Freq.-bereich nur bedingt zu analysieren - oder du läßt bei kleineren Frequenzen (ermittelbar?) einfach Samples "raus". 1000 Sample bei 40kS/sek => 25 msec 20 Hz == 50 msec. => keine sinnvolle FFT-Anwendung mit 1000 S Du brauchst mehr. Ist es eine Frequenz die auftritt ? Bei der FFT werden nur die Signale richtig berechnet, die in dein 1024 Samplebereich als Sinus n-fach passen. Alle anderen erzeugen nichtvorhandene Spektralanteile: daher werden die ersten und letzten Meßwerte oft gewichtet (verschiedene Funktionen sind da in der Lit. genannt.) siehe z.B.: http://www.baudline.com/manual/equalization.html#windowing Zitat: "Equalizer" am PC angezeigt... Wenn ein PC erlaubt ist/dabei ist: Da würde ich alles direkt mit (der) Soundkarte(-n) machen: & da gibt es freeware Man kann auch mehrere Soundkarten ansprechen - ggf. ist das ein einfacherer Weg, da ein PC ja eh verwendet wird. Der Bandpass ist ja fast passend in jeder Soundkarte "drin". Soll nur das Signal analysiert werden ?
Hallo, genau genommen sollen die Daten nicht am PC sondern an einem PocketPC angezeigt werden. Soundkarte ist demnach leider nicht vorhanden. Datenübertragung ist mit Bluetooth daher kann ich nicht alle Samples zum PocketPC schicken, die Daten müssen also vorverarbeitet werden. Die Beschleunigungssensoren haben den Bereich von 20Hz - 20kHz. Sofern ich dann den Bandpass weglassen kann, dann ist das ja gut. Die Abtastrate sollte 44.2kHz sein. Wenn ich jetzt z.B. alle 100ms berechnen möchte, dann brauche ich also rund 4200 Samples. Muss ich die dann durch eine FFT laufen lassen? Es sind tatsächliche Frequenzen die Auftreten (also von +Xg nach -Xg ..). Alle anderen Signale sind unwichtig. Es tritt ja auch ein hörbares Geräuch generiert. Mikrofon soll nicht verwendet werden, da die Umweltgeräuche "zu laut sind" (laut Anforderung). Was genau liefert mir die FFT als Ergebniss (hab das noch nicht richtig verstanden)? Der Graph soll nachher so aussehen, das im Abstand von 50-100Hz ein Balken je nach Lautstärke/Itensität erscheint (ich hoffe das ist verständlich erklärt).
Anbei ist ein Screenshot von einem Shareware Programm, 1kHz SIgnal über Notebook Lautsprecher, aufgenommen über Notebook-Mikrofon mit 1024 Samples FFT. So soll das dann aussehen..
Ich hatte mal 'ne Schulung bei der Fa. Schenck. Die sind da drauf spezialisiert. Zuerst sollte man wissen was man erwartet und sehen will, z.B. Vibrationen innerhalb eines Getriebes, eines Lüfterrades oder Ähnliches. Demzufolge weiß man die zu Erwartende Frequenz (Drehzahl, Zähnezahl usw.). Eine 'eierlegende Wollmilchsau' wird immer nur ungefähre Anhaltspunkte liefern, für eine genaue Analyse muss ein kleiner Frequenzbereich jeweils hoch aufgelöst werden und die FFT drübergelegt werden. Ich weiß nicht was du mit dem Projekt sehen willst, nur ein Spektrum über 20Hz..20kHz? Logarythmisch oder linear angezeigt/bewertet? Davon hängt u.A. auch die Aufzeichnung ab.
Mit der Abtastrate & den Anzahl der Samples sind die max. Freq. min. Freq. und n* (min. Freq.) spezifiziert. min. Freq: ein Sinus, der genau 1x deine Gesamtmessdauer entspricht: Da du 100 msec lang messen möchtest, ist damit F_0 angegeben. Alle weiteren Frequenzen, die richtig von der FFT ermittelt werden, sind: n* F_0 bis zur max. Freq. (Für Kritiker: ja, man kann anders interpretieren, aber es liegt ein gefiltertest Signal vor und damit geht das) Beispiel: Du nimmst 1 Sek. lang auf, 10 Samples, da paßt ein Sinus rein: => 1 Hz ist F_0 Eine Freq. von 1,5 Hz kannst Du damit nicht richtig "erkennen", aber eine mit 2 Hz = 2x F_0 Die 1,5 Hz erzeugen eine Menge an Frequenzanteilen in dem angezeigtem Spektrum Falls Vorhanden: -matlab -octave 0 Euro -scilab 0 Euro teste die FFT, scilab hat (wenn ich richtig liege) eine FFT "onboard" mit gewichtungen. Auch sinnvoll, um ggf. gemessene und analysierte spektren zu konntrollieren Math: die FFT stellt das Signal in der Energienorm dar (toll) => es gibt Überschwinger, wenn man zB ein Rechteck aus den berechneten Sinuskurve zusammenbaut: Gibb'sches Phänomen Auch das "windowing", Fensterfunktion erzeugen ähnliche Effekte: also zusätzliche Freq.-anteile, die nicht da sind. Da die FFT sehr aufwendig ist, und mehrere Freq. im Signal drin sind & mehrere Signale analysiert werden, ist dass ggf. nicht mit einem "kleinen" uC machbar. Equalizer.: Wenn du es nur anschauen willst, dann ist es kein Equ. "nur" ein "Spektrumanalyser" Daneben ist zu beachten, dass die Freq. quasi gemittelt werden je Zeitfenster, wenn die FFT so angewendet wird. Du kannst da aber zwischenergebnisse für hohe Freq. berechnen: kleiner FFT-zeitbereiche., die dann ausgeben, um eventuelle zeitl. kurze, aber große Pegel zu erkennen Sonst wird da "gemittelt". DSPs, FPGS wären ggf. Stichworte, wenn die Anforderung steigt. Tipp: 1. nimm deutl. mehr CPU-Power als geplant. Am ende einer Stud.-arb. festzustellen. dass da "2 MIPS fehlen" ist sehr ärgerlich. 2. float -Berechnungen: die FFT wird mit sin, cos, ... berechnen or Tabelle. INT-Berechnung approximiert => (min) "Rauschen" 3. schau in deiner Umgebnung, wer hat Erfahrung mit uCs/DSPs/FPGAs. eine Antwort kann 1 week arbeit sparen 4. fertige Codes: googlen 5. ggf. hilft das: http://bwir.de/schaltungen/miniverstaerker Weiter kann ich Dir nicht helfen (wenn das geholfen hat, ich hoff-s, :-) Gruß & Erfolg! C.
@Christian Also, das ist ja bei mir schon ein bißchen her, ich stelle aber mal als Diskussionsgrundlage in den Raum, das es falsch ist was du über die niedrigste Frequenz schreibst. Erklär doch mal bitte, warum die Periodendauer der niedrigsten Frequenz kleiner als die Messdauer sein muss? Um eine Sinusschwingung zu beschreiben genügen zwei Abtastwerte pro Periode. Aber warum sollte man eine komplette Periode messen müssen? Dann könnte man ja auch nie einen Gleichanteil mit einer FFT berechnen, schließlich müsste man dann nach deiner Begründung eine unendliche Anzahl von Samples haben?! Gruß
Weil die FFT für 2-pi periodische Signale anwendbar ist. Gleichanteil: ok, ist aber hier gefilter und hat auf die messdauer keinen einfluß, solange die anderen Freq. in das Schema passen ZB: 1 HZ pass in die messdauer 1,5 Hz nicht => 3 Halbperioden was machst du mit dem Gleichanteil der jetzt da ist ? Der ist plötzlich da , aber es liegt nur eine Freq./schwingung OHNE gleichanteil vor. (Da eh ein Bandpass vorliegt, gibt es keinen Gleichanteil.) Mit zwei Meßwerten kannst man nicht immer einen Sinus beschreiben: die beiden Werte sind, extremfall: 0= A sin(0*pi) 0= A sin(1*pi) Wie groß ist A, wenn die messung 2x 0 ergibt ? min. Freq. ist aber ein schlechter Ausdruck: eher Grundwelle ? Resumee: Wenn also die freq-anteile 2-pi periodisch sind, ist der Gleichanteil von der Messdauer/Sampleanzahl unabhängig, da die Sinuswelle alle "herausfallen und nur der Gleichanteil bleibt: die "langsamste Sinuswelle" (tiefste Freq.) muss genau reinpassen, alle anderen sind n* "schneller", dann stimmt bei addition aller werte auch der gleichanteil.
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.