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.

sosfilt

Filtrado digital IIR de segundo orden (bicuadrático)

Sintaxis

y = sosfilt(sos,x)
y = sosfilt(sos,x,dim)

Descripción

y = sosfilt(sos,x) aplica el filtro digital de sección de segundo orden al vector.sosx La salida,, es la misma longitud que.yx

Nota

Si cualquiera de las entradas es de precisión única, el filtrado se implementa mediante la aritmética de precisión simple.sosfilt La salida, es de precisión única.y

representa el filtro digital de sección de segundo orden ()sosHz

H(z)=k=1LHk(z)=k=1Lb0k+b1kz1+b2kz21+a1kz1+a2kz2.

por una matriz de-por-6 que contiene los coeficientes de cada sección de segundo orden en sus filas.L

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

Si es una matriz, aplica el filtro a cada columna de forma independiente.xsosfiltx La salida es una matriz del mismo tamaño, que contiene los datos filtrados correspondientes a cada columna de.yx

Si es una matriz multidimensional, filtra a lo largo de la primera dimensión nonsingleton.xsosfilt La salida es una matriz multidimensional del mismo tamaño que, que contiene los datos filtrados correspondientes a cada fila y columna de.yxx

La matriz de secciones de segundo orden, la señal de entrada, o ambas, pueden ser de precisión doble o simple.sosx Si al menos una entrada es de precisión única, el filtrado se realiza con aritmética de precisión única.

y = sosfilt(sos,x,dim) opera a lo largo de la dimensión.dim

Ejemplos

contraer todo

Carga.chirp.mat El archivo contiene una señal, que tiene la mayor parte de su poder arriba, o la mitad de la frecuencia Nyquist.yFs/4 La frecuencia de muestreo es de 8192 Hz.

load chirp  t = (0:length(y)-1)/Fs; 

Diseña un filtro de paso alto Butterworth de 7º orden para atenuar los componentes de la señal de abajo.Fs/4 Utilice una frecuencia de corte normalizada de 0,48 π Rad/sample. Exprese los coeficientes del filtro en términos de secciones de segundo orden.

[zhi,phi,khi] = butter(7,0.48,'high'); soshi = zp2sos(zhi,phi,khi);  freqz(soshi) 

Filtre la señal. Visualice las señales filtradas originales y de paso alto. Utilice la escala del mismo eje para ambos trazados.y

outhi = sosfilt(soshi,y);  subplot(2,1,1) plot(t,y) title('Original Signal') ys = ylim;  subplot(2,1,2) plot(t,outhi) title('Highpass-Filtered Signal') xlabel('Time (s)') ylim(ys) 

Diseñe un filtro de paso bajo con las mismas especificaciones. Filtre la señal y compare el resultado con el original. Utilice la escala del mismo eje para ambos trazados.y El resultado es principalmente ruido.

[zlo,plo,klo] = butter(7,0.48); soslo = zp2sos(zlo,plo,klo);  outlo = sosfilt(soslo,y);  subplot(2,1,1) plot(t,y) title('Original Signal') ys = ylim;  subplot(2,1,2) plot(t,outlo) title('Lowpass-Filtered Signal') xlabel('Time (s)') ylim(ys) 

Referencias

[1] Orfanidis, S.J., Introduction to Signal Processing, Prentice-Hall, Englewood Cliffs, NJ, 1996.

Capacidades ampliadas

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

Consulte también

| |

Introducido antes de R2006a