diff --git a/radio/tests/interpolation/farrow/test.cpp b/radio/tests/interpolation/farrow/test.cpp index f37d60c..27b5092 100644 --- a/radio/tests/interpolation/farrow/test.cpp +++ b/radio/tests/interpolation/farrow/test.cpp @@ -9,14 +9,41 @@ using namespace Radio; +CVec wavLoad(const char *pName) +{ + WAV wav; + WavOpen(&wav, pName); + CVec res(wav.m_numSamples); + + const size_t BLOCK_SIZE = 65536; + int16_t *pWavInterleaved = (int16_t*)malloc(BLOCK_SIZE*wav.m_nChannels*sizeof(int16_t)); + + float *pWav[2]; + + pWav[0] = (float*)malloc(BLOCK_SIZE*sizeof(float)); + pWav[1] = (float*)malloc(BLOCK_SIZE*sizeof(float)); + + size_t remain = wav.m_numSamples; + while(remain) + { + size_t size = std::min(remain, BLOCK_SIZE); + size_t numRead = WavRead(&wav, pWavInterleaved, size); + WavDeIlvdFloat(&wav, pWavInterleaved, pWav, numRead); + for (int j=0; j < numRead; j++) + { + res[j] = ComplexScalar(pWav[0][j], pWav[1][j]); + } + remain -= numRead; + } + return res; + +} void test() { - WAV wavRead; - - WavOpen(&wavRead, "m2_12k_12k_i_q.wav"); Interpolation::Farrow m_farrow; - + m_farrow.load("/home/jens/farrow_coeff.dat"); + // Loop-Filter lead_lag_filter_t m_loop_filter_str; lead_lag_coeff_t str_loopfilter_coeff; @@ -27,9 +54,8 @@ void test() radio_float_t m_Vc; - size_t len = 0; - CVec iq; - + CVec iq = wavLoad("m2_12k_12k_i_q.wav"); + size_t len = iq.size(); for (size_t n = 0; n < len; n++) { // @2 x symbolrate