Detect when the sample input level reaches 94% of full scale input,
which equates to amplitude of 120 for 8-bit samples post-conversion,
and log the event with ALERT level.
Signed-off-by: Tom Tsou <tom@tsou.cc>
Existing implementation was using the same RRC prototype filter on
transmit and receive filterbanks. But, the receive input from the device
is 6.25 Msps vs 3.84 Msps, which leads to wider RRC filter bandwidth
than specified and excess noise being present in the signal. Correct by
scaling the time domain pulse by a factor of 384/625 to obtain the
appropriate pulse shape.
Signed-off-by: Tom Tsou <tom@tsou.cc>
Existing integer-float converter didn't accomodate for the final
transceiver output converting to 8-bits. The resulting effect was
integer overflow above a certain signal input level dependent on RF
receive gain. Resolve by scaling to allow full input level range.
Signed-off-by: Tom Tsou <tom@tsou.cc>
Setup configure to build and install the UHD transceiver if the UHD
driver is found. Otherwise, build the RAD1 transceiver. For UHD
transceiver, perform CPU checking for Intel SSE capability. Update
CPU check macros from GNU Autoconf Archive version 2014.10.15.
Signed-off-by: Tom Tsou <tom@tsou.cc>
Supported devices includes USRP N200/N210/USRP2, B200/B210, X300/X310.
Other Ettus devices are not supported due to bandwidth limitations.
There is no direct embedded device support at this time.
The UHD transceiver device operating rate is fixed at 6.25 Msps, which
interfaces with the UMTS chip rate of 3.84 Mcps through a combined
polyphase resampling and RRC pulse-shaping filterbank. The effective
oversampling factor is approximate 1.63 samples per symbol.
Tested against Agilent 89600 VSA for appropriate EVM and ACP values.
Signed-off-by: Tom Tsou <tom@tsou.cc>
For clean shutdown in the transceiver we need to cancel and join
running threads for orderly unwinding. Thread cancellation points
already exist, so we just need to be able to call on the threads to
exit out when stopping or shutting down.
Don't error when joining a NULL thread, which would be the case if a
thread was stopped before ever being started to begin with.
Signed-off-by: Tom Tsou <tom@tsou.cc>
Address trivial build issues on certain Linux distribuitions (e.g.
Fedora 20 on which this patch was tested).
Most standard C++ libraries had unistd.h removed in GCC 4.7, so add it
back in explicitly.
Resolve the following ASN.1 build error by specifying the C language
tag.
libtool: compile: unable to infer tagged configuration
libtool: compile: specify a tag with `--tag'
Signed-off-by: Tom Tsou <tom@tsou.cc>