Forum: GNU Radio State of HDTV 2

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Charles S. (Guest)
on 2006-04-06 01:31
(Received via mailing list)
On Wed, 2006-04-05 at 10:16 -0700, Eric B. wrote:

>   ./configure
>   make && make check && make install
>

Ok, found it - If I understand correctly, it looks like the next block
to finsh is the convolutional interleaver, and it's reverse the
convolutional de-interleaver.


Existing 2.0 layers:
--------------------

Src (mpeg transport)                Dst
       v                               ^
Randomizer                          Derandomizer
       v                               ^
Reed-Soloman Encoder      ----->    RS Decoder





Yet to be done:
---------------

       v                                     ^
Convolutional Interleaver     ->      De-Interleaver
       v                                     ^
Trellis Encoder               ->      Viterbi Decoder
       v                                     ^
Field Sync Multiplexor        ->      Field Sync Demux
       v                                     ^
Symbol Mapper                         Equalizer
       v                                     ^
Weaver Modulator Head                 Field Sync Checker
       v                                     ^
FIR Filter (lp root raised cosine)    Bit Timing Loop3
       v                                     ^
Weaver Modulator Tail                 Remove DC
                                             ^
       |                              FIR Filter, Image Remove
       |                                     ^
       |                              FPLL Carrier Tracking PLL
       |                                 and down converter
       |        IF                           ^
       +----------------->            FIR Filter (lp root raised
                                                       cosine)



Actually the FIR filters already exist, as does the carrier tracking
PLL and mixer. Since we start with a complex source already (usrp
in place of the mc4020 'short' data source) image removal won't be
necessary (I guess). So really all we need is the logic from 6 blocks
repackaged for a receiver, and 6 for a transmitter to do stage-by-stage
testing.  IIUC.

--Chuck
Eric B. (Guest)
on 2006-04-06 01:52
(Received via mailing list)
On Wed, Apr 05, 2006 at 05:27:51PM -0400, Charles S. wrote:
> >
> >   ./bootstrap
> >   ./configure
> >   make && make check && make install
> >
>
> Ok, found it - If I understand correctly, it looks like the next block
> to finsh is the convolutional interleaver, and it's reverse the
> convolutional de-interleaver.

That's right!

When you loop the deinterleaver back, you'll need to account for the
52 segment delay through it.  Using gr.skiphead is probably the
easiest solution (thanks Martin!).

>
>        v                                     ^
>        |                              FPLL Carrier Tracking PLL
> repackaged for a receiver, and 6 for a transmitter to do stage-by-stage
> testing.  IIUC.

Yep, you're on the right track!

Eric
Charles S. (Guest)
on 2006-04-06 23:25
(Received via mailing list)
On Wed, 2006-04-05 at 14:51 -0700, Eric B. wrote:

> >        v                                     ^
> > Convolutional Interleaver     ->      De-Interleaver


Looking closer at the De/Interleaver - I see the implementation
code (atsci) for that already exists but is convolutional
interleaver == data interleaver ?

Old: GrAtscInterleaver.cc  GrAtscDeinterleaver.cc

There's: atsci_data_interleaver (which includes Deint-) and it's test
qa_atsci_data_interleaver

but then there's also:  qa_convolutional_interleaver,
qa_interleaver_fifo as well as convolutional_interleaver.h and
interleaver_fifo.h.

--Chuck
Charles S. (Guest)
on 2006-04-06 23:46
(Received via mailing list)
On Thu, 2006-04-06 at 15:23 -0400, Charles S. wrote:

> Looking closer at the De/Interleaver - I see the implementation
> code (atsci) for that already exists but is convolutional
> interleaver == data interleaver ?
>

Ok, I see that  atsci_data_interleaver.h  includes
convolutional_interleaver.h   includes
interleaver_fifo.h,  so the answer is YES.

So, all we need to do is look at how atsc_rs_encode and
atsc_rs_decode both use atsci_reed_solomon and use
that as an example of how to create an  atsc_interleaver
and atsc_deinterleaver  from atsci_data_interleaver.

--Chuck
Eric B. (Guest)
on 2006-04-07 01:09
(Received via mailing list)
On Thu, Apr 06, 2006 at 03:45:48PM -0400, Charles S. wrote:
>
> So, all we need to do is look at how atsc_rs_encode and
> atsc_rs_decode both use atsci_reed_solomon and use
> that as an example of how to create an  atsc_interleaver
> and atsc_deinterleaver  from atsci_data_interleaver.

Pretty much so.

Also be sure to look at GrAtscDeinterleaver.cc and
GrAtscInterleaver.cc, especially the comments about "pipeline info is
handled in the primitive".  Looks like that's handled differently in
the RS encoder than in the interleaver.


  for (unsigned int i = 0; i < output.size; i++){
    // pipeline info is handled in the primitive
    deinterleaver.deinterleave (out[i], in[i]);
  }


Eric
This topic is locked and can not be replied to.