> I'm not seeing this slowness problem though. May be I need to run it
1000 times.
jliu
johnliu.net
Yah. 16384 times (2^14).
public static double[] SineWave(double frequency, double phase, double
magnitude, int N_samples, double SampleRate)
{
const double PI = Math.PI;
double[] Xreal = new double[N_samples]; // N_samples = 16384; Gets really
slow
double Freq = frequency;
double Phase = phase;
double Mag = magnitude;
double Sample_Rate = SampleRate;
double Operand = 2 * PI * Freq * 1 / Sample_Rate + Phase;
for (int i = 0; i < N_samples; i++)
{
// This equation returns an array of doubles that simulate
// an A/D sampling a sine wave at a given sample rate
Xreal[i] = Mag * Math.Sin(Operand * i);
}
return Xreal;
}
That's why I was wondering how Math.Sin calculates its number.
There's got to be an easier way!
Owkmann