Traduction d'un alogrithmme de IDL en C

Fermé
gregory - 22 juin 2005 à 11:15
 greg - 23 juin 2005 à 11:01
Bonjour,
je suis en train de developper une application sous linux. Pour cela je me sert du langage IDL (le langage scientifique developpé par rsi). Je dois transformer un algo de mon code concernant du filtrage recursif d'IDL en C, je suis parvenu a un resultat mais ce n'est pas le meme que quand je fais tourner ma routine IDL... si quelqu'un a une proposition pour transformer ce qui suis en C que je compare avec mon code...
Merci d'avance...
Greg

le code IDL:
for K = 1 , number_of_dyn -1 do begin
Y(K) = ( TOTAL( BC[nbc-K>0:nbc ]*U[K-nbc>0:K ] )
- TOTAL( AC[nac-K>0:nac-1]*Y[K-nac>0:K-1] ) ) /AC[nac]
voila la bete...
Merci de vos réponses...

7 réponses

il n'y a vraiment que ca comme code IDL???
0
non, ca c'est la partie que j'ai du mal a passe en C...

for i = 0, dimy - 1 do begin
for j = 0 , dimx/2 - 1 do begin

Y = COMPLEXARR(number_of_dyn)
U=complete_data(j,i,*)
Y[0] = B[nb]*U[0] / A[na]

for K = 1 , number_of_dyn -1 do begin
Y(K) = ( TOTAL( B[nb-K>0:nb ]*U[K-nb>0:K ] ) $
- TOTAL( A[na-K>0:na-1]*Y[K-na>0:K-1] ) ) /A[na]
endfor


resultat(j,i,*) = Y(*)

endfor
endfor

voila un peu plus de code en IDL, mais c'est vraiment la partie centrale qui me pose un probleme...
0
juste des questions : à quoi sert le "$", et à quoi correspond le truc du type B[nb-K>0:nb ]??
0
le $ sert juste a dire qu'on va a la ligne en IDL.
quand aux tableaux B et A se sont les tableaux contenant les valeurs des coefficients de mon filtre... na et nb sont les degres des polynomes A et B...
B et A sont des tableaux de dimension 1.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ok thx je me penche sur le probleme...
0
ok...merki...
0
C'est bon j'ai trouvé d'ou venait mon erreur...elle venait pas du code C traduisant le filtrage recursif mais du fait que dans mon programme j'utilise une fenetre coulissante et que je recalculait l'integralité de mon vecteur Y a chaque fois, alors que losrqu'il est initialisé, il suffi juste de calculer la derniere valeur...
merci de ton aide...
0