Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

intfilt

Diseño de filtro FIR de interpolación

Sintaxis

b = intfilt(l,p,alpha)
b = intfilt(l,n,'Lagrange')

Descripción

b = intfilt(l,p,alpha) diseña un filtro FIR de fase lineal que realiza la interpolación de bandlimited ideal utilizando las muestras más cercanas * no-cero, cuando se utiliza en una secuencia intercalada con ceros consecutivos cada muestras.2pl-1l Asume una banda original de Alpha Times la frecuencia Nyquist. El filtro devuelto es idéntico al utilizado por. es la longitud 2 * *.interpblp-1

alfa es inversamente proporcional al ancho de banda de transición del filtro y también afecta al ancho de banda de las regiones que no cuidan en la banda de parada. La especificación de Alpha le permite especificar la cantidad del intervalo Nyquist que ocupa su señal de entrada. Esto es beneficioso, particularmente para las señales que se interpolan, porque permite que usted aumente el ancho de banda de la transición sin afectar a la interpolación y los resultados en una mejor atenuación de la banda de detención para un dado y.lp Si establece alfa en 1, se asume que la señal ocupa todo el intervalo Nyquist. El ajuste de alfa a menos de uno permite que las regiones que no cuidan en la banda de parada. Por ejemplo, si su entrada ocupa la mitad del intervalo Nyquist, podría establecer alfa a 0,5.

b = intfilt(l,n,'Lagrange') diseña un filtro FIR que realiza la Interpolación polinómica Lagrange de orden TH en una secuencia intercalada con ceros consecutivos cada muestras. tiene longitud * para par, y longitud * para impar.nl-1lb(n+1)ln(n+1)l-1n Si ambos y son incluso, el filtro diseñado no es la fase lineal.nl

Ambos tipos de filtros son básicamente paso bajo y tienen una ganancia de en la banda de paso.l

Ejemplos

contraer todo

Diseñe un filtro de interpolación digital para remuestrear una señal por siete, utilizando el método bandlimited. Especifique un factor de "bandlimitopía" de 0,5 y utilice

<math display="block">
<mrow>
<mn>2</mn>
<mo>×</mo>
<mn>2</mn>
</mrow>
</math>
muestras en la interpolación.

upfac = 7; alpha = 0.5; h1 = intfilt(upfac,2,alpha);

El filtro funciona mejor cuando la señal original es bandlimited a veces la frecuencia Nyquist.alpha Cree una señal de ruido de bandlimited generando 200 números aleatorios gaussianos y filtrando la secuencia con un filtro de paso bajo FIR de 40 º orden. Restablezca el generador de números aleatorios para obtener resultados reproducibles.

lowp = fir1(40,alpha);  rng('default') x = filter(lowp,1,randn(200,1));

Aumente la frecuencia de muestreo de la señal insertando ceros entre cada par de muestras de.x

xr = upsample(x,upfac);

Utilice la función para producir una señal interpolada.filter

y = filter(h1,1,xr);

Compensar el retardo introducido por el filtro. Graficar las señales originales e interpoladas.

delay = mean(grpdelay(h1));  y(1:delay) = [];  stem(1:upfac:upfac*length(x),x) hold on plot(y)  xlim([400 700])

también realiza la Interpolación polinómica de Lagrange.intfilt

  • La Interpolación polinómica de primer orden es sólo la interpolación lineal, que se logra con un filtro triangular.

  • La interpolación de orden zeroth se logra con un filtro de media móvil y se asemeja a la salida de una pantalla de muestra y retención.

Interpolar la señal original y superponer el resultado.

h2 = intfilt(upfac,1,'Lagrange');  y2 = filter(h2,1,xr); y2(1:floor(mean(grpdelay(h2)))) = [];  plot(y2) hold off

Algoritmos

El método bandlimited utiliza para diseñar un filtro FIR de interpolación.firls El método polinómico utiliza la fórmula de Interpolación polinómica de Lagrange en muestras igualmente espaciadas para construir el filtro apropiado.

Capacidades ampliadas

Consulte también

| | | |

Introducido antes de R2006a