21.04.2013 Views

ETTC'2003 - SEE

ETTC'2003 - SEE

ETTC'2003 - SEE

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

free space in output buffer(s). Sizes of input<br />

buffers depend on operation performed by<br />

other modules and cannot be foreseen.<br />

Taking into account amount of data that can<br />

be read and free available space, the module is<br />

able to operate some computations. In<br />

general, it does not consume all input data nor<br />

use all available output space. If any data<br />

located in input buffer is not consumed, it will<br />

be processed in a prior way at next module<br />

call.<br />

This operating mode ensure the data<br />

continuity between modules: There is no loss<br />

of data.<br />

Data and free space management in a<br />

JUZZLE module is as follows<br />

input buffer 'A'<br />

Free space<br />

Data<br />

APPLICATIONS<br />

Module<br />

Figure 5 : Module buffers<br />

Coding / Decoding<br />

output buffer 'A'<br />

output buffer 'B'<br />

The specificity of coding or decoding modules<br />

is rate change. The size of the buffer has to be<br />

chosen equal to the minimum in bits of the<br />

data available at input and the free space<br />

available at output, taking into account bit<br />

rate ratio.<br />

For convolutional codes, delays appear at<br />

transmitter (code memory) and at receiver<br />

(Viterbi path length). These delays are<br />

undertaken by a shorter first amount of<br />

produced data in the output buffer.<br />

Modulation / Demodulation<br />

As the previous modules, the modulation and<br />

demodulation modules introduce rate<br />

changes.<br />

Filtering<br />

Filtering modules introduce not only but also<br />

processing constraints especially when<br />

developed for accelerating computations.<br />

One of available techniques is to use fast<br />

convolution ‘Overlap And Add’ method.<br />

Principle of this method is to perform<br />

convolution by signal blocks constituted of 2 n<br />

samples.<br />

Let us consider, for instance, that filtering<br />

module needs to operate blocks of 1024<br />

samples. Noting ‘Nin’ the number of samples<br />

available in input buffer and ‘Nout’ the number<br />

of samples available in output buffer. As<br />

module can only process blocks of 1024<br />

samples, the number of blocks that can be<br />

processed is the minimum of Nin/1024 and<br />

Nout/1024 .<br />

Obviously, some of input samples may not be<br />

processed and all free space in output buffer<br />

may not be used.<br />

Hereafter figure describes an example with<br />

numerical data<br />

Before filtering<br />

After filtering<br />

7153 samples Filter<br />

[1024]<br />

9654 free positions<br />

MIN [ 7153 / 1024 , 9654 / 1024 ] = 6<br />

module can process 6 blocks of 1024 (=6144) samples<br />

1009 samples Filter<br />

[1024]<br />

3510 free positions<br />

Figure 6 : Buffering example for filtering module<br />

5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!