#define math.h
int N , freq , n , k;
int analogPin = A0;
float Re , Im , Xk[100] , Xn[100];
float time_now , period;
void setup() {
Serial.begin(9600);
Serial.println("enter number of samples - N ");
Serial.println("enter freq ");
}
void loop() {
if(Serial.available()>0)
{
N = Serial.parseInt();
freq =Serial.parseInt();
Serial.read();
}
time_now=millis();
period = 1000/freq;
if(n<=N)
{
while(millis()<time_now + period);
for(n = 0 ; n < N ; n++)
{
Xn[n]=analogRead(analogPin);
Xn[n]=Xn[n]* 5.0 / 1024.0;
//Serial.println(Xn[n])
}
}
for( k=0 ; k < N ; k++)
{
Re=0;
Im=0;
for(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(pow(Re,2)+pow(Im,2));
Serial.println(Xk[k]);
}
// N=0;
}