Forum: Digitale Signalverarbeitung / DSP / Machine Learning Probleme mit FFT Programm in Matlab


von Major (Gast)


Angehängte Dateien:

Lesenswert?

1.)

Ich habe zwei FFT Programme für Matlab. In dem ersten FFT Programm 
"FFT.m"
gibt es eine Zeile die ich gar nicht verstehe:

>>amplitudengang = fftshift(amplH/N);

Warum wird hier die Matlabfunktion fftshift verwendet und zum anderen, 
warum wird in dem Argument "ampl/N" hier mit N dividiert?

2.)

In diesem Matlab Programm verstehe ich nicht, warum bei "F.*conj(F)/512" 
mit 512 dividiert wird?
1
t=00.0010.6;
2
x=sin(2pi50t)+sin(2pi130t);
3
y=x+2*randn(1,length(t));
4
plot(y(150))
5
6
F=fft(y,512);
7
F=F.*conj(F)/512;
8
f=1000*(0255)/512;
9
plot(f,F(1256))

von Major (Gast)


Lesenswert?

zu Punkt 1.)

Das mit der Division /N wird es deshalb so benutzt, das das Signal einer 
mittleren Leistung entspricht?

von joep (Gast)


Lesenswert?

Durch N wird geteilt, um das Ergebnis zu normieren.
Bei 2. ist die Division durch 512 nichts anderes als die Division mit N 
unter 1.
Schau mal in der Hilfe nach, was die Funktion fftshift macht, dann weißt 
du warum sie hier benutzt wird.

von Major (Gast)


Lesenswert?

Durch die fftshift Funktion wird das SPektrum gespiegelt.
Aber warum eigentlich wird dies überhaupt eingesetzt?

von joep (Gast)


Lesenswert?

Aus der Matlab online Hilfe:
>fftshift: Shift zero-frequency component to center of spectrum

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
Noch kein Account? Hier anmelden.