arasındaki filtre ve konv arasındaki fark Ben bir MATLAB sorusu var: Bir LTI sisteminin çıktı hesaplamak için çalışıyorum ve iş için uygun olması beklenen iki farklı MATLAB işlevinin karşısında geldim, filter
ve conv
. İkisi arasındaki fark nedir? conv
iki giriş alır ve kıvrım döndürür ikenMATLAB
MATLAB
cevap
filter
, FIR ve IIR sistemleri işleyebilir. Yani conv(h,x)
ve filter(h,1,x)
aynı sonucu verirdi. Filtredeki 1, filtrenin tekrarlayıcı katsayılarının sadece [1]
olduğunu gösterir. Ancak bir IIR filtreniz varsa, conv
'u kullanamazsınız. filter
, filtre durumlarını da döndürebilir, böylece filtre geçici durumlarına neden olmadan sonraki aramalarda kullanılabilir.
conv(x,b)
tam konvolüsyonu gerçekleştirir. Sonucun uzunluğu length(x)+ length(b)-1
. filter(b,[1],x)
, x
'dan aynı uzunluğa sahip bir çıktı verir. Filtrenin gecikme çizgisini temizlemez.
x
bir sıra vektörü varsayalım. x0 = [x zeros(1,length(b)-1)]
yapın; şimdi filter(b,[1],x0)
, conv(x,b)
ile aynıdır. Bunun nedeni, ek 0’lar gecikme çizgisini temizlemek için kullanılır.
Hangisi daha mantıklı? İhtiyacın olan şeylere bağlı! bir IIR sistemidir ve ben `conv` kullanırsanız
- 1. MATLAB
- 2. MATLAB
- 3. MATLAB
- 4. Matlab
- 5. Matlab
- 6. MATLAB
- 7. MATLAB
- 8. MATLAB
- 9. MATLAB
- 10. (Matlab
- 11. MATLAB
- 12. MATLAB
- 13. MATLAB
- 14. MATLAB
- 15. MATLAB
- 16. MATLAB
- 17. matlab
- 18. MATLAB
- 19. MATLAB
- 20. MATLAB
- 21. MATLAB
- 22. Matlab
- 23. matlab
- 24. Matlab
- 25. Matlab
- 26. MATLAB
- 27. MATLAB
- 28. MATLAB
- 29. Matlab
- 30. MATLAB
öylesine kadarıyla ben okuduklarını aldım gibi, ben sadece örneklerin bir miktarda h'' uzunluğuna eşittir uygun çıktıyı alacak. Bu doğru mu? – nikos
H H (z) = [1 - 2z^-1 + z^-2]/[1 - z^-1] 'filtrelerini göz önünde bulundurun. Eğer girdiyi 'x = [1 0 0 0] 'olarak ayarlarsanız, sonuçları [1 -2 1 0]' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '[' '] ile alırsınız. [1 -1 0 0] 'ile birlikte filtre ([1, -2,1], [1, -1], x)'. – mtrw
Aslında 'conv (b, x)' ve 'filtre (b, 1, x)' tam olarak ** aynı değil. '' filter' 'x' ile aynı uzunluğa sahip bir çıktı verecektir,' 'conv'' length (x) + length (b) -1' uzunluğunda bir çıkış verecektir. – LWZ