Hello, I have a Testand application that makes audio measurements like RMS level, peak freaquency detection, and THD measurements. The signal aqusition is done using an SP420 card. All the measurements together with the signal aquisition are implmented in a DLL function named SP420_Measure, developed in CVI.
long AUDIO_FUNC SP420_Measure (char szErrorMessage[], unsigned long Handle, long Channel, long Mode, long SearchFrequency, double Attenuation, double *Measurement, long Acquire)
{
double HarmonicAmplitudes, HarmonicFrequencies
...
switch(Mode)
{
case RMS:
RMS (SampleArray, samples, MeasVal);
*Measurement = MeasVal / Attenuation;
break;
case PEAK_FREQUENCY:
ACDCEstimator (SampleArray, samples, &ac_val, &dc_val);
LinEv1D (SampleArray, samples, 1.0, -1*dc_val,lfaSubArray);
iError = ScaledWindow (SampleArray, samples, 1, &window_constants);
iError = AutoPowerSpectrum (SampleArray, samples, 1.0/SampleFrequency, Auto_power_spectrumArray, &dDeltaF);
iError = PowerFrequencyEstimate (Auto_power_spectrumArray, samples/2, SearchFrequency, window_constants,
df, 7, &Freq_peak, &Pow_peak);
break;
case THD_NOISE:
ACDCEstimator (SampleArray, samples, &ac_val, &dc_val);
LinEv1D (SampleArray, samples, 1.0, -1*dc_val,lfaSubArray);
iError = ScaledWindow (SampleArray, samples, 1, &window_constants);
iError = AutoPowerSpectrum (SampleArray, samples, 1.0/SampleFrequency, Auto_power_spectrumArray, &dDeltaF);
iError = PowerFrequencyEstimate (Auto_power_spectrumArray, samples/2, SearchFrequency, window_constants,
df, 7, &Freq_peak, &Pow_peak);
Thd = ThdNoise = 100.0;
iError = HarmonicAnalyzer (lfaAuto_power_spectrum, samples/2, 0, AUDIO_NUMBEROFHARMONICS, 1, SampleFrequency , Freq_peak, HarmonicAmplitudes, HarmonicFrequencies, &Thd, &ThdNoise);
*Measurement= ThdNoise;
break;
default : break;
}
return(0);
When making the RMS level and peak frequency detection measurement steps, I have no problem, but when making the THD_NOISE measurements, I get most of the time after the function returns the following error:
An error occured that prevented the error status of a sequence from being reported.
System Level Exception
Error Code: - 17502