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 > > _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio