uhd/host/examples
Martin Braun d90e8a91fd examples: wavetable: Modify wave tables to ease power calculations
The existing implementation would create a real signal for any type of
signal (CONST, RAMP, SQUARE, and SINE), and then create the complex
signal by simply delaying the Q value by a 90 degree phase. This had
surprising results for all waveforms:
- CONST waveforms would have a baseband value of ampl + j ampl, thus
  increasing the output power by 3 dB vs. what one would expect when
  setting an amplitude. It is now ampl + j * 0, and the power is
  ampl**2. This now makes the power consistent with SINE, which it was
  not, even though a const signal is a sine signal with a frequency of
  zero.
- SQUARE waveforms would phase-delay the Q part, thus resulting in three
  power output levels (when both phases are zero, when both phases are
  ampl, and when one of them is zero and other is ampl). However, the
  square signal is useful for watching it in the scope, and there, it
  helps if the power is predictably either high or low within the
  selected frequency. The Q value is now always zero.
- RAMP waveforms had the same issue and were also resolved by setting
  Q to zero.
- SINE signals were fine, although the implementation used sin + j cos
  to calculate a complex sine, not cos + j sin according to Euler's
  formula.

To make this wavetable more useful with absolute power settings, the
changes mentioned above were implemented. The dBFs power of CONST and
SINE can now be calculated by using ampl**2, SQUARE by using
(ampl**2)/2, and RAMP by solving the integral over a ramp from -1 to 1.
2020-04-15 07:44:19 -05:00
..
getopt uhd: mpm: update all license header w/ "-or-later" 2019-03-08 00:43:07 +01:00
init_usrp cmake: Bump dependency versions for UHD 4.0.0.0 2019-11-26 11:49:08 -08:00
python examples: benchmark_rate.py: Add ?x_stream_args args 2019-11-26 12:21:33 -08:00
rfnoc-example examples: Update gain block testbench to use samples 2020-03-09 13:43:05 -05:00
ascii_art_dft.hpp uhd: Apply clang-format against all .cpp and .hpp files in host/ 2020-03-03 08:51:32 -06:00
benchmark_rate.cpp examples: Change benchmark_rate default thread priority 2020-03-27 16:02:20 -05:00
benchmark_streamer.cpp uhd: Replace usage of boost smart pointers with C++11 counterparts 2019-11-26 12:21:32 -08:00
CMakeLists.txt examples: updating radio loopback 2019-11-26 12:21:32 -08:00
gpio.cpp uhd: Apply clang-format against all .cpp and .hpp files in host/ 2020-03-03 08:51:32 -06:00
latency_test.cpp examples: remove thread priority elevation 2019-10-22 16:18:46 -07:00
network_relay.cpp uhd: Replace all occurrences of boost::bind with std::bind 2019-11-26 12:21:32 -08:00
replay_samples_from_file.cpp uhd: Apply clang-format against all .cpp and .hpp files in host/ 2020-03-03 08:51:32 -06:00
rfnoc_nullsource_ce_rx.cpp Remove proto-RFNoC files 2019-11-26 12:16:25 -08:00
rfnoc_radio_loopback.cpp examples: updating radio loopback 2019-11-26 12:21:32 -08:00
rfnoc_rx_to_file.cpp uhd: Replace all occurrences of boost::bind with std::bind 2019-11-26 12:21:32 -08:00
rx_ascii_art_dft.cpp Examples: wrap up ref setting with option check 2019-11-24 16:56:27 -08:00
rx_multi_samples.cpp examples: remove thread priority elevation 2019-10-22 16:18:46 -07:00
rx_samples_c.c examples: remove thread priority elevation 2019-10-22 16:18:46 -07:00
rx_samples_to_file.cpp uhd: Remove deprecated objects and methods 2019-11-26 11:49:08 -08:00
rx_samples_to_udp.cpp Examples: wrap up ref setting with option check 2019-11-24 16:56:27 -08:00
rx_timed_samples.cpp examples: remove thread priority elevation 2019-10-22 16:18:46 -07:00
sync_to_gps.cpp examples: remove thread priority elevation 2019-10-22 16:18:46 -07:00
test_clock_synch.cpp uhd: Replace all occurrences of boost::bind with std::bind 2019-11-26 12:21:32 -08:00
test_dboard_coercion.cpp uhd: Replace BOOST_FOREACH(v, c) with for(v : c) 2019-11-26 12:21:32 -08:00
test_messages.cpp uhd: Apply clang-format against all .cpp and .hpp files in host/ 2020-03-03 08:51:32 -06:00
test_pps_input.cpp examples: test_pps_input: Also test for ref_locked on E31x 2019-11-21 15:02:03 -08:00
test_timed_commands.cpp examples: remove thread priority elevation 2019-10-22 16:18:46 -07:00
twinrx_freq_hopping.cpp uhd: Replace BOOST_FOREACH(v, c) with for(v : c) 2019-11-26 12:21:32 -08:00
tx_bursts.cpp Examples: tx_bursts add subdev, ref, lo-offset, bw options 2019-11-22 20:38:27 -08:00
tx_samples_c.c examples: remove thread priority elevation 2019-10-22 16:18:46 -07:00
tx_samples_from_file.cpp uhd: Remove deprecated objects and methods 2019-11-26 11:49:08 -08:00
tx_timed_samples.cpp examples: remove thread priority elevation 2019-10-22 16:18:46 -07:00
tx_waveforms.cpp Examples: wrap up ref setting with option check 2019-11-24 16:56:27 -08:00
txrx_loopback_to_file.cpp uhd: Apply clang-format against all .cpp and .hpp files in host/ 2020-03-03 08:51:32 -06:00
usrp_list_sensors.cpp uhd: mpm: apply clang-format to all files 2019-01-16 11:40:23 -08:00
wavetable.hpp examples: wavetable: Modify wave tables to ease power calculations 2020-04-15 07:44:19 -05:00