咨询MATLAB idct2与FFTW_REDFT01的输出比例关系
MATLAB idct2 与 FFTW_REDFT01 的输出比例关系确认
已知MATLAB的dct2与FFTW的FFTW_REDFT10输出存在如下比例关系:
- 整体缩放因子为
4*sqrt(n1/2)*sqrt(n2/2)(n1、n2为矩阵的行列数) - 首行首列元素需额外乘以
sqrt(2)(左上角元素相当于额外乘以2)
现在需要明确MATLAB的idct2与FFTW的FFTW_REDFT01之间的输出比例关系,以下是测试示例:
MATLAB环境测试代码与结果
X = [1 2 3; 4 5 6; 7 8 9] Z1 = idct2(X) % 输出结果: Z1 = [13.1813, -4.2621, 1.9295; -9.0617, 1.6193, -1.4571; 1.4512, -0.5999, 0.1994]
FFTW环境测试代码与结果
fftw_plan_r2r_2d(n1, n2, X, Z2, FFTW_REDFT01, FFTW_REDFT01, FFTW_MEASURE) // 输出结果: Z2 = [69.641, -29.8564, 5; -52.2487, 17, -3.75129; 5, -2.1435, 0.3589]
此前尝试的缩放公式:
resFFT /= (4 * sqrt(float(img.rows/2)) * sqrt(float(img.cols/2))); resFFT.row(0) /= sqrt(2.f); resFFT.col(0) /= sqrt(2.f);
经测试不正确,需明确二者准确的比例转换关系。
内容的提问来源于stack exchange,提问作者sdfa
相关产品推荐
相关产品推荐

