How to use if statement in GNU radio

Hi All,

I was trying to combine two signals in GNU radio. One is a sinusoid
wave, and the other is a constant wave. The amplitude of the sine wave
is higher than that of the constant wave. What I want to do is to
truncate the top part of the sinusoid wave: when the sine wave is higher
than the constant wave, let it be the constant wave. I don’t know
whether it is feasible with IF statement in GNU radio.

The IF part of my code:
self.siggen = gr.sig_source_f (self.usb_freq (),
gr.GR_SIN_WAVE,
self.waveform_freq,
self.waveform_ampl,
self.waveform_offset)

    self.siggen1 = gr.sig_source_f (self.usb_freq (),
                                   gr.GR_CONST_WAVE,
                                   self.waveform_freq,
                                   0.5*self.waveform_ampl,
                                   self.waveform_offset)

    if self.siggen < self.siggen1:
         self.connect (self.siggen, self.src)
    else:
         self.connect (self.siggen1, self.src)

If it is not doable, could you provide me with some methods to do this?
Thank you very much!

Sincerely,
Di

On Fri, Sep 12, 2008 at 10:19 AM, Pu, Di [email protected] wrote:

If it is not doable, could you provide me with some methods to do this? Thank you very much!

You can’t really do comparisons against the objects and expect an
attribute of the object to hold true. In this case you have two
objects which provide streams of data and you are trying to compare
the streams to each other.

The idea behind the Python interface is that it supplies the glue to
your flowgraph and all the real work is done in C++.

I believe what you want to do is clip your sine wave - is that
correct? If a block doesn’t exist to perform said clipping, you
should think about writing your own clipping block. There are
tutorials on how to write your own C++ gnuradio blocks, and
(obviously) many examples of blocks currently in place.

If you run into a problem or are stumped, the Wiki is a great resource
as well as old list posts.

Hope this helps!

Brian