Home > PR > iafet.m

iafet

PURPOSE ^

IAFET calcula la cantidad de informacion (en unidades relativas)

SYNOPSIS ^

function [IAFet,CSFet]=iafet(fe,facfrec,ft,C,nolin,estab)

DESCRIPTION ^

 IAFET calcula la cantidad de informacion (en unidades relativas) 
 asignada a la zona de frecuencia espacial fe, frecuencia temporal
 ft y contraste C por el sistema visual, segun una dependencia:
 
                         K                   K
   IAFet(fe,ft,C)= ------------ = -------------------------
                    Afe Aft AC      Cu(fe,ft) + f(fe,ft,C)

 Donde:

     Afe = Umbrales incrementales de frecuencia espacial

     Aft = Umbrales incrementales de frecuencia temporal

     AC  = Umbrales incrementales de contraste

 y consideramos que Afe y Aft son constantes.
 Asi mismo, consideramos que los umbrales incrementales de contraste vienen 
 dados por la suma de dos terminos:

     Cu(fe,ft)  = Termino independiente de C
                  Umbral absoluto de contraste para la frecuencia fe,ft
                  Calculado segun la superficie espacio-temporal de Kelly
                  NOTA: Como en la expresion de Kelly hay un log(ft/fe), 
                        cuando ft o fe sean cero, se sustituiran por 0.00001
                        para evitar singularidades. 

     f(fe,ft,C) = Termino DEPENDIENTE de C
                  Da cuenta de la no-linealidad de la respuesta del sistema a 
                  contrastes, o lo que es lo mismo, de la no-uniformidad de la
                  sensibilidad en contrastes. 
                  Es de sobra conocido que la respuesta (en el caso de ft=0)
                  es no lineal (existen expresiones explicitas para modelizar
                  esta no linealidad), pero no existen datos sobre dichas 
                  no-linealidades para frecuencias temporales no nulas.
                  (o al menos yo no los conozco... quiza Pascual si).

                  Aqui supondremos (lo cual es mucho suponer) que la no linea-
                  lidad es analoga a la que se da para ft=0.

 Podemos no considerar la no-linealidad y trabajar solo con el termino constante:
 el contraste umbral de Kelly Cu(fe,ft): aplic_no_lineal?
 Podemos 'elegir' una determinada asignacion de bits por coeficiente frecuencial,
 es decir, seleccionar una asignacion igual a la que surge de considerar la no li-
 nealidad, pero imponiendo una distribucion lineal en amplitud. (si se pone un 0
 en aplic_no_lineal?, se puede poner un 1 en ciaf_no_lin?)
 
 Para una determinada frecuencia temporal, IAFET permite calcular la IAF espacio-
 temporal para M frecuencias espaciales y N contrastes, de forma que, genera una
 matriz M*N con el resultado para cada frecuencia espacial en cada fila.
 
 NOTAS:

   * 'fe' debe ser un vector columna y C debe ser un vector fila!

   * El factor 'facfrec' actua sobre el dominio de frecuencias espaciales en el
     momento del calculo de la CSFet (Kelly 79), de forma que permite controlar
     ligeramente el ancho de banda de la CSF: Si facfrec>1 se reduce la banda 
     de paso y si facfrec<1 se aumenta.
     (Para obtener Elect. Lett. facfrec=0.75-0.8)
     Esta es una forma chapucera pero rapida de ampliar la banda de paso espacial 
     de la CSFet de Kelly 79 (que no concuerda con Kelly 86 donde aparece mayor).

 USO: [IAFet,CSFet]=iafet(fe,facfrec,ft,C,[aplic_no_lineal?(0/1) ciaf_no_lin? aplic_log?],estabiliz?(0/1));

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [IAFet,CSFet]=iafet(fe,facfrec,ft,C,nolin,estab)
0002 
0003 % IAFET calcula la cantidad de informacion (en unidades relativas)
0004 % asignada a la zona de frecuencia espacial fe, frecuencia temporal
0005 % ft y contraste C por el sistema visual, segun una dependencia:
0006 %
0007 %                         K                   K
0008 %   IAFet(fe,ft,C)= ------------ = -------------------------
0009 %                    Afe Aft AC      Cu(fe,ft) + f(fe,ft,C)
0010 %
0011 % Donde:
0012 %
0013 %     Afe = Umbrales incrementales de frecuencia espacial
0014 %
0015 %     Aft = Umbrales incrementales de frecuencia temporal
0016 %
0017 %     AC  = Umbrales incrementales de contraste
0018 %
0019 % y consideramos que Afe y Aft son constantes.
0020 % Asi mismo, consideramos que los umbrales incrementales de contraste vienen
0021 % dados por la suma de dos terminos:
0022 %
0023 %     Cu(fe,ft)  = Termino independiente de C
0024 %                  Umbral absoluto de contraste para la frecuencia fe,ft
0025 %                  Calculado segun la superficie espacio-temporal de Kelly
0026 %                  NOTA: Como en la expresion de Kelly hay un log(ft/fe),
0027 %                        cuando ft o fe sean cero, se sustituiran por 0.00001
0028 %                        para evitar singularidades.
0029 %
0030 %     f(fe,ft,C) = Termino DEPENDIENTE de C
0031 %                  Da cuenta de la no-linealidad de la respuesta del sistema a
0032 %                  contrastes, o lo que es lo mismo, de la no-uniformidad de la
0033 %                  sensibilidad en contrastes.
0034 %                  Es de sobra conocido que la respuesta (en el caso de ft=0)
0035 %                  es no lineal (existen expresiones explicitas para modelizar
0036 %                  esta no linealidad), pero no existen datos sobre dichas
0037 %                  no-linealidades para frecuencias temporales no nulas.
0038 %                  (o al menos yo no los conozco... quiza Pascual si).
0039 %
0040 %                  Aqui supondremos (lo cual es mucho suponer) que la no linea-
0041 %                  lidad es analoga a la que se da para ft=0.
0042 %
0043 % Podemos no considerar la no-linealidad y trabajar solo con el termino constante:
0044 % el contraste umbral de Kelly Cu(fe,ft): aplic_no_lineal?
0045 % Podemos 'elegir' una determinada asignacion de bits por coeficiente frecuencial,
0046 % es decir, seleccionar una asignacion igual a la que surge de considerar la no li-
0047 % nealidad, pero imponiendo una distribucion lineal en amplitud. (si se pone un 0
0048 % en aplic_no_lineal?, se puede poner un 1 en ciaf_no_lin?)
0049 %
0050 % Para una determinada frecuencia temporal, IAFET permite calcular la IAF espacio-
0051 % temporal para M frecuencias espaciales y N contrastes, de forma que, genera una
0052 % matriz M*N con el resultado para cada frecuencia espacial en cada fila.
0053 %
0054 % NOTAS:
0055 %
0056 %   * 'fe' debe ser un vector columna y C debe ser un vector fila!
0057 %
0058 %   * El factor 'facfrec' actua sobre el dominio de frecuencias espaciales en el
0059 %     momento del calculo de la CSFet (Kelly 79), de forma que permite controlar
0060 %     ligeramente el ancho de banda de la CSF: Si facfrec>1 se reduce la banda
0061 %     de paso y si facfrec<1 se aumenta.
0062 %     (Para obtener Elect. Lett. facfrec=0.75-0.8)
0063 %     Esta es una forma chapucera pero rapida de ampliar la banda de paso espacial
0064 %     de la CSFet de Kelly 79 (que no concuerda con Kelly 86 donde aparece mayor).
0065 %
0066 % USO: [IAFet,CSFet]=iafet(fe,facfrec,ft,C,[aplic_no_lineal?(0/1) ciaf_no_lin? aplic_log?],estabiliz?(0/1));
0067 %
0068 
0069 if length(nolin)==1
0070    nolin=[nolin nolin];
0071 end
0072 
0073 nolini=nolin;
0074 nolin=nolini(1);
0075 
0076 if ((nolini(1)==0)&(nolini(2)==1))
0077    nolin=1;      
0078 end
0079    
0080    fe=fe+0.00001*(fe==0);
0081    
0082    % Para ft menores que 0.4 la CSF espacio temporal de Kelly del 79 no se reduce a la
0083    % CSF espacial de Kelly del 85, con lo que utilizamos la expresion sin dependencia de
0084    % ft cuando las frecuencias temporales son lo suficientemente bajas (TODO ESTO EN CASO
0085    % DE ESTABILIZACION).
0086    
0087    if estab==1
0088       if ft>0.3   
0089          fec=facfrec*fe;
0090          CSFet=(250/1896.4)*(ft.*fec*4*pi^2).*(6.1+7.3*abs(log(ft./(3*fec))).^3).*exp(-(4*pi*(ft+2*fec)/45.9));
0091          CSFet=0.000001*(CSFet==0)+CSFet;
0092          c1=(1./CSFet)>1;
0093          c2=(1./CSFet)<1;
0094          CSFet=CSFet.*c2+c1;
0095          Cu=1./CSFet;
0096          Cu=Cu*ones(1,length(C));
0097    %      Cu=1./CSFet;
0098    %      Cu=Cu.*(Cu<1)+(Cu>=1);
0099    %      Cu=Cu*ones(1,length(C));
0100       else
0101          fm=3;           % Frec. max. sensib.
0102          p=1;            % Anch. banda
0103          cum=0.004;      % Minimo contraste umbral
0104          fe=facfrec*fe;
0105          CSFet=((fe/fm).^p).*exp(-(fe/fm));
0106          CSFet=CSFet/maxi(CSFet);
0107          CSFet=(1/cum)*CSFet;
0108          CSFet=0.000001*(CSFet==0)+CSFet;
0109          c1=(1./CSFet)>1;
0110          c2=(1./CSFet)<1;
0111          CSFet=CSFet.*c2+c1;
0112          Cu=1./CSFet;
0113          Cu=Cu*ones(1,length(C));
0114       end
0115       if nolin==1
0116          lonf=length(fe);
0117          fe=fe*ones(1,length(C));
0118          k=(-0.079389*log10(fe)+0.322725);
0119          n=0.84*((fe.^1.7)./(0.7.^1.7+fe.^1.7));
0120          C=ones(lonf,1)*C;
0121          IAFet=1./(Cu+(((k.*(C.^n))-Cu).*(C./((Cu./k).^(1./n)+C))));
0122       else
0123          IAFet=1./Cu;
0124       end
0125    else
0126       fec=facfrec*fe;
0127       CSFet=(250/1896.4)*((ft+0.1*fec).*fec*4*pi^2).*(6.1+7.3*abs(log((ft+0.1*fec)./(3*fec))).^3).*exp(-(4*pi*((ft+0.1*fec)+2*fec)/45.9));
0128       CSFet=0.000001*(CSFet==0)+CSFet;
0129       c1=(1./CSFet)>1;
0130       c2=(1./CSFet)<1;
0131       CSFet=CSFet.*c2+c1;
0132       Cu=1./CSFet;
0133       Cu=Cu*ones(1,length(C));
0134    %   Cu=1./CSFet;
0135    %   Cu=Cu.*(Cu<1)+(Cu>=1);
0136    %   Cu=Cu*ones(1,length(C));
0137       if nolin==1
0138          fe=facfrec*fe;
0139          lonf=length(fe);
0140          fe=fe*ones(1,length(C));
0141          k=(-0.079389*log10(fe)+0.322725);
0142          n=0.84*((fe.^1.7)./(0.7.^1.7+fe.^1.7));
0143          C=ones(lonf,1)*C;
0144          IAFet=1./(Cu+(((k.*(C.^n))-Cu).*(C./((Cu./k).^(1./n)+C))));
0145       else
0146          IAFet=1./Cu;
0147       end
0148    end
0149 
0150 if ((nolini(1)==0)&(nolini(2)==1))
0151    s=size(IAFet);
0152    iafet=sum(IAFet')';
0153    IAFet=iafet*ones(1,s(2));
0154 end

Generated on Wed 29-Nov-2006 16:19:19 by m2html © 2003