6
Techniki Obliczeniowe i Symulacyjne
ADSL – estymacja odpowiedzi impulsowej kanału
dr inż. Jarosław Bułat
2011.04.09
Wstęp
Uproszczony schemat blokowy modemu ADSL znajduje się na poniższym rysunku. Nazwy zmiennych
odpowiadają zmiennym z programu
adsl_template.m
. Główna pętla programu odpowiada wykonaniu
wszystkich etapów przetwarzania danych w modemie (nadajnik symulacja kanału odbiornik) dla
→
→
pojedynczej ramki sygnału. Poszczególne etapy przetwarzania są reprezentowane przez funkcje
umieszczone poniżej głównej pętli programu.
uzupełnij funkcje
Mod( … ), DeMod( … ) oraz HEstim (…)
.
Funkcja
genBinData( … )
generuje prawidłową sekwencję treningową MLS (ang. Maximum Length
Sequence) bitowo, funkcja
QAM( … )
wykonuje operację QAM4 dla sekwencji MLS – konstruuje sygnał w
dziedzinie częstotliwości.
Wywołanie programu powinno wyglądać następująco:
clear
all
; close
all
;
N = 512;
% d ugo
ramki
ł
ść
Le = 16;
% d ugo
filtru TEQ
ł
ść
Lp = 32;
% d ugo
prefiksu
ł
ść
% identyfikacja odpowiedzi impulsowej kana u:
ł
mask = zeros( N/2, 1 );
% maska ob o enia bitów
ł ż
teqIR = [ 1; zeros( Le-1, 1 ) ];
% TEQ delta Kroneckera
→
FEQ = ones( N/2, 1 );
% FEQ trywialny
→
h = adsl( 500, 0, mask, teqIR, 0, FEQ );
% estymacja IR kana u
ł
Ćwiczenie 1
Wykonaj estymację nieznanej odpowiedzi impulsowej kanału transmisyjnego (
noisyChannel0
i
noisyChannel1
) za pomocą delty Kroneckera oraz sekwencji MLS. Estymację wykonaj odpowiednio przy
pomocy programów
adsl_template_est0.m
i
adsl_template_est1.m
. Narysuj odpowiedzi impulsowe
na jednym wykresie (3 pkt).
Ćwiczenie 2
Wykonaj estymację nieznanej odpowiedzi impulsowej kanału transmisyjnego za pomocą delty
Kroneckera oraz sekwencji MLS. Narysuj na jednym wykresie i porównaj odpowiedzi impulsowe
wykonane poniższymi metodami:
•
deltą Kroneckera,
•
sekwencją MLS (10 iteracji),
•
sekwencją MLS (100 iteracji),
•
sekwencją MLS (1000 iteracji).
Estymację wykonaj dla kanału transmisyjnego
noisyChannel0
lub
noisyChannel1.
(2 pkt).
Ćwiczenie 3 ***
Wyznacz widmo gęstości mocy zakłóceń z kanału
noisyChanel0
i
noisychanel1
(opcjonalnie).