Version 17 (modified by ismael, 14 years ago)

--

FlexWaves Project

This project maintains waveforms and components for the ALOE Project.

The license of the components source code may change from one to another, even from one file to another thus, we encourage the reader to read in each source file the specific license before using and distributing it.

Some of the waveforms and/or objects under this folder have been developed by graduate and under-graduate students. This means that the level of optimization and compliance with the standards is not guaranteed. However, they may be useful for testing purposes or evaluating the performance of the algorithms under different situations or platforms.

NOTE: Waveforms are now being distributed with the ALOE packages. They are already preconfigured and ready to be used. You will find the latest ALOE release in the QuickStartGuide page. This page just describes the applications and some important notes about them.

ALOE Signal Processing Components

The following table summarizes the available components.

Module Name Description
gen_cconv/gen_viterbi Generic convolutional coder and decoder, customizable polynomial and constraint length
gen_decimator Customizable decimator or interpolator
gen_interleaver Generic interleaver with row and column permutation support
gen_source/gen_binsource Generic bitstream or signal source
gen_chmux Generic N:M signal multiplexer
gen_timemux Generic time serial multiplexer
gen_channel_gauss AWGN generator
gen_crc 8, 12, 16, 24 bit cyclic redundancy check, supporting a generic polynomial
gen_digitalmodem BPSK, QPSK, 4-QAM, 8-PSK, 16-QAM digital modulator and demodulator
gen_punct/gen_depunc Generic Puncturing and de-Puncturing module
utran_turbocoder UMTS turbocoder
utran_turbodecoder UMTS turbodecoder
utran_ratem UMTS Rate Matching
wimax_channel WiMAX SUI channel
wimax_ldpc WiMAX LDPC encoder/decoder
wimax_interleaver WiMAX interleaver/deinterleaver
wimax_rsalomon WiMAX Red-Salomon encoder/decoder
wimax_symbolmap WiMAX Symbol mapper/demapper
wimax_rando WiMAX Randomizer/deRandomizer

ALOE Waveforms

The following waveforms are available:

  • Digital Modem
  • UTRAN transmitter/receiver
  • WiMAX transmitter/receiver (with convolutional code)
  • WiMAX LDPC (just the encoder/decoder)

Digital Modem

This waveform is a simple digital modem (without channel). It can be configured to perform BPSK, QPSK, QAM4 and QAM16. The modulator/demodulator is a single program which can be instantiated as a modulator or demodulator. A binary source and a sink generate and reads random binary data.

The application can be loaded launching the following command on the runph command prompt:

runph$: phload modem

The waveform can be configured using initialization parameters (at load) or using statistics (at runtime).

  • Initialization configuration: In the $ALOE/example-repository/statsman/modem directory, you can edit the following parameters:
    • source.params: numbits variable selects the number of bits to generate each time slot.
    • modulator.params: modulation variable configures the modulation: 0=BPSK, 1=QPSK, 2=QAM4, 3=PSK8, 4=QAM16
    • demodulator.params: modulation variable must match the same variable in the modulator.params file Note: The rest of parameters should not be changed.
  • Run-time Statistics configuration:
    • numbits variable at the source component. For instance, to generate 4096 bits, issue the following command at the runph command prompt:
runph$: statset modem source numbits 4096

And the following variables can be captured from the GUI (or reported to a file from the command prompt):

  • Object: modulator variables: out_signal_i and out_signal_q captures the I/Q output signals


UTRAN

This waveform partially implements the bit-level processing of a UTRAN transmitter and receiver. The transmitter part consist on the following modules:

binsource(*) -> crc(*) -> coder(*) -> ratematching(*) -> interleaving(*) -> timemux(*) -> trchmux -> interleaving -> channel

Where (*) indicates that two transport channels transmit in parallel. The receiver chain implements the same modules in the opposite direction.

- The coder is a UMTS Turbo Coder for the data channel and a Convolutional Coder for control . - The ratematching component is specifically designed for the UMTS chain and can not be configured to operate in another context.

The waveform must operate at a period of 10ms, so this is the time-slot that should be fixed (see /usr/local/etc/platforms.conf). All components of each transport channel can operate at higher periods (20, 40, 80 ms). The component 'timemux' performs a time (de)-multiplexing of data frames and delivers 1 packet every 10ms to the channel.

The application can be loaded launching the following command on the runph command prompt:

runph$: phload utran

The waveform can be configured using initialization parameters (at load) or using statistics (at runtime).

  • Initialization configuration: In the $ALOE/example-repository/statsman/utran directory, you can edit the following parameters:
    • uectrl_tx.params: reference_mode Set the UTRAN reference transmission mode: 0=64kbps, 1=144kbps, 2=384kbps
    • channelGauss.params: EbNo Set the channel generated noise level. If 100 dB is selected, no noise computations are performed.
    • turbodecoder.params: max_iterations Set the turbo decoder maximum number of iterations
    • turbodecoder.params: dynHalt Set the turbo decoder dynamic halt threshold (stopping criteria) Note: The rest of parameters should not be changed.
  • Run-time Statistics configuration:
    • reference_mode variable at the uectrl_tx component.
    • EbNo variable at the channelGauss component.
    • dynHalt variable at the turbodecoder component.
    • max_iterations variable at the turbodecoder component. For instance, change the maximum number of decoder iterations with the following command:
runph$: statset utran turbodecoder max_iterations 8 

And the following variables can be captured from the GUI (or reported to a file from the command prompt):

  • Object: channelGauss variable: Signal_Amplitude captures 128 samples of the BPSK signal with added noise
  • Object: turbodecoder variable: realHalt minimum log-likelihood value of the last iteration
  • Object: turbodecoder variable: iterations number of performed iterations

WiMAX

This waveform partially implements the bit-level processing of a WiMAX transmitter and receiver using the convolutional code (LDPC will be integrated soon). The transmitter part consist on the following modules:

datasource -> Randomizer -> Redsalomon -> Convcoder -> Puncturing -> Interleaver -> Symbolmapper -> channelSUI

- The transmitter reads a file ($ALOE/example-repository/data/rfc793.txt), sends it and stops. The receiver computes bit error rate and prints it.

The waveform must operate at a period of 10ms, so this is the time-slot that should be fixed (see /usr/local/etc/platforms.conf).

The application can be loaded launching the following command on the runph command prompt:

runph$: phload wimaxbitlevel

WiMAX LDPC

This simple waveform just consists on a data binary generator, LDPC encoder and decoder and bit error rate computation sink component.

The application can be loaded launching the following command on the runph command prompt:

runph$: phload wimaxldpc


Back to Main Page