Ho una domanda MATLAB: Sto cercando di calcolare l'output di un sistema LTI e sono arrivato attraverso due diverse funzioni MATLAB che dovrebbero essere appropriate per il lavoro, filter
e conv
. Qual è la differenza tra loro due?Differenza tra filtro e conv in MATLAB
risposta
filter
può gestire sistemi FIR e IIR, mentre conv
accetta due input e restituisce la loro convoluzione. Quindi conv(h,x)
e filter(h,1,x)
darebbero lo stesso risultato. Il filtro 1 in indica che i coefficienti ricorsivi del filtro sono solo [1]
. Ma se hai un filtro IIR, non puoi usare conv
. filter
può anche restituire gli stati del filtro, in modo che possa essere utilizzato nelle chiamate successive senza incorrere in transitori di filtro.
conv(x,b)
esegue la convoluzione completa. La lunghezza del risultato è length(x)+ length(b)-1
. filter(b,[1],x)
fornisce un'uscita della stessa lunghezza di x
. Non scarica la linea del ritardo del filtro.
Assumere x
è un vettore riga. Crea x0 = [x zeros(1,length(b)-1)]
; ora filter(b,[1],x0)
corrisponde a conv(x,b)
. Questo perché gli 0 aggiuntivi vengono utilizzati per svuotare la linea di ritardo.
Quale è più ragionevole? Dipende da ciò che ti serve!
- 1. Differenza tra ricerca e filtro
- 2. Differenza tra filtro e comprensione lista
- 3. Qual è la differenza tra filtro (| x |) e filtro (| & x |)?
- 4. Differenza tra servlet/mappatura servlet e filtro/mappatura del filtro?
- 5. Qual è la differenza tra | e || in MATLAB?
- 6. Qual è la differenza tra & e && in MATLAB?
- 7. Qual è la differenza tra * e. * In MATLAB?
- 8. Differenza tra filtro e listener in Servlet (Java EE)
- 9. Filtro passa-alto in MATLAB
- 10. Differenza tra le funzioni di Numel e lunghezza di MATLAB
- 11. Python: Differenza tra filtro (funzione, sequenza) e mappa (funzione, sequenza)
- 12. Lucene: Qual è la differenza tra query e filtro
- 13. Differenza tra MATLAB calcolo parallelo terminologie
- 14. Differenza tra filtro media e gaussiano nel risultato
- 15. Differenza tra na(). Cadere() e filtro (col.isNotNull) (Apache Spark)
- 16. Differenza tra `% in%` e `` ==
- 17. Comunicazione tra Python e Matlab
- 18. Filtro Matlab() con SciPy lfilter()
- 19. MATLAB: filtro segnale ECG rumoroso
- 20. Differenza tra "" e "" in Python
- 21. Differenza tra $ @ e $! in perl
- 22. Differenza tra. e: in Lua
- 23. differenza tra flush e close function in caso di macchina da filtro in java
- 24. Qual è la differenza tra "interruttore" e "filtro" in Traccia in .NET?
- 25. Differenza tra. e #
- 26. Differenza tra "o" e "||"
- 27. MySQL: Differenza tra ",", "e"
- 28. Differenza tra "e" e && in Ruby?
- 29. Differenza tra oggetto e *?
- 30. Differenza tra ". +" E ". +?"
così da quanto ho letto, se si tratta di un sistema IIR e utilizzo 'conv', otterrò l'output corretto solo per una quantità di campioni uguale alla lunghezza di' h'. È corretto? – nikos
Considera il filtro 'H (z) = [1 - 2z^-1 + z^-2]/[1 - z^-1]'. Se imposti l'input a 'x = [1 0 0 0]', otterrai i risultati '[1 -2 1 0]' con 'conv ([1, -2,1], x)' e ' [1 -1 0 0] 'con' filtro ([1, -2,1], [1, -1], x) '. – mtrw
In realtà 'conv (b, x)' e 'filter (b, 1, x)' non sono ** esattamente ** uguali. 'filter' ti darà un output con la stessa lunghezza di' x', mentre 'conv' darà un output con lunghezza di' length (x) + length (b) -1'. – LWZ