Tengo una pregunta de MATLAB: Estoy tratando de calcular la salida de un sistema LTI y encontré dos funciones de MATLAB diferentes que se supone que son apropiadas para el trabajo, filter
y conv
. ¿Cuál es la diferencia entre los dos?Diferencia entre filtro y conv en MATLAB
Respuesta
filter
puede manejar sistemas FIR e IIR, mientras que conv
toma dos entradas y devuelve su convolución. Por lo tanto, conv(h,x)
y filter(h,1,x)
daría el mismo resultado. El filtro de 1 en indica que los coeficientes recursivos del filtro son solo [1]
. Pero si tiene un filtro IIR, no puede usar conv
. filter
también puede devolver los estados del filtro, de modo que pueda usarse en llamadas posteriores sin incurrir en transitorios del filtro.
Consulte la documentación conv y filter para obtener más información.
conv(x,b)
realiza la convolución completa. La longitud del resultado es length(x)+ length(b)-1
. filter(b,[1],x)
da una salida de la misma longitud que x
. No vacía la línea de retardo del filtro.
Supongamos x
es un vector de fila. Hacer x0 = [x zeros(1,length(b)-1)]
; ahora filter(b,[1],x0)
es lo mismo que conv(x,b)
. Esto se debe a que los 0 adicionales se utilizan para enjuagar la línea de retardo.
¿Cuál es más razonable? ¡Depende de lo que necesites!
- 1. Diferencia entre búsqueda y filtro
- 2. Diferencia entre búsqueda y filtro en jquery
- 3. ¿Cuál es la diferencia entre & y && en MATLAB?
- 4. diferencia entre el filtro gabor y la transformada gabor
- 5. Filtro Gaussiano 3D en MATLAB
- 6. Lucene: ¿Cuál es la diferencia entre Query y filtro
- 7. Diferencia entre el filtro de Django() y get() métodos
- 8. Diferencia entre el selector CSS y el filtro jQuery?
- 9. diferencia entre filtro con múltiples argumentos y filtro de cadena en django
- 10. Diferencia entre las funciones numel y longitud de MATLAB
- 11. ¿Diferencia entre el mapeo de servlet/servlet y el mapeo de filtro/filtro?
- 12. Filtro Gaussiano en un vector en Matlab
- 13. Filtro Matlab() con SciPy lfilter()
- 14. Interoperando entre Matlab y C#
- 15. Diferencia entre. y: en Lua
- 16. Diferencia entre == y === en JS
- 17. Diferencia entre '' y "" en Python
- 18. Diferencia entre '.' y "." en java
- 19. anotación() y texto() en Matlab
- 20. MySQL: diferencia entre ', `,' y"
- 21. Diferencia entre. y #
- 22. Diferencia entre el filtro y el oyente en el servlet (Java EE)
- 23. Diferencia entre & y &
- 24. ¿Diferencia entre == y caso?
- 25. La diferencia entre $ * y $ @
- 26. Diferencia entre objeto y *?
- 27. VBA: Diferencia entre y y +
- 28. Diferencia entre "y" y "donde" en une
- 29. Diferencia entre "y" y && en Ruby?
- 30. ¿Cuál es la diferencia entre un script y una función en MATLAB?
así que por lo que he leído, si se trata de un sistema IIR y uso 'conv', obtendré el resultado correcto solo para una cantidad de muestras igual a la longitud de' h'. ¿Es eso correcto? – nikos
Considere el filtro 'H (z) = [1 - 2z^-1 + z^-2]/[1 - z^-1]'. Si configura la entrada a 'x = [1 0 0 0]', obtendrá los resultados '[1 -2 1 0]' con 'conv ([1, -2,1], x)' y ' [1 -1 0 0] 'con' filtro ([1, -2,1], [1, -1], x) '. – mtrw
En realidad 'conv (b, x)' y 'filter (b, 1, x)' no son ** exactamente ** lo mismo. 'filter' le dará una salida con la misma longitud que' x', mientras que 'conv' dará una salida con longitud de' length (x) + length (b) -1'. – LWZ