Fourier transform of the Mandelbrot set

I wonder what the Fourier transform of the Mandelbrot set looks like? More specifically, the 2D Fourier transform of the function f(x,y) = {0 if x+iy is in M, 1 otherwise}. This has infinitely fine features, so the Fourier transform will extend out infinitely far from the origin. It's aperiodic, so the Fourier transform will be non-discrete.

The result will be a complex-valued function of complex numbers (since each point in the frequency domain has a phase and amplitude). That raises the question of its analytical properties - is it analytic everywhere, in some places or nowhere? (Probably nowhere).

Other interesting Mandelbrot-set related functions that could also be Fourier transformed:
M_n(x,y) = the nth iterate of the Mandelbrot equation (\displaystyle f = |e^{-\lim_{n \to \infty}\frac{1}{n}M_n}|).
D(x,y) = distance between x+iy and the closest point in the Mandelbrot set. Phase could also encode direction.
P(x,y) = the potential field around an electrically charged Mandelbrot set.

4 Responses to “Fourier transform of the Mandelbrot set”

  1. Andrew says:

    I, too, have wondered what happens when a Fourier transform is taken of the Mandelbrot set. Rather than 2-dimensional image I have used a 1-dimensional line and generated audio. You can find the result at http://soundcloud.com/anythingkeyboard/inverse-fourier-transform-of

    Hopefully you get this

  2. Andrew says:

    Interesting! How did you generate this? The part of the Mandelbrot set that intersects the real axis is just the interval [-2,0.25] i.e. just a rectangle function so it's Fourier transform is just a sinc function. So you must be doing something more complicated than that...

  3. Andrew says:

    This is in the region [-1.5:0.5]. X axis resolution is 1/1000 and Y axis resolution is 1/100000. The number of iterations performed was 500.

    I generated a line that meets the boundary between infinity and not-infinity. this line gave me the upper half of the Mandelbrot. Using the Inverse Fast Fourier Transform, ifft(), Hanning window, resulted in what you can hear. It is interesting to note the almost voice like quality coming through, although I am sure this is more from artefacts in aliasing.

    This was generated using MATLAB code attached below. The only step missing from this is the ifft().

    clear

    res = 100000; %Smallest time resolution Larger = greater resolution

    startt = -1.5; %Time start

    endt = 0.5; %Time end

    quant = 0.001;% Smallest y axis quantisation smaller = greater resolution

    xindex = 1;% Index for x array

    z = 0; % Make sure z is defined before loop

    xsize = round((endt-startt)*res); %preset the size of x for speed

    x = zeros(xsize,1)'; %Fill with zero

    pl = 1; %Variable used for plotting graph at defined times

    for t = res*startt:res*endt %for every "sample"

    m = 0; %imaginary coefficient= 0

    z = 0; %Reset complex number z

    while isfinite(z) %Loop until z is infinite

    z = 0; %Make sure complex number z is 0+0i

    c = t/res + m*1i; %Co-ordinates. Real are x axis imag are y axis

    n = 1; %This will be counter

    while n < 500 %Loop n times

    z = z^2+c; %New complex number based on co-ordinates and old number

    n = n+1; %Increment counter

    if isinf(z) %Break this loop if it reaches infinity

    break

    end

    end

    m = m+quant; %Increase the imaginary co-efficient by quant

    end

    x(xindex) = m; %Preparing location to store

    xindex = xindex+1; %Store value of m, the complex part

    pl = pl+1; %Counter for plotting graph

    if pl == 100 %Every 20 cycles

    plot(x(1:xindex-1))

    pause(0.01) %Let graph plot before moving on

    pl = 1; %Reset the variable

    end

    end %Lather, rinse, repeat

  4. Andrew says:

    My bad, the range is actually [-1.5 0.248] when I had cropped it

Leave a Reply