int N=0,freq=0;
float Re=0,Im=0,Xk[100],Xn[100];
long time1=0;
int analogPin = A1;
void setup()
{
Serial.begin(57600);
Serial.print("system starts now...");
Serial.print("\n");
}
void loop()
{
if (Serial.available() > 0)
{
Serial.print("insert your frequency: ");
Serial.print("\n");
delay(1000);
freq = Serial.parseInt();
Serial.print("insert your number of Samples: ");
Serial.print("\n");
delay(1000);
N= Serial.parseInt();
}
if (N!=0)
{
for (int n=0;n<N;n++)
{
Xn[n]=analogRead(analogPin);
delay(1000/(freq));
}
for (int i=0;i<100;i++)
{
Serial.print(Xn[i]*5/1024);
Serial.print("\n");
}
Serial.print("\n\n\n");
//FFT
for (int k=0;k<N;k++)
{
Re=0;
Im=0;
for (int n=0;n<N;n++)
{
Re=Re+Xn[n]*cos(2*M_PI*k*n/N);
Im=Im+Xn[n]*sin(2*M_PI*k*n/N);
}
Xk[k]=sqrt(Re*Re+Im*Im);
}
for (int k=0;k<N;k++)
{
Serial.print(Xk[k]);
Serial.print("\n");
}
N=0;
}
}