Wfm_tx and nbfm_tx


#1

Hi list,

I think I found two errors in the wfm_tx.py and nbfm_tx.py blocks:

while the description says:
@param audio_rate: sample rate of audio stream, >= 16k
for both of them, they have an low-pass interpolating filter which
cuts off at 16kHz for wfm and 4.5kHz for nbfm…

this is wrong also in firas’s user manual…

regards

Dimitris S.
“If you think you’re too small to make a difference, try sleeping with
a mosquito!” - Amnesty International


#2

Hi Firas,

the description should be changed to show that:

  • blks2.wfm_tx can receive a maximum audio rate of <=16k (instead of
    the declared >= 16k)
  • blks2.nbfm_tx can receive a maximum audio rate of <= 4.5k (instead of

= 16k)
This both in the code, and in the pdf file

On a different mistake, both files contain a line reading:
# FIXME audio_rate and quad_rate ought to be exact rationals
while this issue seems to be fixed in both…

I hope this is clear enough…

Dimitris S.
“If you think you’re too small to make a difference, try sleeping with
a mosquito!” - Amnesty International


#3

Hi Dimtris,

— On Fri, 12/19/08, Dimitris S. removed_email_address@domain.invalid wrote:

the description should be changed to show that:

  • blks2.wfm_tx can receive a maximum audio rate of <=16k
    (instead of > the declared >= 16k)
  • blks2.nbfm_tx can receive a maximum audio rate of <=
    4.5k (instead of >= 16k)

I hope this is clear enough…

Dimitris S.

I think you have mixed between audio frequency bandwidth and audio
digitizing rate.

The following example will explain it :

Suppose that you want to transmit nbfm signal for an input audio signal
with maximum bandwidth of 3 KHz. Suppose also that this audio signal is
digitized by (lets say) 32K PCM encoder which results in digitized audio
rate of 32K.

To produce nbfm signal, we do the following:

  1. Ensure that the incoming digitized signal (32K) does not contains any
    frequency components above 4.5 KHz (this is done by a digital FIR low
    pass filter).

  2. Software interpolate the output of the digital FIR (32 K) to a rate
    suitable for transmission (lets say 256K) with interpolation rate of 8.

  3. Do an FM Pre-emphasis to this 256K signal (this is how it was done in
    the nbtx.py). The output is also 256K.

  4. Feeding this 256K to a frequency modulator (VCO) which produces
    complex output signal.

  5. Stream this output complex signal to the USRP with interpolation rate
    of 500 to produce 128M which is fed to its DAC.

I hope this is clear now.

Best Regards,

Firas