Обратная спектрограмма A La Aphex Twin в MATLAB

m пытается преобразовать изображение в аудиосигнал в MATLAB, рассматривая его как спектрограммукак в Aphex Twin 'песня наWindowlicker, К сожалению, Я'У меня проблемы с получением результата.

Вот это то, что у меня есть на данный момент:

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

Так что я'Я принимаю обратные преобразования Фурье на столбцы моего изображения, а затем соединяю их вместе, чтобы сформировать сигнал. Кроме того, эта функция использует набор инструментов обработки изображений для MATLAB для чтения изображений. Цель состоит в том, чтобы иметь некоторое изменение

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

в результате чего-то, что выглядит как исходное изображение. Я был бы очень признателен за любую помощь! Я'м просто обучение обработки сигналов, так что не»не удивлюсь, еслиочевидное заблуждение. Спасибо!

редактироватьСпасибо, Дейв! Я получил это работает! Я закончил с этим:

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

 

Ответы на вопрос(2)

Ваш ответ на вопрос