La transformada discreta de Fourier (DFT) generalmente varía de 0 a 360. Básicamente, hay DFT de N muestras, donde N es el número de muestras. Va de n=0 a N-1. Podemos obtener el coeficiente obteniendo el término coseno que es la parte real y el término seno que es la parte imaginaria.
La fórmula de DFT:
Ejemplo :
Input: Enter the values of simple linear equation ax+by=c 3 4 5 Enter the k DFT value 2 Output: (-35.00000000000003) - (-48.17336721649107i) Input: Enter the values of simple linear equation ax+by=c 2 4 5 Enter the k DFT value 4 Output: (-30.00000000000001) - (-9.747590886987172i)
Acercarse:
- Primero, declaremos que el valor de N es 10
- Sabemos que la fórmula de la secuencia DFT es X(k)= e^jw varía de 0 a N-1
- Ahora primero tomamos las entradas de a, b, c, y luego tratamos de calcular en forma lineal «ax+by=c»
- Intentamos tomar la función en una array llamada ‘newvar’.
newvar[i] = (((a*(double)i) + (b*(double)i)) -c);
- Ahora tomemos la variable de entrada k, y también declaremos arrays de seno y coseno para que podamos calcular las partes real e imaginaria por separado.
cos[i]=Math.cos((2*i*k*Math.PI)/N);
sin[i]=Math.sin((2*i*k*Math.PI)/N);
- Ahora tomemos variables reales e imaginarias
- Cálculo de variables imaginarias y variables reales como
real+=newvar[i]*cos[i];
img+=newvar[i]*sin[i];
- Ahora imprimiremos esta salida en forma a+ ib
Implementación:
Java
// Java program to Compute a Discrete-Fourier // Transform Coefficients Directly import java.io.*; import java.util.Scanner; class GFG { public static void main(String[] args) { // Size of the N value int N = 10; // Enter the values of simple linear equation System.out.println( "Enter the values of simple linear equation"); System.out.println("ax+by=c"); // We declare them in data_type double.. double a = 3.0; double b = 4.0; double c = 5.0; // Here newvar function array is declared in size // N.. double[] newvar = new double[N]; // Now let us loop it over N and take the function // Now the newvar array will calculate the function // ax+by=c for N times for (int i = 0; i < N; i++) { // This is the way we write that, // We are taking array A as of 'a'x // array B as of 'b'y newvar[i] = (((a * (double)i) + (b * (double)i)) - c); } System.out.println("Enter the k DFT value"); // Here we declare the variable k int k = 2; // Here we take 2 terms cos and sin arrays // which will be useful to calculate the real and // imaginary part The size of both arrays will be 10 double[] cos = new double[N]; double[] sin = new double[N]; // Iterating it to N // Now let us calculate the formula of cos and sin for (int i = 0; i < N; i++) { // Here cos term is real part which is // multiplied into 2ikpie/N cos[i] = Math.cos((2 * i * k * Math.PI) / N); // Here sin term is imaginary part which is also // multiplied into 2ikpie/N sin[i] = Math.sin((2 * i * k * Math.PI) / N); } // Now to know the value of real and imaginary terms // First we declare their respective variables double real = 0, img = 0; // Now let us iterate it till N for (int i = 0; i < N; i++) { // real part can be calculated by adding it // with newvar and multiplying it with cosine // array real += newvar[i] * cos[i]; // Imaginary part is calculated by adding it // with newvar and multiplying it with sine // array img += newvar[i] * sin[i]; } // Now real and imaginary part can be written in // this equation form System.out.println("(" + real + ") - " + "(" + img + "i)"); } }
Producción
Enter the values of simple linear equation ax+by=c Enter the k DFT value (-35.00000000000003) - (-48.17336721649107i)
Publicación traducida automáticamente
Artículo escrito por saransh9342 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA