Hi,
habe mich jetzt schon eine Zeit lang mit DSP und der FFT beschäftigt,
aber ich habe da noch Probleme:
Ich habe mir in Matlab ein Cosinus-Signal gebastelt mit einer Länge von
N = 128 und einer Frequenz von 32Hz.
So wie ich die FFT verstehe, gibt mir die FFT ein Frequenzspektrum
zurück, mit Peaks an den Frequenzen die dem Eingangssignal entsprechen.
( Das Eingangssignal kann ja aus mehreren überlagerten Signalen bestehen
)
Habe versucht den Frequenzgang auf 0 - 32Hz zu normieren.
Also sollte mir die FFT von einem Signal mit 32Hz, einen Peak bei 32Hz
anzeigen.
Nur das tut sie bei mir nicht ganz.
Entweder liegt es an meinem Verständnis für Matlab, für die FFT oder
wahrscheinlich an beidem ;)
Ich habe auch ein Problem die Zahl Pi in mein Signal zu bringen:
Wenn ich zb. so schreibe: x = cos(n*pi*f) , dann sind in x nur 1er und
kein cosinus.
1 | N = 128; % Length of signal
|
2 | f = 32; % Frequenz
|
3 | n = 0:N-1;
|
4 |
|
5 | x = cos(n*f);
|
6 |
|
7 |
|
8 | % FFT
|
9 | fx = fft(x);
|
10 |
|
11 |
|
12 | figure;
|
13 | subplot(3,1,1)
|
14 | plot(n,x)
|
15 | title('x(t)')
|
16 |
|
17 | subplot(3,1,2)
|
18 | plot(abs(fft(x)))
|
19 | title('Spectrum of x(t)')
|
20 |
|
21 | subplot(3,1,3)
|
22 | plot(linspace(0, f, N),abs(fx)) % Normiert auf Werte zwischen 0 und 32 Hz
|
23 | title('Spectrum of x(t)')
|
24 | xlabel('0 - 32 Hz');
|
Hoffe mir kann wer helfen..
Lg
Max