Espectrograma Reverso A La Aphex Twin em MATLAB

Eu estou tentando converter uma imagem em um sinal de áudio no MATLAB, tratando-o como um espectrogramacomo na música de Aphex Twin emLambedor de janela. Infelizmente, estou tendo problemas para conseguir um resultado.

Aqui está o que eu tenho no 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

Então, eu estou tomando Transformadas Inversas de Fourier em colunas da minha imagem e depois as coloco juntas para formar um sinal. Além disso, essa função usa a Caixa de ferramentas de processamento de imagens para o MATLAB para ler em imagens. O objetivo é ter alguma variação de

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

resultar em algo parecido com a imagem original. Eu apreciaria muito qualquer ajuda! Estou apenas aprendendo o processamento de sinais, portanto não se surpreenda se houver um equívoco óbvio. Obrigado!

Editar: Obrigado Dave! Eu trabalhei! Eu terminei com isso:

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

questionAnswers(2)

yourAnswerToTheQuestion