Matlab: Spektrum aus Zeitsignal mit FFT

Gast #2695816
Lesenswert?

Hallo,

ich schreibe ein Skript, mit dem man das Spektrum eines beliebigen 
Zeitsignals geplottet bekommt. Ich nutze dafür die FFT von Matlab. Ich 
habe aber das Problem, dass mein Skript ungenau ist. Wenn ich 
beispielsweise ein Cosinussignal mit 50Hz angeben, wird mir im Spektrum 
nicht genau bei 50Hz ein peak angezeigt. Was kann ich tun oder mache ich 
falsch?

Hier der Code:
1
%FFT Beispiel anders programmiert
2
clc;
3
clear all;
4

5
%zeitvektor definieren
6
Startzeit = 0;
7
Abtastfrequenz = 600000; %Abtastdauer
8
Schrittweite = 1/Abtastfrequenz;
9
Endzeit = 40*10^(-3);
10
t = Startzeit:Schrittweite:Endzeit;
11

12
%Anzahl der Abtastpunkte
13
Abtastpunkte = length(t);
14

15
%Definition des Zeitsignals
16
Frequenz = 50;
17
y = cos(2*pi*Frequenz*t)+cos(2*pi*2*Frequenz*t)+cos(2*pi*3*Frequenz*t);
18

19
%plot des Zeitsignals
20
subplot(2,1,1)
21
plot(t,y);
22
title('Signal')
23
xlabel('Zeit (Millisekunden)')
24
grid on;
25

26
%FFT
27
AnzahlMesswerte = length(t)
28
AnzahlStuetzpunkteFFT = 2^nextpow2(AnzahlMesswerte*10)
29
Y = fft(y,AnzahlStuetzpunkteFFT)/AnzahlMesswerte;
30

31
%Definition der Frequenzachse
32
f = Abtastfrequenz*linspace(0,1,AnzahlStuetzpunkteFFT);
33

34
%plot des Spektrums
35
subplot(2,1,2)
36
plot(f,abs(Y(1:AnzahlStuetzpunkteFFT)));
37
xlim([0 400]);
38
grid on;
Gast #2696022
Lesenswert?

Ein kleine Ahnung zur Fouriertransformation und FFT im Speziellen sollte 
man bringen. Einfach eine Library aufrufen ist etwas an der unteren 
Grenze.

Als kleine Uebung :
-Was ist der Unterschied von einem Linienspektrum
   zu einem kontinuierlichen Spektrum ?
-Wodurch ist die Bandbreite und die Aufloesung bestimmt ?
-Was sind die Eigenfunktionen der Fouriertransformation ?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren