MATLAB fitler和conv命令
0赞
发表于 2016/9/25 10:42:32
阅读(1518)
在做dsp的matlab实验.对于filter命令的总结.还没学到数字滤波一节,暂时写下自己浅显的理解.
一.
filter以例子说明问题.
n = 0:40;
x1 = cos(2*pi*0.1*n);
num = [2.2403 2.4908 2.2403];
den = [1 -0.4 0.75];
ic = [0 0]; % Set zero initial conditions
y1 = filter(num,den,x1,ic);
ic用于指定初始条件
对应的序列为y[n]-0.4y[n-1]+0.75y[n-2]=2.2403x[n]+2.4908x[n-1]+2.2403x[n-2]
ic指定x的初始状态
此处y1的长度为输入序列x1的长度.
引用一个网页,他的讲解不错http://www.docin.com/p-318611828.html
二.
卷积公式:z(n)=x(n)*y(n)= ∫x(m)y(n-m)dm.
h = [3 2 1 -2 1 0 -4 0 3];% impulse response
x = [1 -2 3 -4 3 2 1];% input sequence
y = conv(h,x);
n = 0:14;
y的长度为 h+x-1
三.
y=impz(p,d,n)命令用来实现冲击响应的,p,d的定义与filter相同,n为响应输出的序列个数.