Hallo
Nun habe ich ein bisschen geübt und folgenden code:
(vor und wieder rücktransformation funktioniert)
1 | clear
|
2 | clc
|
3 |
|
4 | N = 8192;
|
5 | t = linspace(0,1,N);
|
6 |
|
7 | figure(1) %test funktion zu überprüfung des ergebniss
|
8 | subplot(211)
|
9 | sys=tf([1],[1 0.1 4]);
|
10 | impulse(sys)
|
11 | grid
|
12 |
|
13 | w = logspace(-3,3,N); %transfer function
|
14 | G=1./(-w.^2 + 0.1*j*w + 4);
|
15 | betr=20*log10(abs(G));
|
16 |
|
17 | figure(2) %bode diagramm
|
18 | semilogx(w,betr)
|
19 | title('transferfucntion')
|
20 | grid
|
21 |
|
22 | figure(3) %inverse fft von bodediagramm
|
23 | subplot(211);
|
24 | inv_g = ifft(betr,N);
|
25 | plot(t,abs(inv_g)); %ausgabe zur kontrolle, das müsste nun die impulsantwort sein
|
26 | axis([0 0.01 0 20])
|
27 | title('ifft -> das müsste jetzt die impulsantwor sein')
|
28 | grid
|
29 |
|
30 | subplot(212);
|
31 | f_g = fft(inv_g,N); %rücktransformation
|
32 | plot(t*10e2,f_g); %ausgabe zur kontrolle
|
33 | title('fft -> hier wieder das bodediagramm')
|
34 | grid
|
Figure 1 ist zur Kontrolle und müsste dann auch das Resultat sein.
Figure 2 ist meine übertragungsfunktion.
Gebe ich nun diese Transferfunktion in meine IFFT() müsste ich als
Resultat ja die Impulsanwort von fig. 1 bekommen. Als Resulat bekomme
ich in etwa die Hüllkurve des zu erwartenden Resultat. Die Skallierung
ist auch Mist.
Hat das evtl. etwas mit der Auflösung der IFFT zu tun, oder Fensterung?