Amateur television ATV


#1

hello,
In the case of atv, as I believe the passband of the signal is way too
large for the throughput of usrp usb, are there any special
techniques/tricks to achieve some sort of result?

Regards
Matteo


#2

Matteo C. wrote:

hello,
In the case of atv, as I believe the passband of the signal is way too large for the throughput of usrp usb, are there any special techniques/tricks to achieve some sort of result?

I think you mean FM-ATV, mainkly used at 23 cm. which has a bandwidth of
approximately 17 MHz.
(There is also AM-ATV, mainly used at 70 cm which can have bandwidths as
low as 1 Mhz)

I can think of three scenarios:
1: use less bits
If you settle for 16 Mhz bandwidth, you would need a decimation of 4.
This can be done if you use 8 bits samples over the usb bus.
This can be done right now with std_4rx_0tx.rbf fpga firmware (has no
halfband).
You need to use std_4rx_0tx.rbf fpga firmware without halfband filter
because the hb limits decimation to a minimum of 8

If you use the today ( 5 minutes ago) updated usrp_rx_cfile.py to
capture you can capture 16 Mhz of bandwidth by just issuing.

./usrp_rx_cfile.py --output-shorts -8 -d 4 -f wantedfreq -g wantedgain
output_cshorts.raw

Disabling of the halfband filter is done automatically.
Note however you get 32 MB/sec of data, so you need a fast harddisk or
use a ramdisk to capture to.

You have to set the gain very precisely because you have a very limited
dynamic range when using 8 bits.

You can also capture to complex float values, (don’t use
–output-shorts) but this will double the needed disk-speed to 64MB/sec

If anybody can capture some FM-ATV station and make it available online
I can see if I can make a working example.

2: do the demodulation in the fpga of the usrp, before the decimation.
A simple fm-demodulation (complex_to_arg) should be doable.
A complete pll based fm-demodulater is a bit more work.

3: Use a frontend with a higher digital bandwidth.
PCI or pci-express based ADC cards come to mind.

Once you have captured the data, you need to change the tv examples to
use a fm-demodulater in stead of am detection.
You can also leave out the agc.

look in /gnuradio-core/src/python/gnuradio/blksimpl/wfm_rcv.py
and /gnuradio-core/src/python/gnuradio/blksimpl/wfm_rcv_pll.py
On how to do fm_demodulation.
The possible fm_demod blocks are:
gr.pll_freqdet_cf (alpha,beta,max_freq,-max_freq)
and
gr.quadrature_demod_cf (fm_demod_gain)

The pll-based version is much more precise but takes a lot more compute
power.
gr.quadrature_demod_cf may be able to run in realtime.

something like this should work:
max_dev = 4.0e6
fm_demod_gain = usrp_rate/(2math.pimax_dev)
self.fm_demod = gr.quadrature_demod_cf (fm_demod_gain)
self.connect (self.src, self.fm_demod,self.invert_and_scale,
self.set_blacklevel,f2uc,self.dst)

You should also need to add a deemphasis block, but you can leave it out
for testing.

If anybody can capture some FM-ATV and make it available online I can
see if I can make a working example.

I could capture it myself, but I don’t have an FM-ATV transmitter and
there are no stations transmitting in my area right now.

Greetings,
Martin


#3

Unfortunately, all the repeaters around here have a 1240MHz input and
10.470GHz output, so dbrx on its own won’t help (unless I will be lucky
enough to be in the uplink beam of a ham while transmitting :slight_smile: ). I am
already working on a receiving system based on an offset dish and
modified
satellite tv lna feeding an analog receiver. As soon as I will get some
result from the analog system, I will try to feed the usrp with the
signal,
provided that my hd will be fast enough…

thanks
Matteo


#4

On Wednesday 26 April 2006 14:03, Matt E. wrote:

carrier.
If it’s true DSB AM, then just tune to one side, filtering out one
sideband,
and treat it as single sideband. Would want to watch out for aliasing,
of
course, from the rejected sideband. Unless you’re real good, and set it
so
that the aliased sideband folds into the passband perfectly… :slight_smile: the
sidebands are, after all, identical in AM.

Lamar Owen
Director of Information Technology
Pisgah Astronomical Research Institute
1 PARI Drive
Rosman, NC 28772
(828)862-5554
www.pari.edu


#5

Lamar Owen wrote:

carrier.

If it’s true DSB AM, then just tune to one side, filtering out one sideband,
and treat it as single sideband. Would want to watch out for aliasing, of
course, from the rejected sideband. Unless you’re real good, and set it so
that the aliased sideband folds into the passband perfectly… :slight_smile: the
sidebands are, after all, identical in AM.

If you do what I suggested you don’t have to tune exactly because you
can do an AM detection.

Matt


#6

On Wednesday 26 April 2006 16:25, Matt E. wrote:

Lamar Owen wrote:

If it’s true DSB AM, then just tune to one side, filtering out one
sideband, and treat it as single sideband. Would want to watch out for
aliasing, of course, from the rejected sideband. Unless you’re real
good, and set it so that the aliased sideband folds into the passband
perfectly… :slight_smile: the sidebands are, after all, identical in AM.

If you do what I suggested you don’t have to tune exactly because you
can do an AM detection.

Sure; there’s the tradeoff of exactness of tuning versus received
bandwidth.
Depends entirely on which is more important, and which is simpler to
implement.

Lamar Owen
Director of Information Technology
Pisgah Astronomical Research Institute
1 PARI Drive
Rosman, NC 28772
(828)862-5554
www.pari.edu


#7

Matteo C. wrote:

hello, In the case of atv, as I believe the passband of the signal is
way too large for the throughput of usrp usb, are there any special
techniques/tricks to achieve some sort of result?

I believe that most ATV is AM (almost 12 MHz) instead of VSB (6 MHz).
If that is true, then you could do an AM demodulation in the FPGA pretty
easily. You would tune the picture carrier to the center of the
passband. Of course, the TVRX filters are only 6 MHz wide, so you’d
lost the high frequency content of the signal, and probably the sound
carrier.

Matt