I have some trouble using the function gr_clock_recovery_mm_cc.cc
Mueller Clock recovery). Using DPSK with
datarate 40 kbps, the communication system works perfect running a
without USRP board. The problem occurs when I switch to the board: when
calling/initialising the receiver client of the system, in approximately
of the cases the following error message shows up.
scipio:/home/cso/da # ./mdpsk_rx_rrc_client_thread.py
gr_fir_ccf: using SSE
Using RX d’board A: Flex 400 Rx MIMO B
python: gri_mmse_fir_interpolator_cc.cc:66: gr_complex
gri_mmse_fir_interpolator_cc::interpolate(const gr_complex*, float):
Assertion `imu >= 0’ failed.
Once the clock is synchronised (the other 30% cases), the receiver works
fine. The problem is ‘temporarely’ solved by unplugging the DC power
of the board. Is it possible that some buffers on the hardware remain
from former runs on the board?
I am calling the M&M clock recovery with the following parameters:
clock_sync = gr.clock_recovery_mm_cc(self.sw_decim, 0.25*0.009, 0.5,
parts of gri_mmse_fir_interpolator_cc.cc, which is called by
gri_mmse_fir_interpolator_cc::interpolate (const gr_complex input,
int imu = (int) rint (mu * NSTEPS);
assert (imu >= 0);
assert (imu <= NSTEPS);
gr_complex r = filters[imu]->filter (input);
I expect that “assert(imu >=0);” is not very robust for synchronising
signal for some unknown reason.
thanks for any help.