# Error in an attempt to simulate SDR frontend hardware in GRC

I was reading these lecture slides: https://web.mit.edu/6.02/www/f2006/handouts/Lec9.pdf and I tried to implement some of the schematics shown there in GNU Radio.

On page 3 the author describes how using a single LO is suboptimal, because in the worst case, when the transmitter's and the receiver's LOs are orthogonal, the output will be zero. I implemented this in the following flowgraph: https://gist.github.com/ardavast/45b3fa0fb6e8ee9f3489a15a732549a9 It behaves as expected, if I move the sliders so that the phase difference is $$\pm \frac{\pi}{2}$$ the output is zero.

After that, on page 10, there is an explanation on how this can be prevented by using quadrature signals. I implemented this one too: https://gist.github.com/ardavast/f1c2f0296382bbc005e72ee034117e6a After I start it, I move the rx_phase slider to about 1.57 ($$\approx \frac{\pi}{2}$$) - this should make the rx_lo_i and rx_lo_q signals which are originally cos and sin, equal to, respectively, sin and -cos, exactly as shown in the diagram on page 10, the one on the right side. But contrary to what's written there, the signal vanishes completely, as in the single LO example. Where is the error in my flowgraph?

• Um, there's a lot wrong in here – starting from the beginning: you should probably just be using a float signal source instead of a complex one and throwing away the imaginary or real part of that, just to latter piece them back together. – Marcus Müller Aug 26 '19 at 15:57
• @MarcusMüller I do this, because I want to be able to change the phase of a float signal arbitrarily - so I start from a complex signal which is then multiplied to get the needed phase (that's what the multiply const blocks, connected to the qt ranges are for), and finally converted to float. I don't know how to change the phase of a float signal directly. – Ardavast Dayleryan Aug 26 '19 at 16:13
• but you're not using the signals as float signals at all. What you do is just complex multiplication with extra steps. – Marcus Müller Aug 26 '19 at 16:18