Двумерное преобразование фурье

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Norbert, 6 Oct 2010.

  1. Norbert

    Norbert New Member

    Joined:
    28 Sep 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    День добрый!

    Уточните, пожалуйста, запись двумерного дискретного преобразования Фурье в матричной форме.

    Изначально у меня есть дискретный сигнал заданный последовательностью отсчетов. Я превращаю его в квадратную матрицу и теперь мне необходимо выполнить двумерное преобразование Фурье.

    Вот как делаю я (пишу на Delphi если что :D ):

    [X] := [F]*[x]*[F],

    где F - матрица Фурье, элементы, которой вычисляются по формуле:

    F(m,n) := cos(2*pi * (m-1)*(n-1) / N) - j*sin(2*pi * (m-1)*(n-1) / N);

    В итоге что-то выходит похожее, но вызывает сомнения результат. В частности, вопрос, что брать в матрице Фурье за N ? В случае одномерного сигнала - это длинна выборки, а в случае, если сигнал двумерный - это длинна строки в матрице ?

    Спасибо!
     
  2. JohnnyBGoode

    JohnnyBGoode Member

    Joined:
    5 Oct 2010
    Messages:
    48
    Likes Received:
    11
    Reputations:
    5
    Раз у тебя двумерное ДПФ ,то еще вроде в формуле помимо N должна быть M
     
  3. Norbert

    Norbert New Member

    Joined:
    28 Sep 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Т.е делим на ширину строки*ширину столбца ? В случае квадратной матрицы - просто N^2 ?
     
  4. JohnnyBGoode

    JohnnyBGoode Member

    Joined:
    5 Oct 2010
    Messages:
    48
    Likes Received:
    11
    Reputations:
    5
    Я сам точно не знаю,а именно не знаю как это в матричном виде выглядит
    Но в обычном видет будет прозведение двух экспонент,в показателе одной в знаменателе будет N,в другой M