Sign in

username or email:

password:



Not a member?
Forgot your password?

Search compdsp



Search tips


Discussion Groups

Free Online Books

See Also

Embedded SystemsFPGA

Discussion Groups | Comp.DSP | Power Delay Profile

There are 1 messages in this thread.

You are currently looking at messages 1 to .


Is this discussion worth a thumbs up?

0

Power Delay Profile - aubert - 2006-08-01 14:06:00

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



______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.