This is the java implementation of Naive DFT approach over function. Formula for calculating the coefficient is X(k) = Sum(x(n)*cos(2*PI*k*n/N) – iSum(x(n)*sin(2*PI*k*n/N)) over 0 to N-1. This approach tries to many transforms using different values of k from 0 to N-1.
Here is the source code of the Java Program to Compute Discrete Fourier Transform Using Naive Approach. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a java program to perform the DFT using naive approach import java.util.Scanner; public class DFT_Naive_Approach { double real, img; public DFT_Naive_Approach() { this.real = 0.0; this.img = 0.0; } public static void main(String args[]) { int N = 10; Scanner sc = new Scanner(System.in); System.out.println("Disd=crete Fourier Transform using naive method"); System.out.println("Enter the coefficient of simple linear funtion:"); System.out.println("ax + by = c"); double a = sc.nextDouble(); double b = sc.nextDouble(); double c = sc.nextDouble(); double []function = new double[N]; for(int i=0; i<N; i++) { function[i] = (((a*(double)i) + (b*(double)i)) - c); } System.out.println("Enter the max K value: "); int k = sc.nextInt(); DFT_Naive_Approach []dft_val = new DFT_Naive_Approach[k]; System.out.println("The coefficients are: "); for(int j=0; j<k; j++) { dft_val[j] = new DFT_Naive_Approach(); for(int i=0; i<N; i++) { dft_val[j].real += function[i] * Math.cos((2 * i * j * Math.PI) / N);; dft_val[j].img += function[i] * Math.sin((2 * i * j * Math.PI) / N);; } System.out.println("("+dft_val[j].real + ") - " + "("+dft_val[j].img + " i)"); } sc.close(); } }
Output:
$ javac DFT_Naive_Approach.java $ java DFT_Naive_Approach Discrete Fourier Transform using naive method Enter the coefficient of simple linear funtion: ax + by = c 1 2 3 Enter the max K value: 20 The coefficients are: (105.0) - (0.0 i) (-15.00000000000001) - (-46.1652530576288 i) (-15.00000000000001) - (-20.6457288070676 i) (-15.000000000000005) - (-10.898137920080407 i) (-15.000000000000004) - (-4.873795443493586 i) (-15.0) - (1.4695761589768243E-14 i) (-14.999999999999996) - (4.873795443493611 i) (-15.000000000000103) - (10.898137920080355 i) (-14.999999999999968) - (20.64572880706762 i) (-14.999999999999922) - (46.16525305762871 i) (105.0) - (-1.7634913907721884E-13 i) (-15.00000000000012) - (-46.16525305762882 i) (-15.000000000000053) - (-20.645728807067577 i) (-14.999999999999911) - (-10.898137920080416 i) (-15.000000000000037) - (-4.87379544349373 i) (-15.0) - (1.0803613098771371E-13 i) (-14.999999999999984) - (4.873795443493645 i) (-14.99999999999996) - (10.89813792008029 i) (-14.999999999999677) - (20.645728807067492 i) (-14.999999999999769) - (46.16525305762875 i)
Related posts:
Java Program to Find Minimum Number of Edges to Cut to make the Graph Disconnected
Validations for Enum Types
How to Iterate Over a Stream With Indices
Logout in an OAuth Secured Application
The Dining Philosophers Problem in Java
So sánh HashMap và Hashtable trong Java
Java InputStream to String
Java Program to Implement Regular Falsi Algorithm
JUnit5 @RunWith
Java Program to Perform Left Rotation on a Binary Search Tree
Java Program to Implement Binomial Heap
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Kết hợp Java Reflection và Java Annotations
Deploy a Spring Boot WAR into a Tomcat Server
Java Program to Implement Merge Sort Algorithm on Linked List
Java Program to Implement Variable length array
Java Program to Solve any Linear Equations
Java Program to Check whether Graph is a Bipartite using BFS
Đồng bộ hóa các luồng trong Java
Java Program to Implement TreeMap API
Retrieve User Information in Spring Security
Java Program to Permute All Letters of an Input String
Number Formatting in Java
Sử dụng CountDownLatch trong Java
Java Program to find the maximum subarray sum O(n^2) time(naive method)
Using a List of Values in a JdbcTemplate IN Clause
Primitive Type Streams in Java 8
Derived Query Methods in Spring Data JPA Repositories
Java Program to implement Priority Queue
Jackson Annotation Examples
Life Cycle of a Thread in Java
Inject Parameters into JUnit Jupiter Unit Tests