Je joue avec les fonctions fft d'Octave, et je n'arrive pas vraiment à trouver comment mettre à l'échelle leur sortie : J'utilise le code suivant (très court) pour approximer une fonction :
function y = f(x)
y = x .^ 2;
endfunction;
X=[-4096:4095]/64;
Y = f(X);
# plot(X, Y);
F = fft(Y);
S = [0:2047]/2048;
function points = approximate(input, count)
size = size(input)(2);
fourier = [fft(input)(1:count) zeros(1, size-count)];
points = ifft(fourier);
endfunction;
Y = f(X); plot(X, Y, X, approximate(Y, 10));
En gros, ce qu'il fait, c'est prendre une fonction, calculer l'image d'un intervalle, faire un fft, puis garder quelques harmoniques, et faire un ifft du résultat. Pourtant, j'obtiens un tracé qui est compressé verticalement (l'échelle verticale de la sortie est fausse). Avez-vous une idée ?