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: 387
        
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