[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] Re: Amateur television ATV
From: |
Martin Dvh |
Subject: |
[Discuss-gnuradio] Re: Amateur television ATV |
Date: |
Wed, 26 Apr 2006 15:56:34 +0200 |
User-agent: |
Debian Thunderbird 1.0.2 (X11/20051002) |
Matteo Campanella 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/(2*math.pi*max_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
> Regards
> Matteo
>
>