Signal Processing Algorithm

This lab is obsolete! See ASP – Advanced methods for signal analysis and processing in power-line systems on Electrical Engineering, Technology Platform Smart Grid

This lab is focused about multicarrier transmission (ADSL-like modem simulation). The aim of this lab is to create simplified version of ADSL modem in Matlab code and to understand signal processing during data transmission.

2009/2010, 14:00-15:30, 15:30-17:00, ”multimedia” lab (lab-L3 or 105), building D-6

Rules:

  • labs are obligatory
  • only one absence without excuse is allowed
  • each absence above this limit automatically decrease final grade by 0.5 degree
  • we are planning 13 labs (detailed instruction are presented below, instruction for each lab will be available at least 2 weeks before lab)
  • each lesson will be assessment by means of 0…10 points plus some additional points (optional tasks)
  • during each lesson, each student will be evaluated from the work prepared to this lesson or from the work performed during the lesson
  • the final grade (2.0 – 6.0) is calculated from the sum of points from all lessons, 120 points 130 points (edit: there was 13 topics) results in 5.0 grade
  • we are NOT planing any final test
  • You don’t pass unless obtain 51% of total points!!!

Evaluation:

  • final degree: xxxx
  • first evaluation test: 21.06.2010 – in case it is not possible or inconvenient we can schedule it later (please contact with me as soon as possible)
  • second (final) evaluation test from SPA lab: 21 September 2010 (21.09.2010) 14:00. Final exam from SPA lecture by Prof. Tomasz Zieliński 27.09.2010 9:00

Outline of the SPA course (lab)

Below you can find outline of the whole laboratory. Keep in mind it’s draft, not the final outline.

  • Introduction: signals, basic signal generation and analysis
  • lesson 1: channel identification
  • lesson 2: initial setup
  • lesson 3: initial setup II
  • lesson 4: identification of noisy channel
  • lesson 5: SNR estimation
  • lesson 6: SNR estimation – continuation
  • lesson 7: bit loading
  • lesson 8: data transmission
  • lesson 9: data transmission – continuation
  • lesson 10: noisy environment (AWGN, NBI)
  • lesson 11: noisy environment (NBI, Impulse)
  • lesson 12: Time EQualizer
  • lesson 13: Time EQualizer – continuation (lab 12 + lab 13 = 10 points)
  • lesson 14: Evaluation I
  • lesson 15: Evaluation II

ADSL-like modem:

Aim of the lab: numerical simulation of multicarrier transmission on the basis of ADSL-like modem.

Simplified diagram of ADSL modem is presented in the picture below.

All parts from the diagram should be designed, tested and simulated during the course. Marks from the diagram corresponds to the algorithm outline in Matlab language presented below.

Table 1: adsl simulation framework

function y = adsl( iter, trType, bitMask )
% iter: number of frame (modem iteration)
% trType: transmission type:
% 0=training signal {1,2,3,4}, no prefix
% 1= data random{0...2^bitMask}), prefix
% bitMask: (N/2,1) number of bit transmitted in each subchannel 0 means no transmission in this subchannel

Le = 16; % length of TEQ filter
Lp = 32; % length of prefix
N = 512; % frame size sithout prefix
fp = 2.208e6; % sampling frequency in time domain
sigPower = 23; % time domain signal energy in dBm
noiseType = 'AWGN'; % type of noise: AWGN, NBI, Impulse, etc...
noisePower = -500; % time domain noise power in dBm/Hz
channelNr = 10; % type of channel {1...8, 10, 11}

teqIR = zeros( Le, 1 );
teqIR(1) = 1; % impulse response of time domain equalizer
D = 0; % window delay
feq = ones( N, 1 ); % FEQ (Frequency EQualizer)

rand( 'state', 111 ); % initialize random number generator
randn( 'state', 112 );
% main loop of adsl modem
% one iteration means processing one frame of data
for i = 1 : iter
X1 = genBinData( trType, bitMask );
X2 = QAM( X1, bitMask );
x3 = Mod( X2, N );
x4 = Prefix( x3, trType, Lp );
x5 = NormEnergy ( x4, sigPower );
y1 = channel( x5, channelNr );
y2 = AddNoise ( y1, noiseType, noisePower, fp );
y3 = DeNormEnergy ( y2, sigPower );
y4 = TEQ( y3, teqIR );
y5 = DePrefix ( y4, trType, N, D, Lp );
Y6 = DeMod ( y5, N );
Y7 = FEQ( Y6, feq );
Y8 = DeQAM ( Y7, bitMask );
err = cmp( X1, Y8, X2, Y7 );
end

You can execute adsl function in the following way:

lesson 1: channel identification

clear all;
mask=zeros( 2561 );
mask(10)=2;
adsl( 151, mask );

which means: allocate only one subchannel number 10 and transmit 15 frames of data. In the function, the following settings are provided:

  • power of noise is set to -500 dBm/Hz (the value is below thermal noise, which means there is no noise),
  • channel number: 10 (loaded from file, prepared in advance), simple ”no channel” case – Kronecker delta
  • other settings from ADSL standard, All missing functions have to be prepared except ”channel()” one which is done as an example. Detailed algorithms are provided during the course as well as in the book: Tomasz P. Zieliński ,,Cyfrowe przetwarzanie sygnałów” (in Polish) 1st edition 2005. Whole work is divided in the following lessons: