我正在尝试计算LTI system的输出。我遇到了两个不同的Matlab函数,它们应该适用于这个工作:filter
和conv
。他们两个有什么区别?
conv(x,b)
执行完整的卷积。结果的长度是length(x)+ length(b)-1
。 filter(b,[1],x)
给出的输出长度与x
相同。它不会刷新过滤器的延迟线。
假设x
是行向量。制作x0 = [x zeros(1,length(b)-1)]
;现在filter(b,[1],x0)
和conv(x,b)
一样。这是因为额外的0用于刷新延迟线。
哪一个更合理?这取决于你需要什么!