असतत फूरियर ट्रांसफॉर्म (डीएफटी) में, एक परिमित सूची को एक फ़ंक्शन के समान दूरी वाले नमूनों को जटिल साइनसॉइड के परिमित संयोजन के गुणांक की सूची में परिवर्तित किया जाता है। उन्होंने अपनी फ़्रीक्वेंसी के अनुसार आदेश दिया, जिसमें समान नमूना मान हैं, नमूना फ़ंक्शन को उसके मूल डोमेन (अक्सर समय या एक पंक्ति के साथ स्थिति) से फ़्रीक्वेंसी डोमेन में बदलने के लिए।
एल्गोरिदम
Begin Take a variable M and initialize it to some integer Declare an array function[M] For i = 0 to M-1 do function[i] = (((a * (double) i) + (b * (double) i)) - c) Done Declare function sine[M] Declare function cosine[M] for i =0 to M-1 do cosine[i] = cos((2 * i * k * PI) / M) sine[i] = sin((2 * i * k * PI) / M) Done Declare DFT_Coeff dft_value[k] for j = 0 to k-1 do for i = 0 to M-1 do dft_value.real += function[i] * cosine[i] dft_value.img += function[i] * sine[i] Done Done Print the value End
उदाहरण कोड
#include<iostream> #include<math.h> using namespace std; #define PI 3.14159265 class DFT_Coeff { public: double real, img; DFT_Coeff() { real = 0.0; img = 0.0; } }; int main(int argc, char **argv) { int M= 10; cout << "Enter the coefficient of simple linear function:\n"; cout << "ax + by = c\n"; double a, b, c; cin >> a >> b >> c; double function[M]; for (int i = 0; i < M; i++) { function[i] = (((a * (double) i) + (b * (double) i)) - c); //System.out.print( " "+function[i] + " "); } cout << "Enter the max K value: "; int k; cin >> k; double cosine[M]; double sine[M]; for (int i = 0; i < M; i++) { cosine[i] = cos((2 * i * k * PI) / M); sine[i] = sin((2 * i * k * PI) / M); } DFT_Coeff dft_value[k]; cout << "The coefficients are: "; for (int j = 0; j < k; j++) { for (int i = 0; i < M; i++) { dft_value[j].real += function[i] * cosine[i]; dft_value[j].img += function[i] * sine[i]; } cout << "(" << dft_value[j].real << ") - " << "(" << dft_value[j].img <<" i)\n"; } }
आउटपुट
Enter the coefficient of simple linear function: ax + by = c 4 5 6 Enter the max K value: 10 The coefficients are: (345) - (-1.64772e-05 i) (345) - (-1.64772e-05 i) (345) - (-1.64772e-05 i) (345) - (-1.64772e-05 i) (345) - (-1.64772e-05 i) (345) - (-1.64772e-05 i) (345) - (-1.64772e-05 i) (345) - (-1.64772e-05 i) (345) - (-1.64772e-05 i) (345) - (-1.64772e-05 i)