负数,傅里叶变换,反傅里叶变换(错)
Posted wangbin-heng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负数,傅里叶变换,反傅里叶变换(错)相关的知识,希望对你有一定的参考价值。
#include <QCoreApplication> #include "C:UsersAdministratorDesktopfftwfftw-3.3.4-dll32fftw3.h" #include "D:QtEigenDense" #include <stdio.h> #include <iostream> #include <complex> using namespace std; // using namespace fftw_complex; #define N 3 class MyComplex:public complex<double> { public: MyComplex():complex<double>(0.0, 0.0){m_r=0.0;m_i=0.0;} MyComplex(double r, double i):complex<double>(r,i){m_r=r;m_i=i;} double getR(){return m_r;} double getI(){return m_i;} private: double m_r; double m_i; }; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); //complex<float> www=(1,5); MyComplex www(2,4); std::cout<<www<<std::endl; std::cout<<www.getR()<<std::endl; std::cout<<www.getI()<<std::endl; int i; fftw_complex *in, *out, *result; in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N * N); out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N * N); result = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N * N); if (in == NULL || out == NULL) { printf("ERROR!"); } else { //for (i=0; i<N*N; i++) { in[0][0] = 0; in[0][1] = 0; in[1][0] = 1; in[1][1] = 0; in[2][0] = 2; in[2][1] = 0; in[3][0] = 2; in[3][1] = 0; in[4][0] = 3; in[4][1] = 0; in[5][0] = 4; in[5][1] = 0; in[6][0] = 3; in[6][1] = 0; in[7][0] = 2; in[7][1] = 0; in[8][0] = 1; in[8][1] = 0; } } for (i=0; i<N*N; i++) { printf("%.6f, %.6fi ", in[i][0], in[i][1]); if(i==2||i==5||i==8)printf(" "); } cout << endl; fftw_plan p = fftw_plan_dft_2d(N, N, in, out, FFTW_FORWARD, FFTW_ESTIMATE); fftw_execute(p); for (i=0; i<N*N; i++) { printf("%.6f, %.6fi ", out[i][0], out[i][1]); if(i==2||i==5||i==8)printf(" "); } // cout << endl; // fftw_plan pp = fftw_plan_dft_2d(N, N, out, result, FFTW_BACKWARD, FFTW_ESTIMATE); // fftw_execute(pp); // for (i=0; i<N*N; i++) // { // printf("%.6f, %.6fi ", result[i][0], result[i][1]); // if(i==2||i==5||i==8)printf(" "); // } fftw_destroy_plan(p); fftw_cleanup(); if (in!=NULL) fftw_free(in); if (out!=NULL) fftw_free(out); }
QT -= gui CONFIG += c++11 console CONFIG -= app_bundle LIBS += -L"C:UsersAdministratorDesktopfftwfftw-3.3.4-dll32" -llibfftw3-3 DEFINES += QT_DEPRECATED_WARNINGS SOURCES += main.cpp
以上是关于负数,傅里叶变换,反傅里叶变换(错)的主要内容,如果未能解决你的问题,请参考以下文章
数字信号处理序列傅里叶变换 ( 傅里叶变换实例 | 傅里叶变换 | 傅里叶变换幅频特性 | 傅里叶变换相频特性 )
数字信号处理傅里叶变换性质 ( 序列傅里叶变换共轭对称性质 | 序列实偶 傅里叶变换 实偶 | 序列实奇 傅里叶变换 虚奇 | 证明 “ 序列实奇 傅里叶变换 虚奇 “ )
数字信号处理序列傅里叶变换 ( 序列傅里叶变换与反变换 | 序列绝对可和 与 存在傅里叶变换之间的关系 | 序列傅里叶变换性质 )