|
заточеных под обработку сигналов: fft, fir-фильтры, декодеры Витерби... ну и т.п.(больше не вспоминается)
Вот к примеру бабочка из витерби на с:
//***********************************************************
metric_0=metric_old[2*i+0]+local_distance;
metric_1=metric_old[2*i+1]-local_distance;
if(metric_0>metric_1)
{
metric_new[i]=metric_0;
trn[depth_idx][i]=0;
}
else
{
metric_new[i]=metric_1;
trn[depth_idx][i]=1;
}
/*---*/
metric_0=metric_old[2*i+0]-local_distance;
metric_1=metric_old[2*i+1]+local_distance;
if(metric_0>metric_1)
{
metric_new[i+NSTATES/2]=metric_0;
trn[depth_idx][i+NSTATES/2]=0;
}
else
{
metric_new[i+NSTATES/2]=metric_1;
trn[depth_idx][i+NSTATES/2]=1;
}
//***********************************************************
Вот на asm для tms320c5409:
ld *(ldistance),T ;T=local distance
dadst *AR3,A ;AH=old[i]+T; AL=Old[i+1]-T
dsadt *AR3+,B ;BH=old[i]-T; BL=Old[i+1]+T
cmps A,*AR4+ ;new[i]=AH>AL?AH:AL; TRN<<=1;TRN|=AH>AL?0:1
cmps B,*AR5+ ;new[i]=BH>BL?BH:BL; TRN<<=1;TRN|=BH>BL?0:1
для мк примера нет, но можно себе представить....
E-mail: info@telesys.ru