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

Reply via email to