我试图了解如何利用 fft 来处理我用软件定义的无线电捕获的数据。我发现了 C++ 的 fftw3 库,并尝试查找一些文档或教程,发现没有太多可以参考的内容。
\n不过我确实找到了这个教程。执行 fft/ifft/等的代码。对我来说编译和工作得很好,但是当我尝试实现 fftShift 函数时,我收到以下编译器错误:
\nIn file included from /usr/include/c++/9/algorithm:62,\n from CppFFTW.cpp:13:\n/usr/include/c++/9/bits/stl_algo.h: In instantiation of \xe2\x80\x98_RandomAccessIterator std::_V2::__rotate(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, std::random_access_iterator_tag) [with _RandomAccessIterator = double (*)[2]]\xe2\x80\x99:\n/usr/include/c++/9/bits/stl_algo.h:1449:27: required from \xe2\x80\x98_FIter std::_V2::rotate(_FIter, _FIter, _FIter) [with _FIter = double (*)[2]]\xe2\x80\x99\nCppFFTW.cpp:76:54: required from here\n/usr/include/c++/9/bits/stl_algo.h:1371:16: error: array must be initialized with a brace-enclosed initializer\n 1371 | _ValueType __t = _GLIBCXX_MOVE(*__p);\n | ^~~\n/usr/include/c++/9/bits/stl_algo.h:1373:22: error: invalid array assignment\n 1373 | *(__p + __n - 1) = _GLIBCXX_MOVE(__t);\n | …Run Code Online (Sandbox Code Playgroud)