Perfilado de sección

    • Reconstrucción ideal

      • fórmula de reconstrucción ideal
      • consideraciones prácticas
    • yr(t) = Σk x[k] sinc( (t - k Ts)/Ts )

    • Filtrado antisolapamiento

      • necesidad de filtrado previo al muestreo
      • consideraciones prácticas, banda de guarda entre fN y fs/2
    • Ejemplos de aplicación del teorema del muestreo.
      Filtrado anti-solapamiento.
      Reconstrucción ideal.
      Consideraciones prácticas de filtros anti-alias y de reconstrucción.
    • Procesamiento en T.D. de señales en T.C.

      • deducción de hd[n] a partir de Hc(f)
    • Procesamiento digital de señales en tiempo continuo.

      Cambio de frecuencia de muestreo:

      • Expansor y compresor
      • Decimado: Fs -> Fs/M
      • Interpolación (sobremuestreo): Fs -> Fs.L
    • Cambio de frecuencia de muestreo

      • Elementos auxiliares: compresor y expansor
      • Reducción de Fs por un factor entero (decimado)
      • Aumento de Fs por un factor entero (interpolación, sobremuestreo)
      • Cambio de Fs por un factor racional
    • Expansor y compresor en octave

      function y = comprimir( x, M )
        y = x(1:M:end);
      endfunction
      
      function y = expandir( x, L )
        y = reshape( [ x; zeros( L-1, length(x)) ], 1, L*length(x));
      endfunction
      

      Y de regalo, un graficador de espectro:

      function espectro( B, colorspec )
        if(nargin<2)
          colorspec = "k";
        end
      
        # usamos freqz en vez de fft,
        # más cómodo para tener eje de frecuencias
        [h,w] = freqz(B,[1],-pi:1/500:pi);
      
        # frecuencia normalizada pi -> 1
        plot(w/pi,abs(h),colorspec);
      
      endfunction
      

      Para decimar e interpolar, pueden usar estas aproximaciones de filtros pasabajos (FIR de tamaño 2N+1, diseñados por ventana):

      L=3;M=2;
      N=15;n=-N:N; ventana = hamming( length( n ) )';
      hi=sinc(n/L) .* ventana;
      hd=sinc(n/M)/M .* ventana;
      
      xdec = comprimir( conv( x, hd ), M );
      xint = conv( expandir( x, L ), hi );