[USRP-users] Max Tx Power of SBX120

Zhihong Luo zhluo at umich.edu
Tue Mar 29 16:30:41 EDT 2016


Thanks a lot for so much information!


2016年3月29日星期二,Marcus Müller <usrp-users at lists.ettus.com> 写道:

> Hi Zhihong,
> On 29.03.2016 08:05, Zhihong Luo via USRP-users wrote:
> So, if I want max power, I should set the max and min of the square as 1
> and -1?
> Indeed!
> How does it convert the float number if it is larger than 1?
> In short: that's undefined behaviour, don't try to use it. 1 maps to the
> maximum fixed point value as used by the FPGA/hardware.
> In long: Internally, the std::complex<float> is converted to a
> std::complex<int16_t> either as the compiler implements that conversion
> itself (see the convert_fc32_item32.cpp)  or by a SSE2 assembler routine.
> Using |values| > 1 will lead to a signed integer overflow. A signed
> integer overflow in C++ is undefined behaviour, and your compiler is pretty
> much free to do whatever it pleases. Maybe just abort your program (no
> compiler chooses that, though), wrap around, saturate, overwrite the next
> value in RAM etc (doesn't happen in reality, either, aside from one example
> I can think of).
> Now, in SSE2/SSE, the converter scales the input value from -1;1 to  -2¹⁵;
> +2¹⁵, converts it to int32, and packs 8 of these 32 bit integers into a
> package of 8x 16bit integers; the operation we use for that
> (_mm_packs_epi32) is specified by Intel[1] to be saturating, so 1.1 would
> still map to the same value as 1.0.
> Notice that with the SSE-based converter, you get saturation, whereas with
> the generic converter, you potentially get a completely different
> behaviour, like wrapping.
> So: really don't use |values|>1; it doesn't do any good, and will probably
> make things worse.
> Besides these, what else can I do to approach the max output power?
> Use a waveform that plays nicer with your channel, and build a receiver
> sensitive to that exact waveform (hint: read up on matched filtering).
> Use an efficient antenna, that couples out as much power as possible, and
> directs it at your receiver.
> Use a different frequency; [2] has TX power measurements over the
> frequency range of the SBX.
> Best regards,
> Marcus
> [1]
> https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=4587,1643,3789&text=_mm_packs_epi32
> [2] http://files.ettus.com/performance_data/
> Besides these, what else can I do to approach the max output power? Thanks
> a lot for any help.
> Best regards,
> Zhihong
> _______________________________________________
> USRP-users mailing listUSRP-users at lists.ettus.com <javascript:_e(%7B%7D,'cvml','USRP-users at lists.ettus.com');>http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20160329/f91fe6d2/attachment-0002.html>

More information about the USRP-users mailing list