FFTW:r2r 变换中的逻辑数组大小?

信息处理 dct
2022-02-05 22:06:23

FFTW_REDFT11在 FFTW 中进行多维离散余弦变换 ( ),但不确定如何计算比例因子。根据文档,进行正向和反向变换会导致原始图像乘以缩放因子:

[C] 计算一个变换后跟它的逆产生按 N 缩放的原始数组,其中 N 是逻辑 DFT 大小。对于 REDFT00,N=2(n-1);对于 RODFT00,N=2(n+1);否则,N=2n。

该文档还为一维变换定义了逻辑数组:

[I]如果指定数据abcde的大小为5的REDFT00(DCT-I),它对应大小为8的逻辑偶数数组abcdedcb的DFT。数据abcd的大小为4的REDFT10(DCT-II)对应于偶数数组 abcddcba 的 size-8 逻辑 DFT,移动了半个样本。

我不确定n多维变换中有什么。假设我有一个 10x10 矩阵。n 是像素总数 (200) 的两倍吗?或者如果它反映在所有维度(400)中,它是图像中的像素数?

1个回答

你在正确的轨道上。必须区分数组的物理大小,n(通常n0×n1×n2××nd1除了就地 R2C 变换)和逻辑大小 N。对于 10x10 矩阵,物理大小为 n=10*10=100,因此此特定变换的逻辑大小为 N=2n=200,缩放比例非归一化变换然后逆结果的因子。

他们在 Real even/odd FFTW3 docs中对此进行了更多讨论,尽管他们没有提供比您提供的链接更多的信息。

测试一个你已经知道答案的问题总是一个好主意,