Using GNU Octave FFT functions

Posted by CFP on Stack Overflow See other posts from Stack Overflow or by CFP
Published on 2010-05-08T09:21:20Z Indexed on 2010/05/08 9:28 UTC
Read the original article Hit count: 299

Filed under:
|
|
|

Hello world!

I'm playing with octave's fft functions, and I can't really figure out how to scale their output: I use the following (very short) code to approximate a function:

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));

Basically, what it does is take a function, compute the image of an interval, fft-it, then keep a few harmonics, and ifft the result. Yet I get a plot that is vertically compressed (the vertical scale of the output is wrong). Any ideas?

Thanks!

© Stack Overflow or respective owner

Related posts about octave

Related posts about gnu