Espectrograma inverso A La Aphex Twin en MATLAB

Estoy tratando de convertir una imagen en una señal de audio en MATLAB tratándola como un espectrogramacomo en la canción de Aphex Twin enLamedor de ventanas. Desafortunadamente, estoy teniendo problemas para obtener un resultado.

Aquí está lo que tengo en este momento:

function signal = imagetosignal(path, format)

    % Read in the image and make it symmetric.
    image = imread(path, format);
    image = [image; flipud(image)];
    [row, column] = size(image);
    signal = [];

    % Take the ifft of each column of pixels and piece together the real-valued results.
    for i = 1 : column

        spectrogramWindow = image(:, i);
        R = abs(ifft(spectrogramWindow));
        % Take only the results for the positive frequencies.
        signalWindow = R(1 : row / 2.0);
        signal = [signal; signalWindow];

    end

end

Entonces, estoy tomando Transformadas de Fourier inversas en las columnas de mi imagen y luego las uní para formar una señal. Además, esta función utiliza la Caja de herramientas de procesamiento de imágenes para que MATLAB lea en imágenes. El objetivo es tener alguna variación de

spectrogram(imagetosignal('image', 'bmp'));

resulta en algo que se parece a la imagen original. ¡Apreciaría mucho cualquier ayuda! Estoy aprendiendo el procesamiento de señales, así que no se sorprenda si hay un error obvio. ¡Gracias!

Editar: Gracias Dave! ¡Lo tengo funcionando! Terminé con esto:

function signal = imagetosignal(path, format)

    % Read in the image and make it symmetric.
    image = imread(path, format);
    image = [image; flipud(image)];
    [row, column] = size(image);
    signal = [];

    % Take the ifft of each column of pixels and piece together the results.
    for i = 1 : column

        spectrogramWindow = image(:, i);
        signalWindow = real(ifft(spectrogramWindow));
        signal = [signal; signalWindow];

    end

end

Respuestas a la pregunta(2)

Su respuesta a la pregunta