|
From: | Marcus Müller |
Subject: | [Discuss-gnuradio] Why aren't these streams synchronous? (was: No change when set_processor affinity() is used) |
Date: | Tue, 12 May 2015 22:14:09 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 |
Hi Nemanja, I took the liberty of changing the subject to reflect the new topic :) You're right, the low pass filters that the firdes tool produces should have linear phase, meaning that their impulse response is symmetrical and they have a constant phase delay of half the filter length. I don't really think your synchronization as it is broken, but your signals might be: * you're doing a 27k-tap filter. That means you're summing up 27k floating point numbers when doing the convolution of signal and filter. This *might* be a bit harsh for the numerical accuracy that a single precision floating point number offers. IIRC, the general (un-hand-optimized) volk kernel doing this just takes a single accumulator variable and sums over all tap[k-n]*sample[n]; not the optimal thing when it comes to numerical stability. However, hopefully no longer streaks in the filter impulse response have the same sign -- thus minimizing these effects. I'd strongly recommend using gr_filter_design, and plotting your filter's impulse, and its frequency response. Do you really need a transition width that narrow, or a ripple that small, or a suppression that high? Can you not decimate after the band pass? Does it have to be a complex band pass, or are the requirements in the upper and lower transitions so different, that you gain significantly by doing a LPF and a HPF after another? * You do complex2mag²->low pass->logarithm. I don't really think taking the logarithm of a negative number is a good idea, and unless you now your signal very well, I don't think you can avoid getting negative numbers out of that low pass [1]. Best regards, Marcus [1] http://imgur.com/70feESf (by the way, that example is a bit constructed, but it brings the point across; it especially applies to situations where your signal gets clipped and you're working close to nyquist) On 05/12/2015 07:07 PM, Nemanja Savic
wrote:
|
[Prev in Thread] | Current Thread | [Next in Thread] |