Interpolación de Señales

download Interpolación de Señales

If you can't read please download the document

description

Este documento presenta la metodología que se realiza para recuperar una señal análoga que se muestrea

Transcript of Interpolación de Señales

  • Tratamiento de SealesLaboratorio 6 (2h)

    Filtrado, interpolacin y diezmado

    Curso 2011/2012

    Objetivos: El objetivo de esta prctica es que el alumno se familiarice con las tcnicas de interpolacin ydiezmado y su contenido terico se corresponde con los Captulos 2, 3 y 4 del libro Discrete-Time SignalProcessing de A. V. Oppenheim y R. W. Schafer, Prentice Hall, 1999 (segunda edicin).

    Los apartados etiquetados como Ejercicio debern resolverse en el laboratorio. El alumno construira partir de los mismos un fichero ejecutable con un men que permita acceder a cada uno de ellos se-paradamente. Para poder resolver alguno de los ejercicios de esta prctica es necesario traer unosauriculares.

    Interpolacin/diezmado de secuencias

    Interpolar consiste bsicamente en estimar o reconstruir valores de la seal entre los valores disponibles(correspondientes a los instantes de muestreo). En la Figura 1 se muestra el esquema general para interpolaruna seal por un factor L. donde xe[n] viene dada por la siguiente expresin:

    LL

    piL

    piL

    x[n] xe[n] xi[n]

    Figura 1: Diagrama de bloques de un interpolador.

    xe[n] =

    {x[n/L], n = 0,L,2L, . . . ,0, en otro caso.

    El filtro paso bajo interpola entre los valores distintos de cero de xe[n] para generar la seal interpoladaxi[n]. El filtro interpolador ideal de la Figura 2.1 tiene la siguiente respuesta impulsional:

    hideal[n] =

    sen(npi/L)npi/L

    , n "= 0,1, n = 0.

    Dicho filtro es claramente irrealizable, por lo que debemos conformarnos con una aproximacin. Engeneral, una interpolacin precisa requiere un filtro paso bajo de orden elevado y diseado cuidadosamente.No obstante, hay dos aproximaciones muy sencillas que se utilizan a menudo: interpolacin de orden cero e

    1

  • interpolacin lineal. En el primer caso la seal interpolada xi[n] se construye sencillamente repitiendo cadavalor de x[n] L veces:

    xi[n] =

    xe[0], n = 0, 1, . . . ,L 1,xe[L], n = L,L+ 1, . . . , 2L 1,xe[2L], n = 2L, 2L + 1, . . . , 3L 1,...

    lo cual se consigue convolucionando xe[n] con la siguiente respuesta al impulso:

    hoc[n] = [n] + [n 1] + + [n (L 1)]. (1)

    La interpolacin lineal se lleva a cabo mediante un sistema con respuesta al impulso

    hlin[n] =

    {1 |n|/L, |n| ! L 1,0 en otro caso.

    Ntese que el interpolador de orden cero es causal, mientras que tanto el interpolador lineal como elideal son no causales.

    Ejercicio 1. Grabe un fichero de voz con una frecuencia de muestreo 11025 Hz (puede usar tambin elfichero frase1.wav). Crguelo en Matlab1 y escchelo empleando la instruccin soundsc(y,fs).

    El objetivo de este ejercicio es interpolar por L = 2 la seal de voz anterior. Para ello, en primer lugarprograme una funcin expand(x,L) que devuelva la secuencia expandida con ceros xe[n]. La secuenciaresultante xe[n] ha de tener una longitud L veces la de x[n]. Tras la expansin, realice el filtrado empleandolos siguientes filtros interpoladores:

    a) Un interpolador de orden cero (es un filtro FIR con respuesta impulsional dada en (1)).

    b) Un filtro paso bajo FIR de frecuencia de corte c = pi/2 y orden 24 (disee el filtro empleando lainstruccin fir1). Es una aproximacin del interpolador ideal.

    Escuche las seales interpoladas con ambos filtros: tenga en cuenta que al haber interpolado la sealha de emplear en la instruccin soundsc una fs (velocidad del D/A) doble de la frecuencia de muestreoempleada en la grabacin (frecuencia del A/D). Si consideramos que la seal original comienza en n = 0,dibuje las secuencias interpoladas con los dos filtros en el intervalo n=0:49.

    Ejercicio 2. Se desea reproducir la seal de voz grabada previamente frase1.wav, pero empleando ahorauna frecuencia de muestreo de 8000 Hz. Mediante tcnicas de interpolacin y diezmado altere la frecuenciade muestreo de la seal original (puede considerarla aproximadamente de 11000 Hz) para conseguir que lavoz suene bien con la nueva frecuencia de muestreo.

    Ejercicio 3. Muestreamos la seal sinusoidal x(t) = cos(2pi10t) con una frecuencia de muestreo fs = 100Hz en los instantes t=0:1/fs:2 para as obtener una secuencia x[n]. El objetivo de este ejercicio es obtener,a partir de x[n] y mediante tcnicas de diezmado e interpolacin, una nueva secuencia xd[n] cuyas muestrassean las de la seal sinusoidal original pero en los instantes temporales td = T : 1/fs : 2 + T , siendoT = T/2 = 1/(2fs). Compare xd[n] con la secuencia ideal obtenida muestreando directamente x(t) en losinstantes td. Represente un segmento de unas 50 muestras en el que comparen ambas seales. Tenga encuenta que los filtrados que realice para obtener xd[n] introducen un cierto retardo, que debe corregir a lahora de realizar la comparacin.

    1Para cargar desde Matlab un fichero de voz emplee la instruccin [y,fs]=wavread(frase1.wav).

    2