FFT < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 14:23 Mi 10.03.2010 | Autor: | marcinoo |
Aufgabe | Hallo,
ich hab folgendes Problem:
Mir liegt ein Sinussignal in diskreter Form von 20ms Länge vor. Dieses Signal hat eine minimale Frequenz von 50Hz, das heißt eine Periode passt genau in diese 20ms.
Aber das Signal ist auch mit höherfrequenten Anteilen überlagert.
Dieses Signal soll ich nun im Frequenzbereich untersuchen und alle Frequenzen die darin vorkommen angeben.
Um dies zu tun habe ich erst einmal ein Signal erstellt bei dem mir alle Frequenzen bekannt sind (siehe s im Matlabcode).
% close all
clc
f1 = 50;
f2 = 55;
f3 = 3000;
fs = 1000000;
t=0:1/fs:0.02; %andere Variante: t=0:1/fs:1;
x =length(t)
s = sin(2*pi*f1*t) + sin(2*pi*f2*t) + sin(2*pi*f3*t);
ls=length(s);
fmax = 1/(t(2)-t(1));
l = length(s);
df = (1/l)*fmax
fvec = 0:df:fmax-df;
figure
subplot(2,1,1);plot(t, s);subplot(2,1,2);plot(fvec, abs(fft(s))/l*2)
|
Also ich erstelle mir das Signal in diskreter Form, so wie ich es auch zum untersuchen bekommen würde.
wenn ich nun auf das Signal die FFT anwende bekomme ich folgendes Spektrum:
[Externes Bild http://www10.speedyshare.com/files/21353084/download/pic1.jpg]
Wie man sieht ist der Anteil mit 55Hz nicht im Spektrum enthalten obwohl er ja in Wirklichkeit da ist
Wenn ich aber im Matlabcode folgende Zeile ändere: aus t=0:1/fs:0.02; mache ich t=0:1/fs:1;
Also ist mein Signal jetzt nicht 20ms sondern 1s lang. Dann erhalte ich folgendes Spektrum:
[Externes Bild http://www10.speedyshare.com/files/21353222/download/pic2.jpg]
Hier ist der Anteil von 55 Hz gut sichtbar.
Wie kann ich also mein Problem lösen? Ich habe das Signal, dass ich untersuche nur als kurzes, diskretes Signal von 20ms vorliegen und soll es mit einer Frequenzauflösung von 1Hz untersuchen. Zerbreche mir schon lange den Kopf, aber es klappt nicht
Für jede Hilfe wäre ich sehr dankbar
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 10:44 So 14.03.2010 | Autor: | Infinit |
Hallo marcinoo,
zunächst einmal willkommen hier bei der Vorhilfe.
Deine Rechnung ist schon okay, aber Du hast das Prinzip der Wechselwirkung zwischen Zeit- und Frequenzgrößen bei der FFT noch nicht verstanden. Der Kehrwert der Dauer des Zeitsignals gibt Dir im Frequenzbereich die Frequenzauflösung an. Bei einem Signal, das Du über 20 ms abtastest, beträgt die Frequenzauflösung 50 Hz. Da 3000 Hz ein Vielfaches davon ist, siehst Du in Deinem Plot den 50-Hz-Peak und den 3000-Hz-Peak.
Anders ist die Sache, wenn Du das Signal über einen Zeitraum von 1 Sekunde abtastest. Dann beträgt die Frequenzauflösung 1 Hz und das ist der Grund, weswegen Du nun auch den 55-Hz-Peak siehst.
Mache doch mal folgendes zur Kontrolle: Taste das Signal über 200 ms ab, dann beträgt die Frequenzauflösung 5 Hz und der 55-Hz-Peak sollte sichtbar sein.
Viele Grüße,
Infinit
|
|
|
|