[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] gri_mmse_fir_interpolator_cc::interpolate returns

From: Kyle Zhou
Subject: Re: [Discuss-gnuradio] gri_mmse_fir_interpolator_cc::interpolate returns NaN
Date: Thu, 01 Jul 2010 10:48:47 +1000
User-agent: Thunderbird (Windows/20100228)

Tom Rondeau wrote:
The error suggests that the d_mu value is < 0, which is unrelated to
the inputs being all 0. There should be no problem with inputs being
all 0, and if d_mu is less than 0, something is going wrong. Not sure
what to tell you right now, but more debug information would be


Thanks Tom.
Yes, you are right. the error is unrelated to the inputs being all zeros.
Actually, d_mu is not negative either. d_mu is NaN when the error occurs.
By doing some debugging, I have located the problem in gr_fir_ccf_simd::filter(), which is called by gri_mmse_fir_interpolator_cc::interpolate(), which in turn is called by gr_mpsk_receiver_cc::general_work(). For the first call, gr_fir_ccf_simd::filter() returned a value with NaN as its imaginary part. Then this value (interp_sample in gr_mpsk_receiver_cc) is passed into mm_error_tracking(), which causes mm_error, and particularly, d_mu to be NaN. Then when gri_mmse_fir_interpolator_cc::interpolate() is called again with d_mu passed in, the first line
imu = (int) rint(mu*NSTEPS);
will produced a negative imu, which raises the assertion failure.

So the problem lies in gr_fir_ccf_simd::filter(). But why does it return NaN? I am not sure.
This only happens in Cygwin.

I put aside the problem and switched to Ubuntu to continue my work.

Strangely, after some time of augmenting my codes, when I return to Cygwin with the augmented codes, that problem disappeared secretly!

Now I cannot reproduce that problem, which prevents me from further debugging.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]