SoDaRadio-5.0.3-master:8901fb5
|
BaseBandRX – this is the audio processing chain for the recieve path. More...
#include <BaseBandRX.hxx>
Public Member Functions | |
BaseBandRX (Params *params, DatMBox *rx_stream, CmdMBox *cmd_stream, AudioIfc *audio_ifc) | |
the constructor More... | |
void | run () |
the run method – does the work of the audio receiver process More... | |
Public Member Functions inherited from SoDa::SoDaThread | |
SoDaThread (const std::string &oname) | |
void | start () |
Execute the threads run loop. More... | |
void | join () |
more properly "Wait for this thread to exit its run loop". More... | |
bool | waitForJoin (unsigned int m) |
wait for the thread to stop running, or the specified time to pass. More... | |
void | execCommand (Command *cmd) |
Execute (dispatch) a message removed from the command stream to one of the basic Command handler functions. More... | |
Public Member Functions inherited from SoDa::SoDaBase | |
SoDaBase (const std::string &oname) | |
The constructor – pass a name for the object. More... | |
std::string & | getObjName () |
get the name of this object More... | |
SoDaBase * | findSoDaObject (const std::string &oname) |
find a SoDa Object by name. More... | |
double | getTime () |
Get a time stamp in nS resolution that monotonically increases and that is very inexpensive (typically < 100nS). More... | |
Public Member Functions inherited from SoDa::Debug | |
Debug (std::string _unit_name=std::string("UNKNOWN")) | |
Debug (const char *_unit_name_cstr) | |
Debug (unsigned int _debug_level, std::string _unit_name=std::string("UNKNOWN")) | |
Debug (unsigned int _debug_level, const char *_unit_name_cstr) | |
void | debugMsg (const std::string &msg, unsigned int threshold=1) |
void | debugMsg (const boost::format &fmt, unsigned int threshold=1) |
void | debugMsg (const char *msg, unsigned int threshold=1) |
void | setDebugLevel (unsigned int v) |
unsigned int | getDebugLevel () |
Private Member Functions | |
void | execGetCommand (Command *cmd) |
execute GET commands from the command channel More... | |
void | execSetCommand (Command *cmd) |
handle SET commands from the command channel More... | |
void | execRepCommand (Command *cmd) |
handle Report commands from the command channel More... | |
void | demodulateSSB (std::complex< float > *drxbuf, SoDa::Command::ModulationType mod) |
demodulate the input stream as an SSB signal place the resulting audio buffer on the audio output queue. More... | |
void | demodulateAM (std::complex< float > *drxbuf) |
demodulate the input stream as an amplitude modulated signal place the resulting audio buffer on the audio output queue. More... | |
void | demodulateNBFM (std::complex< float > *drxbuf, SoDa::Command::ModulationType mod, float af_gain) |
demodulate the input stream as a narrowband frequency modulated signal place the resulting audio buffer on the audio output queue. More... | |
void | demodulateWBFM (SoDaBuf *rxbuf, SoDa::Command::ModulationType mod, float af_gain) |
demodulate the input stream as a wideband frequency modulated signal place the resulting audio buffer on the audio output queue. More... | |
void | demodulate (SoDaBuf *rxbuf) |
apply the currently selected demodulation scheme to the input RX buffer place the resulting audio buffer on the audio output queue. More... | |
void | repAFFilterShape () |
send a report of the lower and upper edges of the IF passband based on the current filter and modulation type. More... | |
void | pendAudioBuffer (float *b) |
put an audio buffer on the "pending for output" list More... | |
float * | getNextAudioBuffer () |
return the next queued audio buffer to pass to the audio output device More... | |
void | flushAudioBuffers () |
empty the queue of pending audio buffers, we're going into TX mode. More... | |
void | freeAudioBuffer (float *b) |
add an audio buffer to the free list, we've dispatched it. More... | |
float * | getFreeAudioBuffer () |
remove a buffer from the free list, or allocate one if the free list is empty. More... | |
int | readyAudioBuffers () |
return number audio buffers available More... | |
void | buildFilterMap () |
build the audio filter map for selected bandwidths More... | |
Private Attributes | |
unsigned int | audio_buffer_size |
size of output audio buffer chunk More... | |
unsigned int | rf_buffer_size |
size of input RF buffer chunk More... | |
double | audio_sample_rate |
sample rate of audio output – assumed 48KHz More... | |
double | rf_sample_rate |
sample rate of RF input from USRP – assumed 625KHz More... | |
bool | audio_rx_stream_enabled |
if true, send pending audio buffers to output More... | |
bool | audio_rx_stream_needs_start |
if true, the audio output device needs a wakeup More... | |
bool | sidetone_stream_enabled |
if true, send CW sidetone to audio output More... | |
SoDa::Command::ModulationType | rx_modulation |
current receive modulation mode (USB,LSB,CW_U,CW_L,NBFM,WBFM,AM,...) More... | |
DatMBox * | rx_stream |
mailbox producing rx sample stream from USRP More... | |
CmdMBox * | cmd_stream |
mailbox producing command stream from user More... | |
unsigned int | rx_subs |
mailbox subscription ID for rx data stream More... | |
unsigned int | cmd_subs |
mailbox subscription ID for command stream More... | |
AudioIfc * | audio_ifc |
pointer to the audio interface (output) object More... | |
bool | in_catchup |
when true, the audio server has fallen behind... More... | |
bool | in_fallback |
when true, the audio server has gotten ahead... More... | |
unsigned int | catchup_rand_mask |
a mask to use for fast selection of a random index into an audio buffer. More... | |
std::queue< float * > | free_buffers |
a pool of free audio buffers More... | |
std::queue< float * > | ready_buffers |
a list of audio buffers ready to send to the output More... | |
boost::mutex | free_lock |
lock for the free_buffers pool More... | |
boost::mutex | ready_lock |
lock for the ready_buffers_pool More... | |
float * | sidetone_silence |
a sequence of zero samples to stuff silence into the audio More... | |
SoDa::ReSample625to48 * | rf_resampler |
downsample the RF input to 48KS/s More... | |
SoDa::ReSample625to48 * | wbfm_resampler |
downsample the RF input to 48KS/s for WBFM unit More... | |
SoDa::Command::AudioFilterBW | af_filter_selection |
currently audio filter selector More... | |
SoDa::OSFilter * | cur_audio_filter |
currently selected audio filter More... | |
SoDa::OSFilter * | fm_audio_filter |
audio filter for FM (wider passband) More... | |
SoDa::OSFilter * | am_pre_filter |
Before AM demod, we do some (6KHz) prefilter. More... | |
SoDa::OSFilter * | nbfm_pre_filter |
Before NBFM demod, we do some (15KHz) prefilter – rf rate. More... | |
SoDa::OSFilter * | am_audio_filter |
After AM demod, we do a second filter. More... | |
std::map< SoDa::Command::AudioFilterBW, SoDa::OSFilter * > | filter_map |
map filter selectors to the filter objects More... | |
SoDa::HilbertTransformer * | hilbert |
hilbert transform object for SSB/CW widgets More... | |
float | af_gain |
audio gain setting for RX mode More... | |
float | af_sidetone_gain |
audio gain setting for TX/CW mode More... | |
float * | cur_af_gain |
pointer to the gain setting for this mode More... | |
float | last_phase_samp |
history value used to calculate dPhase/dt in FM atan based discriminator. More... | |
MedianFilter3< float > | fmMedianFilter |
simple 3 point median filter for FM units More... | |
unsigned int | dbg_ctr |
debug counter, used to support one-time or infrequent bulletins More... | |
std::ofstream | dbg_out |
bool | audio_save_enable |
std::ofstream | audio_file |
std::ofstream | audio_file2 |
Additional Inherited Members | |
Static Public Member Functions inherited from SoDa::Debug | |
static void | setDefaultLevel (unsigned int v) |
static unsigned int | getDefaultLevel () |
static void | setGlobalLevel (unsigned int v) |
static unsigned int | getGlobalLevel () |
Static Public Attributes inherited from SoDa::Debug | |
static boost::mutex | debug_msg_mutex |
Protected Member Functions inherited from SoDa::Debug | |
std::string | curDateTime () |
Protected Attributes inherited from SoDa::Debug | |
std::string | unit_name |
the name of the unit reporting status More... | |
unsigned int | debug_level |
the debug level (threshold) for messages More... | |
Static Protected Attributes inherited from SoDa::Debug | |
static unsigned int | default_debug_level = 0 |
static unsigned int | global_debug_level = 0 |
BaseBandRX – this is the audio processing chain for the recieve path.
The BaseBandRX unit accepts the 3rd IF (nominally 80kHz to 200kHz) from the USRPRX thread on the rx_stream.
In most cases (all but Wide Band FM) the rx stream is downselected by a 625 to 48 resampler before being passed through an audio filter and finally demodulated.
As each buffer/timeslice is demodulated, it is placed on a queue of outbound audio blocks for the host processor's audio system. Since there is some slop in the timing (specifically, the clock governing the radio is not necessarily in sync with the audio system clock) the BaseBandRX unit monitors the backlog of outbound audio buffers. When this backlog gets longer than about 400mS, the unit will "drop out" a sample here and there until the downstream sound system catches up.
BaseBandRX supports CW_U (upper sideband CW), CW_L (lower sideband CW), USB, and LSB modulation via the phasing method, since both I and Q channels are available. AM is performed with a simple magnitude detector.
Definition at line 75 of file BaseBandRX.hxx.
SoDa::BaseBandRX::BaseBandRX | ( | Params * | params, |
DatMBox * | rx_stream, | ||
CmdMBox * | cmd_stream, | ||
AudioIfc * | audio_ifc | ||
) |
the constructor
params | command line parameter object |
rx_stream | pointer to mailbox holding USRP RX bitstream |
cmd_stream | pointer to mailbox holding control/report commands |
audio_ifc | pointer to the audio output handler |
Definition at line 37 of file BaseBandRX.cxx.
References af_filter_selection, af_gain, af_sidetone_gain, audio_buffer_size, audio_ifc, audio_rx_stream_enabled, audio_rx_stream_needs_start, audio_sample_rate, audio_save_enable, buildFilterMap(), SoDa::Command::BW_6000, catchup_rand_mask, cmd_stream, cmd_subs, cur_af_gain, cur_audio_filter, dbg_ctr, SoDa::Debug::debugMsg(), filter_map, SoDa::Params::getAFBufferSize(), SoDa::Params::getAudioSampleRate(), getFreeAudioBuffer(), SoDa::Params::getRFBufferSize(), SoDa::Params::getRXRate(), hilbert, in_catchup, in_fallback, last_phase_samp, pendAudioBuffer(), rf_buffer_size, rf_resampler, rf_sample_rate, rx_modulation, rx_stream, rx_subs, sidetone_silence, SoDa::MultiMBox< T >::subscribe(), SoDa::Command::USB, and wbfm_resampler.
|
private |
build the audio filter map for selected bandwidths
Definition at line 614 of file BaseBandRX.cxx.
References am_audio_filter, am_pre_filter, audio_buffer_size, audio_sample_rate, SoDa::Command::BW_100, SoDa::Command::BW_2000, SoDa::Command::BW_500, SoDa::Command::BW_6000, SoDa::Command::BW_PASS, filter_map, fm_audio_filter, nbfm_pre_filter, rf_buffer_size, and rf_sample_rate.
Referenced by BaseBandRX().
|
private |
apply the currently selected demodulation scheme to the input RX buffer place the resulting audio buffer on the audio output queue.
rxbuf | RF input buffer |
Definition at line 246 of file BaseBandRX.cxx.
References SoDa::Command::AM, am_pre_filter, SoDa::ReSample625to48::apply(), SoDa::OSFilter::apply(), audio_buffer_size, cur_af_gain, cur_audio_filter, SoDa::Command::CW_L, SoDa::Command::CW_U, demodulateAM(), demodulateNBFM(), demodulateSSB(), demodulateWBFM(), SoDa::SoDaBuf::getComplexBuf(), SoDa::Command::LSB, SoDa::Command::NBFM, nbfm_pre_filter, rf_resampler, rx_modulation, SoDa::Command::USB, and SoDa::Command::WBFM.
Referenced by run().
|
private |
demodulate the input stream as an amplitude modulated signal place the resulting audio buffer on the audio output queue.
drxbuf | downsampled RF input buffer |
Definition at line 220 of file BaseBandRX.cxx.
References am_audio_filter, SoDa::OSFilter::apply(), audio_buffer_size, getFreeAudioBuffer(), and pendAudioBuffer().
Referenced by demodulate().
|
private |
demodulate the input stream as a narrowband frequency modulated signal place the resulting audio buffer on the audio output queue.
drxbuf | downsampled RF input buffer |
mod | modulation type – NBFM |
af_gain | factor to goose the audio output |
Definition at line 160 of file BaseBandRX.cxx.
References SoDa::OSFilter::apply(), audio_buffer_size, audio_file2, audio_save_enable, cur_audio_filter, getFreeAudioBuffer(), last_phase_samp, and pendAudioBuffer().
Referenced by demodulate().
|
private |
demodulate the input stream as an SSB signal place the resulting audio buffer on the audio output queue.
drxbuf | downsampled RF input buffer |
mod | modulation type – LSB, USB, CW_U, or CW_R |
Definition at line 201 of file BaseBandRX.cxx.
References SoDa::HilbertTransformer::applyIQ(), audio_buffer_size, SoDa::Command::CW_L, getFreeAudioBuffer(), hilbert, SoDa::Command::LSB, and pendAudioBuffer().
Referenced by demodulate().
|
private |
demodulate the input stream as a wideband frequency modulated signal place the resulting audio buffer on the audio output queue.
Note the wideband FM unit takes the raw RX buffer rather than the downsampled rx buffer.
rxbuf | RF input buffer |
mod | modulation type – WBFM |
af_gain | factor to goose the audio output |
Definition at line 123 of file BaseBandRX.cxx.
References SoDa::ReSample625to48::apply(), SoDa::OSFilter::apply(), fm_audio_filter, SoDa::SoDaBuf::getComplexBuf(), getFreeAudioBuffer(), last_phase_samp, pendAudioBuffer(), rf_buffer_size, and wbfm_resampler.
Referenced by demodulate().
|
privatevirtual |
execute GET commands from the command channel
cmd | the incoming command |
Reimplemented from SoDa::SoDaThread.
Definition at line 397 of file BaseBandRX.cxx.
References af_filter_selection, af_gain, SoDa::Command::BaseBandRX, cmd_stream, SoDa::Command::DBG_REP, free_buffers, SoDa::SoDaBase::getObjName(), SoDa::Command::iparms, SoDa::MultiMBox< T >::put(), readyAudioBuffers(), SoDa::Command::REP, SoDa::Command::RX_AF_FILTER, SoDa::Command::RX_AF_GAIN, and SoDa::Command::target.
|
privatevirtual |
handle Report commands from the command channel
cmd | the incoming command |
Reimplemented from SoDa::SoDaThread.
Definition at line 421 of file BaseBandRX.cxx.
|
privatevirtual |
handle SET commands from the command channel
cmd | the incoming command |
Reimplemented from SoDa::SoDaThread.
Definition at line 321 of file BaseBandRX.cxx.
References af_filter_selection, af_gain, af_sidetone_gain, audio_ifc, audio_rx_stream_enabled, audio_rx_stream_needs_start, SoDa::Command::BW_6000, cmd_stream, cur_af_gain, cur_audio_filter, SoDa::Command::CW_L, SoDa::Command::CW_U, SoDa::Debug::debugMsg(), SoDa::Command::dparms, filter_map, flushAudioBuffers(), SoDa::Command::iparms, SoDa::MultiMBox< T >::put(), SoDa::Command::REP, repAFFilterShape(), SoDa::Command::RX_AF_FILTER, SoDa::Command::RX_AF_GAIN, SoDa::Command::RX_AF_SIDETONE_GAIN, SoDa::Command::RX_MODE, rx_modulation, sidetone_stream_enabled, SoDa::AudioIfc::sleepOut(), SoDa::Command::target, SoDa::Command::TX_MODE, SoDa::Command::TX_STATE, and SoDa::AudioIfc::wakeOut().
|
private |
empty the queue of pending audio buffers, we're going into TX mode.
Definition at line 603 of file BaseBandRX.cxx.
References freeAudioBuffer(), ready_buffers, and ready_lock.
Referenced by execSetCommand().
|
private |
add an audio buffer to the free list, we've dispatched it.
b | pointer to audio buffer. |
Definition at line 558 of file BaseBandRX.cxx.
References free_buffers, and free_lock.
Referenced by flushAudioBuffers(), and run().
|
private |
remove a buffer from the free list, or allocate one if the free list is empty.
Definition at line 563 of file BaseBandRX.cxx.
References audio_buffer_size, free_buffers, and free_lock.
Referenced by BaseBandRX(), demodulateAM(), demodulateNBFM(), demodulateSSB(), and demodulateWBFM().
|
private |
return the next queued audio buffer to pass to the audio output device
Definition at line 593 of file BaseBandRX.cxx.
References ready_buffers, and ready_lock.
Referenced by run().
|
private |
put an audio buffer on the "pending for output" list
b | pointer to an audio buffer |
Definition at line 582 of file BaseBandRX.cxx.
References audio_buffer_size, audio_file, audio_save_enable, ready_buffers, and ready_lock.
Referenced by BaseBandRX(), demodulateAM(), demodulateNBFM(), demodulateSSB(), and demodulateWBFM().
|
private |
return number audio buffers available
Definition at line 576 of file BaseBandRX.cxx.
References ready_buffers, and ready_lock.
Referenced by execGetCommand(), and run().
|
private |
send a report of the lower and upper edges of the IF passband based on the current filter and modulation type.
Definition at line 297 of file BaseBandRX.cxx.
References SoDa::Command::AM, cmd_stream, cur_audio_filter, SoDa::Command::CW_L, SoDa::Command::CW_U, SoDa::OSFilter::getFilterEdges(), SoDa::Command::LSB, SoDa::MultiMBox< T >::put(), SoDa::Command::REP, SoDa::Command::RX_AF_FILTER_SHAPE, rx_modulation, and SoDa::Command::USB.
Referenced by execSetCommand().
|
virtual |
the run method – does the work of the audio receiver process
6)) {
Implements SoDa::SoDaThread.
Definition at line 426 of file BaseBandRX.cxx.
References audio_buffer_size, audio_file, audio_file2, audio_ifc, audio_rx_stream_enabled, audio_rx_stream_needs_start, audio_save_enable, catchup_rand_mask, cmd_stream, cmd_subs, SoDa::AudioIfc::currentPlaybackState(), SoDa::Debug::debugMsg(), demodulate(), SoDa::SoDaThread::execCommand(), SoDa::MultiMBox< T >::free(), freeAudioBuffer(), SoDa::MultiMBox< T >::get(), getNextAudioBuffer(), in_catchup, in_fallback, readyAudioBuffers(), rx_stream, rx_subs, SoDa::AudioIfc::send(), SoDa::AudioIfc::sendBufferReady(), SoDa::Command::STOP, SoDa::Command::target, and SoDa::AudioIfc::wakeOut().
|
private |
currently audio filter selector
Definition at line 253 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), execGetCommand(), and execSetCommand().
|
private |
audio gain setting for RX mode
Definition at line 268 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), execGetCommand(), and execSetCommand().
|
private |
audio gain setting for TX/CW mode
Definition at line 269 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), and execSetCommand().
|
private |
After AM demod, we do a second filter.
Definition at line 258 of file BaseBandRX.hxx.
Referenced by buildFilterMap(), and demodulateAM().
|
private |
Before AM demod, we do some (6KHz) prefilter.
Definition at line 256 of file BaseBandRX.hxx.
Referenced by buildFilterMap(), and demodulate().
|
private |
size of output audio buffer chunk
Definition at line 173 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), buildFilterMap(), demodulate(), demodulateAM(), demodulateNBFM(), demodulateSSB(), getFreeAudioBuffer(), pendAudioBuffer(), and run().
|
private |
Definition at line 284 of file BaseBandRX.hxx.
Referenced by pendAudioBuffer(), and run().
|
private |
Definition at line 285 of file BaseBandRX.hxx.
Referenced by demodulateNBFM(), and run().
|
private |
pointer to the audio interface (output) object
Definition at line 188 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), execSetCommand(), and run().
|
private |
if true, send pending audio buffers to output
Definition at line 177 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), execSetCommand(), and run().
|
private |
if true, the audio output device needs a wakeup
Definition at line 178 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), execSetCommand(), and run().
|
private |
sample rate of audio output – assumed 48KHz
Definition at line 175 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), and buildFilterMap().
|
private |
Definition at line 283 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), demodulateNBFM(), pendAudioBuffer(), and run().
|
private |
a mask to use for fast selection of a random index into an audio buffer.
Definition at line 233 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), and run().
|
private |
mailbox producing command stream from user
Definition at line 184 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), execGetCommand(), execSetCommand(), repAFFilterShape(), and run().
|
private |
mailbox subscription ID for command stream
Definition at line 186 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), and run().
|
private |
pointer to the gain setting for this mode
Definition at line 270 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), demodulate(), and execSetCommand().
|
private |
currently selected audio filter
Definition at line 254 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), demodulate(), demodulateNBFM(), execSetCommand(), and repAFFilterShape().
|
private |
debug counter, used to support one-time or infrequent bulletins
Definition at line 279 of file BaseBandRX.hxx.
Referenced by BaseBandRX().
|
private |
Definition at line 280 of file BaseBandRX.hxx.
|
private |
map filter selectors to the filter objects
Definition at line 262 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), buildFilterMap(), and execSetCommand().
|
private |
audio filter for FM (wider passband)
Definition at line 255 of file BaseBandRX.hxx.
Referenced by buildFilterMap(), and demodulateWBFM().
|
private |
simple 3 point median filter for FM units
Definition at line 276 of file BaseBandRX.hxx.
|
private |
a pool of free audio buffers
Definition at line 235 of file BaseBandRX.hxx.
Referenced by execGetCommand(), freeAudioBuffer(), and getFreeAudioBuffer().
|
private |
lock for the free_buffers pool
Definition at line 238 of file BaseBandRX.hxx.
Referenced by freeAudioBuffer(), and getFreeAudioBuffer().
|
private |
hilbert transform object for SSB/CW widgets
Definition at line 265 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), and demodulateSSB().
|
private |
when true, the audio server has fallen behind...
Definition at line 231 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), and run().
|
private |
when true, the audio server has gotten ahead...
Definition at line 232 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), and run().
|
private |
history value used to calculate dPhase/dt in FM atan based discriminator.
Definition at line 273 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), demodulateNBFM(), and demodulateWBFM().
|
private |
Before NBFM demod, we do some (15KHz) prefilter – rf rate.
Definition at line 257 of file BaseBandRX.hxx.
Referenced by buildFilterMap(), and demodulate().
|
private |
a list of audio buffers ready to send to the output
Definition at line 236 of file BaseBandRX.hxx.
Referenced by flushAudioBuffers(), getNextAudioBuffer(), pendAudioBuffer(), and readyAudioBuffers().
|
private |
lock for the ready_buffers_pool
Definition at line 239 of file BaseBandRX.hxx.
Referenced by flushAudioBuffers(), getNextAudioBuffer(), pendAudioBuffer(), and readyAudioBuffers().
|
private |
size of input RF buffer chunk
Definition at line 174 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), buildFilterMap(), and demodulateWBFM().
|
private |
downsample the RF input to 48KS/s
Definition at line 244 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), and demodulate().
|
private |
sample rate of RF input from USRP – assumed 625KHz
Definition at line 176 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), and buildFilterMap().
|
private |
current receive modulation mode (USB,LSB,CW_U,CW_L,NBFM,WBFM,AM,...)
Definition at line 181 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), demodulate(), execSetCommand(), and repAFFilterShape().
|
private |
mailbox producing rx sample stream from USRP
Definition at line 183 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), and run().
|
private |
mailbox subscription ID for rx data stream
Definition at line 185 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), and run().
|
private |
a sequence of zero samples to stuff silence into the audio
Definition at line 241 of file BaseBandRX.hxx.
Referenced by BaseBandRX().
|
private |
if true, send CW sidetone to audio output
Definition at line 179 of file BaseBandRX.hxx.
Referenced by execSetCommand().
|
private |
downsample the RF input to 48KS/s for WBFM unit
Definition at line 246 of file BaseBandRX.hxx.
Referenced by BaseBandRX(), and demodulateWBFM().