食堂里撑着

MATLAB fitler和conv命令

0
阅读(2805)

在做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为响应输出的序列个数.