Обратное дискретное преобразование Фурье с действительными функциями

У меня есть вывод DFT (real_to_complex) (5x8), который я хочу обратно преобразовать, используя функции r2r (real to real) вместо iDFT, потому что все коэффициенты предпочтительно реальны:

[0.000000]  [0.000000]  [0.000000]  [0.000000]  [0.000000]
[0.000000]  [-0.000039] [-5.228421] [1.999998]  [0.000000]
[0.000000]  [10.456858] [-0.000000] [-0.329559] [0.000000]
[0.000000]  [-6.000002] [0.494339]  [-0.000000] [0.000000]
[0.000000]  [0.000000]  [0.000000]  [0.000000]  [0.000000]
[0.000000]  [12.000002] [-2.471695] [2.402020]  [0.000000]
[0.000000]  [-31.370562]    [4.000000]  [-1.647797] [0.000000]
[0.000000]  [81.597977] [-15.685284]    [4.000000]  [0.000000]

Проблема с симметрией, ось X в порядке; следуя шаблону нечетно-симметричного DST-I 0,a,b,c,0,-c,-b,-a (мы не видим -c,-b,-a, потому что это выход real_to_complex). Однако ось Y не соответствует шаблону DST или шаблону DCT-I a,b,c,d,e,d,c,b. Однако я не вижу, чтобы он был симметричным, потому что коэффициенты реальны и результат реален, мы должны быть в состоянии вычислить это только с реальными значениями.

Результат iDFT 8x8 следующий:

 [1.694307]     [1.331561]      [0.590346]      [-1.331561]  [-2.874999]     [-1.331561]     [0.590346]     [1.331561]
 [1.331561]     [1.625000]      [1.256080]      [-0.281785]  [-2.168437]     [-1.968213]     [-0.419204]     [0.624999]
 [0.590346]     [1.580797]      [2.125001]      [1.212098]   [-0.840346]     [-2.048974]     [-1.875001]     [-0.743921]
 [-1.331561]     [1.031788]     [2.951028]      [4.125000]   [2.168437]     [-1.875002]     [-3.787904]     [-3.281786]
 [-2.874999]     [-2.168437]     [-0.840346]     [2.168437]  [4.555690]     [2.168437]      [-0.840346]     [-2.168437]
 [-1.331561]     [-3.281786]     [-3.787904]     [-1.875002] [2.168437]     [4.125000]      [2.951028]      [1.031788]
 [0.590346]     [-0.743921]     [-1.875001]     [-2.048974]  [-0.840346]     [1.212098]     [2.125001]      [1.580797]
 [1.331561]     [0.624999]      [-0.419204]     [-1.968213]  [-2.168437]     [-0.281785]     [1.256080]     [1.625000]

person Heraldine    schedule 11.09.2020    source источник


Ответы (1)


Комплексное_в_вещественное ДПФ предполагает комплексно-сопряженную симметрию для матрицы 8*5.

Когда мы расширяем эту матрицу до 8-точечных ДПФ столбцов и строк, столбцы не удовлетворяют критериям нечетной симметрии [0,a,b,c,0,-c,-b,-a] и поэтому ищут вклад от косинусной основе, производя комплексное значение.

Однако когда мы исследуем столбцы в частотном пространстве, между комплексными значениями наблюдается несколько странная симметрия.

В Matlab мы определяем матрицу R1 следующим образом:

0   0   0   0   0   0   0   0
0   -0.000039   -5.228421   1.999998    0   -1.999998   5.228421    0.000039
0   10.456858   -0  -0.329559   0   0.329559    0   -10.456858
0   -6.000002   0.494339    -0  0   0   -0.494339   6.000002
0   0   0   0   0   0   0   0
0   12.000002   -2.471695   2.40202 0   -2.40202    2.471695    -12.000002
0   -31.370562  4   -1.647797   0   1.647797    -4  31.370562
0   81.597977   -15.685284  4   0   -4  15.685284   -81.597977

Затем colFFR2=ifft(R1) производит вывод;

0.000000 + 0.000000i    8.335529 + 0.000000i    -2.361383 + 0.000000i   0.8030828 + 0.000000i   0.000000 + 0.000000i    -0.8030828 + 0.000000i  2.361383 + 0.000000i    -8.335529 + 0.000000i
0.000000 + 0.000000i    6.681977 - 3.574877i    -1.673753 + 0.6864277i  0.3180193 - 0.2243077i  0.000000 + 0.000000i    -0.3180193 + 0.2243077i 1.673753 - 0.6864277i   -6.681977 + 3.574877i
0.000000 + 0.000000i    2.614213 - 7.949751i    -0.5000000 + 0.9363536i 0.2471695 + 0.05025225i 0.000000 + 0.000000i    -0.2471695 - 0.05025225i    0.5000000 - 0.9363536i  -2.614213 + 7.949751i
0.000000 + 0.000000i    -6.681977 - 14.03173i   1.673753 + 1.686428i    -0.3180193 - 0.5538672i 0.000000 + 0.000000i    0.3180193 + 0.5538672i  -1.673753 - 1.686428i   6.681977 + 14.03173i
0.000000 + 0.000000i    -13.56396 + 0.000000i   3.361383 + 0.000000i    -1.297422 + 0.000000i   0.000000 + 0.000000i    1.297422 + 0.000000i    -3.361383 + 0.000000i   13.56396 + 0.000000i
0.000000 + 0.000000i    -6.681977 + 14.03173i   1.673753 - 1.686428i    -0.3180193 + 0.5538672i 0.000000 + 0.000000i    0.3180193 - 0.5538672i  -1.673753 + 1.686428i   6.681977 - 14.03173i
0.000000 + 0.000000i    2.614213 + 7.949751i    -0.5000000 - 0.9363536i 0.2471695 - 0.05025225i 0.000000 + 0.000000i    -0.2471695 + 0.05025225i    0.5000000 + 0.9363536i  -2.614213 - 7.949751i
0.000000 + 0.000000i    6.681977 + 3.574877i    -1.673753 - 0.6864277i  0.3180193 + 0.2243077i  0.000000 + 0.000000i    -0.3180193 - 0.2243077i 1.673753 + 0.6864277i   -6.681977 - 3.574877i

Наконец, ifft(colFFR2.', 'симметричный') предоставляет соответствующий iDFT.

person Heraldine    schedule 14.09.2020