Derzeit arbeite ich an einem Projekt, das externe 24-Bit-ADCs MCP3919 und MCP3914 sowie eine 32-Bit-MCU der Tiva C-Serie umfasst. Ich versuche, harmonische Werte des Eingangssignals zu berechnen.
Ich verwende die CMSIS DSP-Bibliothek in Code Composer Studio. FFT-Funktionen funktionieren hervorragend. Ich habe kein Problem mit der Implementierung dieser Funktionen. Ich habe sie mit einem intern generierten Sin-Signal getestet und moduliert. Ergebnisse werden erwartet.
Ich habe ein Problem, dass sich meine FFT-Bins mit der Zeit in n * 50-Hz-Signalen ändern, wenn ich ein reales Signal vom Signalgenerator lese. Wenn ich das Eingangssignal auf 50,9 Hz erhöhe, gibt es kein Problem. Dasselbe gilt für 150 Hz, 250 Hz, 350 Hz. Es scheint, als ob es einen festen Frequenzfehler im Zusammenhang mit 50 Hz gibt.
Zum Beispiel: FFT-Funktionen funktionieren hervorragend mit 50,9-Hz-Signal statt 50 Hz (1*0,9 Hz) 152,7-Hz-Signal statt 150 Hz (3*0,9 Hz) 254,5-Hz-Signal statt 250 Hz (5*0,9 Hz)
Ich teile meine FFT-Bin-Diagramme
**Fig1 : 50.0 Hz and 250.0Hz**
**Fig2 : 50.9 Hz and 254.5Hz**
Als Ergebnis sind bei Frequenzänderung FFT-Bins wahr. Ich brauche eure Erfahrungen mit diesem Problem.
Vielen Dank im Voraus
Bagger
Verwenden Sie eine andere Fensterform .
Dies passiert, wenn das Eingangssignal nicht genau periodisch mit der Eingangssignallänge ist, zB weil der erzeugte Sinus und der ADC-Takt von unterschiedlichen Taktquellen stammen. Betrachtet man ein Signal, das wir in Bin 2 erwarten ( ) und das Ergebnis für Bin 1:
Wenn die Abtastperiode genau zwei Signalperioden enthält:
Wenn das Signal etwas niedriger in der Frequenz ist: , also wird in diesem Behälter ziemlich viel Energie angezeigt.
Wenn Sie eine Fensterfunktion verwenden, die das Gewicht von Beginn und Ende des Abtastzeitraums reduziert, können Sie diesen Effekt verringern.
Peter Schmidt
Bagger