In uhd_siggen_gui tool, u cant set signal amplitude more than 1. Is
there any
reason behind this?
I commented out the code where the limit checking is done. Then, when I
increase the amplitude of the transmitted signal beyond 1, I dont see
any
change in amplitude of the recieved signal. What is the cause of this
restriction?
In uhd_siggen_gui tool, u cant set signal amplitude more than 1. Is there any
reason behind this?
I commented out the code where the limit checking is done. Then, when I
increase the amplitude of the transmitted signal beyond 1, I dont see any
change in amplitude of the recieved signal. What is the cause of this
restriction?
Like the audio blocks, the UHD blocks normalize float data for 1.0 to be
full scale. So, you want to stay way below 1.0, in all cases. Going
above will cause clipping.
To further increase the signal amplitude, increase the Tx gain. Max Tx
gain can, in some cases, cause distortions but that depends on signal
shape etc. You would be able to see this on a spectrum analyzer
(clipping in particular very obviously distorts the spectrum).
Is this clipping behaviour specific to uhd_siggen? Earlier I have tried to
increase the amplitude of an OFDM subcarrier to more than 1.0 and saw linear
increase in received amplitude. Clipping took place at quite a high
amplitude.
No, 1.0 maps to FS for USRP blocks. In the OFDM example, watch the
amplitude of the signal before it enters the USRP sink. If it exceeds
1.0, I promise it will clip (and you will see this with a spectrum
analyzer).
Is this clipping behaviour specific to uhd_siggen? Earlier I have tried
to
increase the amplitude of an OFDM subcarrier to more than 1.0 and saw
linear
increase in received amplitude. Clipping took place at quite a high
amplitude.
Ah well, in that case, the energy of only one increased subcarrier will,
due to Parseval’s Theorem, still be present in the time signal, but be
split across all samples in the OFDM symbol (IDFT).
Anyway, in a practical system you’d limit the power-per-subcarrier, so
that no combination of subcarrier symbols can lead to time domain peaks
that get clipped.
No, 1.0 maps to FS for USRP blocks. In the OFDM example, watch the
amplitude of the signal before it enters the USRP sink. If it exceeds
1.0, I promise it will clip (and you will see this with a spectrum
analyzer).
M
zealdeal could be talking about the amplitude of an OFDM carrier
before the IFFT.
I have the same suspicion, hence my recommendation of checking the final
output signal.
The rx_ofdm GRC example has a scope at the relevant position for this
reason.
you should know how OFDM works: An OFDM symbol is nothing more than the
IDFT of a vector of permutated, possibly padded symbols.
No, for the sake of a simple example, assume your symbol vector is
[1,1,1,…,1]; without doubt, you’ll notice that the IDFT of that vector
has an entry that exhibits a magnitude much larger than 1, whilst the
other elements of the IDFT have a much smaller magnitude (should be 0!).
This uneven distribution of power in time domain is a problem so common
to all OFDM systems that there is a fixed term coined for that: the PAPR
(peak/average power ratio); I’m pretty sure that you’ve stumbled across
that in whatever introduced you to OFDM.
Best regards,
Marcus
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.