ΣSigmaStudio Ask AI Русский Log in

how to understand one of the TS201 examples ----about the sampling!

Processors & DSP shedmaze Jan 29, 2012 00:00 2 replies Original on forum ↗
Subscribe
shedmaze Question
Jan 29, 2012 00:00

hello, aces:

i am a TS201 beginner, and i am learning the examples that are included in the Visual DSP++ software, and one of them make me confused, it is placed here "D:\visual_dsp++\TS\Examples\ADSP-TS201 EZ-KIT Lite\Power_On_Self_Test\CoreA", i am learning it now, and the problems that confused me are:

(1). there are many main() functions in this project, i think that are not right, you can check it, in every .c file, there is a main() function.

(2). in the audio_test.c file, i can't understand the macro's meaning at the beginning of the file:

#define MAX_SAMPLES 256
#define REQUIRED_SAMPLES ((MAX_SAMPLES) * 250)
#define DESIRED_FREQ ((float)3000.0)
#define SAMPLE_RATE ((float)48000.0)
#define AMPLITUDE ((float)8388607)
#define PI ((float)3.141592765309)

#define ACCEPTABLE_DEVIATION_PCT ((float)0.015)
#define ACCEPTABLE_DEVIATION (DESIRED_FREQ * ACCEPTABLE_DEVIATION_PCT)
#define MAX_DESIRED_FREQ (DESIRED_FREQ + ACCEPTABLE_DEVIATION)
#define MIN_DESIRED_FREQ (DESIRED_FREQ - ACCEPTABLE_DEVIATION)
#define MIN_SIGNAL_STRENGTH (float)30.0

how do you understand the "REQUIRED_SAMPLES" and the "DESIRED_FREQ" and the "SAMPLE_RATE" ? i think the "DESIRED_FREQ" and the "SAMPLE_RATE" are the same defination, but it sames that i am wrong.

(3). in the audio_test.c file, i don't know what does the author want to do? especially this part in the "int Test_Channel(float* pfRealIn) " function, i don't understand :

twidfft(w, MAX_SAMPLES);

// Real input array fills from a converter or other source
rfft( pfRealIn, t, out, w, 1, MAX_SAMPLES);

// Arrays are filled with FFT data
// scan the output array for the highest real value
fTempFreq = (float)sqrt(out[0].re*out[0].re+out[0].im*out[0].im);
for (nSampleNumber=1; nSampleNumber < (MAX_SAMPLES / 2); nSampleNumber++)
{
if( ((float)sqrt(out[nSampleNumber].re*out[nSampleNumber].re+out[nSampleNumber].im*out[nSampleNumber].im)) > fTempFreq )
{
fTempFreq = (float)sqrt(out[nSampleNumber].re*out[nSampleNumber].re+out[nSampleNumber].im*out[nSampleNumber].im);
nHighestFreqIndex = nSampleNumber;
}
}

// multiply the index of the array of the highest value with the sample rate value
fSampledFrequency = nHighestFreqIndex * (SAMPLE_RATE / MAX_SAMPLES);

so, i don't understand this project, can anybody help me?? thank you~

fft

understanding

ADIApproved Reply
Jan 30, 2012 00:00

Hi,

this appears to be a duplicate of your other thread, here: how to understand one of the TS201 examples ----about the sampling!

To avoid duplication of effort, this thread will be locked.

Regards,

Craig.

EZAdministrator Reply
Aug 2, 2018 00:00

This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

Thank you,
EZ Admin