Trouble with gr_multiply_const_ff

Hi all,

I’m working on the gen2_reader project and got some trouble with the amp
block. We use the gr_multiply_const_ff to amplify the power of signal.

amp = gr.multiply_const_ff(amplitude)
tx = uhd.usrp_sink(options.args, uhd.io_type.COMPLEX_FLOAT32,
num_channels=1,)
self.connect(self.reader, amp, to_complex)
self.connect(to_complex, tx)

I found an threshold of amplitude, when amplitude < 40, the signal tx
block
transmited looks like the amp20,png (that what we want) and when
amplitude

= 40, the signal is just the same to amp5000.png which get several peaks in
the signal we want to eliminate.

As the amplitude reflect the power of signal we transmit and need to be
set
at least 5000 to power the tag, so we have to eliminate the peaks.

Is there some methods to deal with the amplitude, or just replace the
multiply_const_ff block with any other blocks?

Thanks for any advice

Lee

http://gnuradio.4.n7.nabble.com/file/n45018/amp20.png

http://gnuradio.4.n7.nabble.com/file/n45018/amp5000.png


View this message in context:
http://gnuradio.4.n7.nabble.com/trouble-with-gr-multiply-const-ff-tp45018.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Hi Lee,
I don’t quite understand what these images show, and they’re too small
to read the axes.
Could you elaborate on where you take them from? Is the input data the
same?

Whitout guarantee, I’d assume that multiply_const_ff works quite well,
and that the problem is somewhere else.
What does your to_complex do?

Greetings,
Marcus

Hi Marcus,

Thanks for your attention.
I have upload a bigger size image below. the x axis is sampling point
which
reflects time and the y axis is margin which reflects the power.
I plot the image from the rx block of the gen2_reader project. The
signal is
transmitted by the tx block of gen2_reader.
The to_complex block is use to trasfer the float data to complex data
for
transmitting by tx block.

The input data of gr_multiply_const_ff block are the same, they come
from
the reader block.
It’s weird that the output data of gr_multiply_const_ff are the same in
matlab image with different amplitude(bigger than 40 or not) but the
signal
tx block transmiting are not.

I can’t figure out how the amplitude in gr_multiply_const_ff block
influence
the signal in tx block without change the output data.
By the way, we use a gen2_monitor with another usrp to get signal
transmitted from the gen2_reader tx blcok, it has the same signal image
to
the rx block of gen2_reader. So, we can assume that there is no problem
with
our equipments

Lee

http://gnuradio.4.n7.nabble.com/file/n45025/amp5000.png


View this message in context:
http://gnuradio.4.n7.nabble.com/trouble-with-gr-multiply-const-ff-tp45018p45025.html
Sent from the GnuRadio mailing list archive at Nabble.com.

On Sat, Nov 30, 2013 at 5:00 AM, atools_cook [email protected]
wrote:

The input data of gr_multiply_const_ff block are the same, they come from
our equipments

Lee

Lee,

You know that the UHD transmitter takes signal samples from 0 to 1? So
after the multiply_const block, what’s the value of the signal? If
it’s > 1, you’re not going to get any change in the transmit power.

Tom

Tom,

Value of the signal after the multiply_const block is amplitude,

We set the amplitude as much as 5000 to increase the transmit power of
signal is an advice from the developer of gen2_reader project Michael
Buettner, so it would be ok.

You said that the UHD transmitter takes signal samples from 0 to 1 and
the
value of signal should <1, so how can I change the transmit power of
signal.

Lee


View this message in context:
http://gnuradio.4.n7.nabble.com/trouble-with-gr-multiply-const-ff-tp45018p45037.html
Sent from the GnuRadio mailing list archive at Nabble.com.

On 12/01/2013 09:24 PM, atools_cook wrote:

Discuss-gnuradio mailing list
[email protected]
Discuss-gnuradio Info Page
The code you’re using probably is Very old from a time when it was
conventional to use the hardware ADC/DAC range as the scaling within the
flow-graph.

I’d suggest backing things off so that your signal is peaking at no more
than +/-0.8 or so, and then adjust the RF gain as appropriate.

Lee,
What Marcus and Tom are telling you is that when a signal reaches a USRP
Sink in GNURadio it is transformed into an integer representation that
is weighted so that the integers represent values -1 <= x < 1.

Input values with magnitudes larger than these will be saturated to
these limits, which of course alters (destroys) the signals spectrum.

Ideally your flow graph should try to deliver signals to a USRP sink
that have been scaled so that they are slightly within these constraints
to maximize the dynamic range offered by this (16Bit) integer
representation, hence Marcus’s suggestion that you target 0.8 as a
maximum amplitude of your signal.

The various USRP daughter card products have different available
programable analog gain ranges for the TX amplifiers, and these are
controlled by the Gain parameter of the USRP sink. Generally the highest
gain values will completely saturate the analog output stages of the
Daughter card, given a full range digital input signal. You will need to
empirically determine a gain value that obtains the maximum rated power
from the daughter card, given your input signal, without driving the
output stage into saturation.

-Ian

lan

I have done some research work. The input values of uhd should be
-1<=x<1,
and the gr_multiply_const_ff block has set the default amplitude to 1,
so
this block seems useless.

The only way I found to scale the power of signal we transmit is to
enhance
the gain of usrp_sink. However, we use RFX900 d’board as it has a
bigger
gain range (0~70dB), and RFX900 doesn’t provide a adjustment tx gain. In
other words, the tx.set_gain() and tx.get_gain() can’t work at all. Did
the
RFX900 set the maximum gain value as tx_gain default value, It could
also
be 70dB, right?

Is there any other way to scale the transmit signal power with uhd?

best.
Lee


View this message in context:
http://gnuradio.4.n7.nabble.com/trouble-with-gr-multiply-const-ff-tp45018p45128.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Marcus,

Thanks for your advice and we do use the “very old” code exactly.

Would you please elaborate the “backing things off” things because I
can’t
your point of it.

Best
Lee


View this message in context:
http://gnuradio.4.n7.nabble.com/trouble-with-gr-multiply-const-ff-tp45018p45039.html
Sent from the GnuRadio mailing list archive at Nabble.com.