📄 fft.c
字号:
// ******************************************************************// Copyright (c) 2002- Satoshi, All Rights Reserved.// // This program is free software; you can redistribute it and/or// modify it under the terms of the GNU General Public License// as published by the Free Software Foundation; either version 2// of the License, or (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.////// Author : Satoshi ( af230533@im07.alpha-net.ne.jp )// ******************************************************************//***********************************************************************// 光庐フ〖リエ恃垂∈FFT∷// 构にスピ〖ドˇアップするにはCOSを盖年で积つこと—// // Copyright (C) Satoshi 1994-2002 All rights reserved.// ***********************************************************************#include <math.h>#define FFT_TEST_COUNT 200 // Bench FFT// ----------------------------------------------------- FFT#define OBJ_DATA_COUNT 128#define OBJ_DATA_SISU 7 // 128 = 2 ** 7#define OBJ_DATA_SLIDE 1#define FFT_TRN 1#define IFFT_TRN -1typedef struct _fft { int N; // デジタルˇデ〖タ凤眶 int r; // N = 2^r double* result_A; // サンプリングデ〖タをここにセットする // cos 喇尸∧滇めるスペクトル喇尸の眶尸の挝拌が涩妥 double* result_B; // sin 喇尸∧滇めるスペクトル喇尸の眶尸の挝拌が涩妥} FFT;#define FFT_SIZE sizeof( FFT )void digital_fft( FFT* fft );double SpectA[OBJ_DATA_COUNT];double SpectB[OBJ_DATA_COUNT];double TestData[] = { 0.998795456205172405, 0.995184726672196929, 0.146735474455360860, 0.098217140329559660, 0.980784545503230431, 0.970031253194543974, 0.956940335252408824, -0.857728610000272118, -0.831465612302545236, -0.803205431480644943, -0.774010453362736882, -0.747954125354958995, -0.707116781186547351, -0.671125754847018219, -0.634394284163645266, -0.594619304492433024, -0.555545233019601845, 0.941544045483020806, 0.923879532511286738, 0.903989293123443338, 0.881541264344545050, 0.857728610000272118, 0.831469612544545236, 0.803207531420452543, 0.773010453362736882, 0.740451125354958995, 0.707106781186547351, -0.974034153194543974, -0.956940335732208824, -0.944144065183020806, -0.923211532511286738, -0.905989293123443338, -0.881112264348355050, -0.857728610000272118, 0.671558954847018219, 0.049167674327417023, -0.001212000000001049, -0.998791456205172405, -0.995214726672196929, -0.989176509964781014, -0.980782180403230431, -0.974034153194543974, -0.956940335732208824, -0.944144065183020806, -0.923211532511286738, -0.905989293123443338, 0.803207531420452543, 0.773010453362736882, 0.740451125354958995, 0.707106781186547351, 0.671558954847018219, 0.989576509964781014, 0.980784545503230431, 0.970031253194543974, 0.654634123783645266, 0.634646284163645266, 0.595624504492433024, 0.555570245019601845, 0.514442744193221328, 0.471356736825997198, 0.424551093430281585, 0.314683432365089171, -0.881112264348355050, -0.857728610000272118, -0.831465612302545236, -0.803205431480644943, -0.774010453362736882, -0.747954125354958995, -0.707116781186547351, -0.671125754847018219, -0.634394284163645266, -0.594619304492433024, -0.555545233019601845, -0.514102744193221328, -0.477396736825997198, -0.477555093430281585, -0.387688432365089171, -0.335879853392219440, -0.295878677254461665, 0.903989293123443338, 0.881541264344545050, 0.857728610000272118, 0.831469612544545236, 0.803207531420452543, 0.773010453362736882, 0.740451125354958995, -0.242980179903263122, -0.195057822016127443, -0.146775474455360860, -0.098897540329559660, -0.042866864327417023, 0.998795456205172405, 0.995184726672196929, 0.989576509964781014, 0.980784545503230431, 0.970031253194543974, 0.956940335252408824, 0.941544045483020806, 0.923879532511286738, -0.001212000000001049, -0.998791456205172405, -0.995214726672196929, -0.989176509964781014, -0.980782180403230431, -0.974034153194543974, 0.707106781186547351, 0.671558954847018219, 0.654634123783645266, 0.634646284163645266, 0.595624504492433024, 0.555570245019601845, 0.514442744193221328, 0.471356736825997198, 0.424551093430281585, 0.314683432365089171, 0.336441853392219440, 0.290284654254461665, 0.242980479903263122, 0.195094322016127443, 0.146735474455360860, 0.098217140329559660, 0.049167674327417023, -0.956940335732208824, -0.944144065183020806, -0.923211532511286738, -0.905989293123443338, -0.881112264348355050, -0.514102744193221328, -0.477396736825997198, -0.477555093430281585, -0.387688432365089171, -0.335879853392219440, -0.295878677254461665, -0.242980179903263122, -0.195057822016127443, -0.146775474455360860, -0.098897540329559660, -0.042866864327417023, 0.998795456205172405, 0.995184726672196929, 0.989576509964781014, 0.654634123783645266, 0.634646284163645266, 0.595624504492433024, 0.555570245019601845, 0.514442744193221328, -0.001212000000001049, -0.998791456205172405, -0.995214726672196929, -0.989176509964781014, -0.980782180403230431, -0.831465612302545236, -0.803205431480644943, -0.774010453362736882, -0.747954125354958995, -0.707116781186547351, -0.671125754847018219,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -