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