【发布时间】:2014-04-02 16:32:17
【问题描述】:
我正在将 Matlab/Octave 代码移植到 C。我需要移植的实现之一是 DST 转换。 在 Matlab/Octave 中,这是使用
A =[0.00000 4.24264 5.65685 7.07107 8.48528 0.00000]
res = dst(A)
ans =
22.3599 -4.7499 -4.4287 2.9465 -6.8864 1.9383
在 C 中,我已经完成了 FFTW3 文档中所说的:
n = 6;
fftw_plan plan = fftw_plan_r2r_1d( n, in, out, FFTW_RODFT10, FFTW_ESTIMATE);
fftw_execute ( plan );
其中in 是输入数组。这样的结果是,out:
42.588457
-9.899495
0.000000
2.449490
-11.411543
5.656854
为什么这些结果如此不同?关于我在这里做错了什么的任何想法,如果有的话?
【问题讨论】: