Reply by aubert August 1, 20062006-08-01
hi everybody,
i'm trying to generate an etsi filter in order to simulate a channel. I
did it but there is still one problem, i don't manage to take in account
taps delays..
I read on the net we have to use the power delay profile of the filter but
i'm not able to manage to coding of this method.

I found a matlab script, can you tell me what do you think about: I don't
understand the aim of this script.

thanks

>%calcul du profil de puiss qui fait intervenir les delais des coeffs >fe = 10; >tau_max = 390e-9; >tau_rms = 50e-9; >t = 0:1/fe:tau_max; >PP = exp(-(t/tau_rms)); %cf. article : "channel and interference
mode..."
>%normalisation : >PP = PP/norm(PP);
i tried also this one:
>fe = 10; > >mat_taps = zeros(size(tau,2),2); >%la premi�re colonne de mat_taps correspond aux d�lais >%la deuxi�me colonne correspond � la puissance relative en dB >mat_taps(:,1) = tau.'; >mat_taps(:,2) = P.';%d�j� en lin�aire >nb_taps = size(mat_taps,1); > >%Transform�e de Fourier (approximation) : >vect_deltas = zeros(nb_taps,1); >vect_deltas(1:nb_taps-1) =
mat_taps(2:nb_taps,1)-mat_taps(1:nb_taps-1,1);
>vect_deltas(nb_taps) = vect_deltas(nb_taps-1); %le dernier tau = l�avant >dernier >vect_amplitudes = zeros(nb_taps,1); %la moyenne entre deux taps >vect_amplitudes = 0.5*(mat_taps(1:nb_taps-1,2)+mat_taps(2:nb_taps,2)); >vect_amplitudes(nb_taps) = mat_taps(nb_taps,2); >dw = 5; >vect_pulsations = 0:dw:pi*fe; >for num = 1:length(vect_pulsations) > vect_expos = exp(-j*vect_pulsations(num)*vect_deltas); > fw(num) = sum(vect_amplitudes.*vect_expos.*vect_deltas); >end > >%Transform�e inverse (approximation) : >vect_t = 0:1/fe:mat_taps(nb_taps,1); >for num = 1:length(vect_t) > vect_expos = exp(j*vect_pulsations*vect_t(num)); > PP(num) = (0.5/pi)*dw*sum(fw.*vect_expos); >end > >PP = abs(PP); >PP = PP/norm(PP); % normalisation