#signal-processing #fft #fftw #numerical-analysis
#обработка сигналов #БПФ #fftw #численный анализ
Вопрос:
У меня есть вывод DFT (real_to_complex) (5×8), который я хочу преобразовать обратно, используя функции r2r (от реального к реальному) вместо 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 8×8 следующий:
[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]
Ответ №1:
complex_to_real DFT предполагает комплексно сопряженную симметрию для матрицы 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.’, ‘symmetric’) обеспечивает соответствующий iDFT.