Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

interp

Interpolación: aumentar la tasa de muestreo por un factor entero

Descripción

ejemplo

y = interp(x,r) aumenta la tasa de muestreo de la señal de entrada x por un factor de r.

y = interp(x,r,n,cutoff) especifica dos valores adicionales:

  • n es la mitad del número de valores de la muestra original utilizado para interpolar la señal expandida.

  • cutoff es la frecuencia de corte normalizada de la señal de entrada, especificada como una fracción de la frecuencia de Nyquist.

[y,b] = interp(x,r,n,cutoff) también devuelve los coeficientes del filtro utilizados para la interpolación.

Ejemplos

contraer todo

Cree una señal sinusoidal muestreada a 1 kHz. Interpólela por un factor de cuatro.

t = 0:1/1e3:1;
x = sin(2*pi*30*t) + sin(2*pi*60*t);
y = interp(x,4);

Represente las señales originales e interpoladas.

subplot(2,1,1)
stem(0:30,x(1:31),'filled','MarkerSize',3)
grid on
xlabel('Sample Number')
ylabel('Original')

subplot(2,1,2)
stem(0:120,y(1:121),'filled','MarkerSize',3)
grid on
xlabel('Sample Number')
ylabel('Interpolated')

Figure contains 2 axes objects. Axes object 1 with xlabel Sample Number, ylabel Original contains an object of type stem. Axes object 2 with xlabel Sample Number, ylabel Interpolated contains an object of type stem.

Argumentos de entrada

contraer todo

Señal de entrada, especificada como un vector.

Tipos de datos: double | single

Factor de interpolación, especificado como entero positivo.

Tipos de datos: double | single

Mitad del número de muestras de entrada utilizadas para la interpolación, especificada como entero positivo. Para obtener los mejores resultados, utilice n no mayor que 10. El filtro de interpolación de paso bajo tiene una longitud de 2 × n × r + 1.

Tipos de datos: double | single

Frecuencia de corte normalizada de la señal de entrada, especificada como escalar real positivo no mayor que 1 que representa una fracción de la frecuencia de Nyquist. Un valor de 1 significa que la señal ocupa todo el intervalo de Nyquist.

Tipos de datos: double | single

Argumentos de salida

contraer todo

Señal interpolada, devuelta como vector. y es r veces tan largo como la entrada original, x.

Tipos de datos: double | single

Coeficientes de filtro de interpolación de paso bajo, devueltos como vector columna.

Tipos de datos: double | single

Algoritmos

La interpolación aumenta la tasa de muestreo original de una secuencia a una tasa más elevada. Es lo opuesto a la decimación. interp inserta ceros en la señal original y, después, aplica un filtro de interpolación de paso bajo a la secuencia expandida. La función utiliza el algoritmo de interpolación de paso bajo 8.1 que se describe en [1]:

  1. Expanda el vector de entrada hasta la longitud correcta insertado ceros entre los valores de datos originales.

  2. Diseñe un filtro FIR simétrico especial que permita que los datos originales pasen sin cambios y que interpole para minimizar el error cuadrático medio entre los puntos interpolados y sus valores ideales. El filtro que utiliza interp es el mismo que el filtro que devuelve intfilt.

  3. Aplique el filtro al vector de entrada expandido para producir la salida.

Referencias

[1] Digital Signal Processing Committee of the IEEE Acoustics, Speech, and Signal Processing Society, eds. Programs for Digital Signal Processing. New York: IEEE Press, 1979.

[2] Oetken, G., Thomas W. Parks, and H. W. Schüssler. “New results in the design of digital interpolators.” IEEE® Transactions on Acoustics, Speech, and Signal Processing. Vol. ASSP-23, No. 3, June 1975, pp. 301–309.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido antes de R2006a