On Sat, Mar 11, 2006 at 01:46:49PM -0800, [EMAIL PROTECTED] wrote:
> Hello Eric,
>
> My name is Rafael, and I am an electrical enginnering student of
> Brasilia University, Brazil. I research about the aplication of
> Software Defined Radio in a set-top-box for SBDTV (Brazilian Digital
> Television System) in my scientific iniciation project. But I don't
> find the source code of the ATSC receiver in the GNU Radio installed
> in my computer. I'd be pleased if you could help me.
>
> Thanks,
> Rafael Schena
Hi Rafael,
Thanks for your interest in GNU Radio and the ATSC code. The ATSC
code was written using the previous generation GNU Radio framework,
which ended in the 0.9 release. All the ATSC code can be found in the
gnuradio-0.9.tar.gz tarball available at ftp.gnu.org and other GNU
repositories.
However, the code also exists in the gnuradio-core CVS repository
under gnuradio-core/src/lib/atsc. The blocks with names such as Gr*
will need some tweaking to use in the new framework. I expect that
the files which have all lower case names are probably usable as is.
The very front end of the receiver will require a bit of
modifications. It was originally developed assuming that there was an
external source providing real samples at 20 MS/s, with the TV station
centered at an IF of 5.75 MHz. With the USRP, you'll get complex
baseband data instead of real. This will require a bit of
restructuring of first couple of blocks in the pipeline to work with
complex data.
Probably the easiest first cut (least amount of code to touch), is to
convert the 8 MS/s complex baseband data from the USRP to 16 MS/s real
data with an IF of 4 MHz. The existing timing recovery code should
work fine with real data at 16 MS/s. You'll just need to tweak a few
constants in the code. The "Right Answer" would be to fold this
complex to real conversion into the initial pilot tone tracking code (FPLL).
I hope this gives you a bit of an outline of what's required to get it
running under the USRP. It will require a bit of work, but the result
will be an ATSC receiver running under the current code base. This
would be useful to lots of people!
I'd be delighted to answer any other questions you may have.
If you haven't already, you definitely want to take a look at the ATSC
specs available at www.atsc.org The two most relevant documents are:
ATSC Digital Television Standard, Rev. D w/ Amendment 1
http://www.atsc.org/standards/a_53d.pdf
ATSC Recommended Practice - Guide to the Use of the ATSC Digital Television
Standard
A/54A 4 December 2003:
This guide provides tutorial information and an overview of the
digital television system defined by ATSC Standard A/53, ATSC
Digital Television Standard. In addition, recommendations are given
for operating parameters for certain aspects of the DTV system.
http://www.atsc.org/standards/practices/a_54a.pdf
I've also attached the README.signal_flow file that gives the high
level overview of how the ATSC Tx and Rx were put together.
Eric
This describes the signal flow through the ATSC Transmitter
and Receiver programs.
ATSC Transmitter
================
module input output
notes
-------------------- ---------------- -------------------
--------
VrFileSource "MPEG transport stream" atsc_mpeg_packet
GrAtscRandomizer atsc_mpeg_packet atsc_mpeg_packet_no_sync
whiten data with LFSR
GrAtscRSEncoder atsc_mpeg_packet_no_sync
atsc_mpeg_packet_rs_encoded Reed-Soloman encoder
GrAtscInterleaver atsc_mpeg_packet_rs_encoded
atsc_mpeg_packet_rs_encoded convolutional interleaver
GrAtscTrellisEncoder atsc_mpeg_packet_rs_encoded atsc_data_segment
trellis encoder
GrAtscFieldSyncMux atsc_data_segment atsc_data_segment
add in field syncs
GrAtscSymbolMapper atsc_data_segment float
map [0,7] to +/- {1,3,5,7} and add pilot
GrWeaverModHead float float,float
front half of Weaver VSB modulator
GrFIRfilterFFF (2x) float float
low pass root raised cosine (matched filter)
GrWeaverModTail float,float short
back half of Weaver VSB modulator
VrFileSink short "16-bit passband data"
ATSC Receiver
=============
module input output
notes
-------------------- ---------------- -------------------
-------
VrFileSource "16-bit passband data" short
GrConvertSF short float
convert short to float
GrFIRfilterFFF float float
band pass root raised cosine centered at IF freq (matched filter)
GrAtscFPLL float float
carrier tracking freq and phase lock loop with down converting mixer
GrFIRfilterFFF float float
low pass to kill unwanted mixer image
GrRemoveDcFFF float float
remove DC offset prior to symbol timing module
GrAtscBitTimingLoop3 float float,syminfo
track symbol & segment timing and do fractional interpolation
GrAtscFieldSyncChecker float,syminfo float,syminfo
look for field sync patterns
GrAtscEqualizer float,syminfo float,syminfo
LMS equalizer
GrAtscFieldSyncDemux float,syminfo atsc_soft_data_segment
remove field syncs and pack into data segments
GrAtscViterbiDecoder atsc_soft_data_segment
atsc_mpeg_packet_rs_encoded Viterbi decoder (12 seg delay)
GrAtscDeinterleaver atsc_mpeg_packet_rs_encoded
atsc_mpeg_packet_rs_encoded convolutional de-interleaver (52 seg delay)
GrAtscRSDecoder atsc_mpeg_packet_rs_encoded atsc_mpeg_packet_no_sync
Reed-Solomon decoder
GrAtscDerandomizer atsc_mpeg_packet_no_sync atsc_mpeg_packet
de-whiten with LFSR
VrFileSink atsc_mpeg_packet "MPEG transport stream"
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio