Matlab中filter和conv函数的区别

MATLAB中,可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积。

(1)即y=filter(p,d,x)用来实现差分方程,d表示差分方程输出y的系数,p表示输入x的系数,而x表示输入序列。输出结果长度数等于x的长度。

实现差分方程,先从简单的说起:
filter([1,2],1,[1,2,3,4,5]),实现y[k]=x[k]+2*x[k-1]
y[1]=x[1]+2*0=1    (x[1]之前状态都用0)
y[2]=x[2]+2*x[1]=2+2*1=4

(2)y=conv(x,h)是用来实现卷级的,对x序列和h序列进行卷积,输出的结果个数等于x的长度与h的长度之和减去1。

卷积公式:z(n)=x(n)*y(n)= ∫x(m)y(n-m)dm.

程序一:以下两个程序的结果一样

(1)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;

         subplot(2,1,1);

         stem(n,y);

         xlabel('Time index n'); ylabel('Amplitude');

        title('Output Obtained by Convolution'); grid;

(2)x1 = [x zeros(1,8)];

          y1 = filter(h,1,x1);

          subplot(2,1,2);

         stem(n,y1);

         xlabel('Time index n'); ylabel('Amplitude');

         title('Output Generated by Filtering'); grid;


程序二:filter和conv的不同

               x=[1,2,3,4,5];
               h=[1,1,1];

               y1=conv(h,x)
               y2=filter(h,1,x)
               y3=filter(x,1,h)

 结果:y1 =1     3     6     9    12     9     5

             y2 = 1     3     6     9    12

             y3 =1     3     6  

可见:filter函数y(n)是从n=0开始,认为所有n<0都为0;而conv是从卷积公式计算,包括n<0部分。

                因此filter 和conv 的结果长短不同

程序三:滤波后信号幅度的变化

                num=100; %总共1000个数
                x=rand(1,num); %生成0~1随机数序列 
                x(x>0.5)=1;
                x(x<=0.5)=-1;
                h1=[0.2,0.5,1,0.5,0.2];
                h2=[0,0,1,0,0];
                y1=filter(h1,1,x);
                y2=filter(h2,1,x);
                n=0:99;
                subplot(2,1,1);
                stem(n,y1);
                subplot(2,1,2);
                stem(n,y2);

可见:滤波后信号的幅度是发生变化的,最大幅度值也会变化。

  • 10
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值