数字信号处理实验 matlab 离散卷积 差分系统(二)

离散卷积函数

function [f,k]=dconv(f1,f2,k1,k2) %f=f1*f2
f=conv(f1,f2)
k0=k1(1)+k2(1);  %f非零样值起点位置
k3=length(f1)+length(f2)-2;  %f非零样值宽度
k=k0:k0+k3   %f非零样值序号向量
subplot(2,2,1)
stem(k1,f1)
axis([(min(min(k1),min(k2)-1)),(max(max(k1),max(k2))+1),(min(f)-0.5),(max(f)+0.5)])
title('f1(k)')
xlabel('k')
ylabel('f1(k)')
subplot(2,2,2)
stem(k2,f2)
axis([(min(min(k1),min(k2)-1)),(max(max(k1),max(k2))+1),(min(f)-0.5),(max(f)+0.5)])
title('f2(k)')
xlabel('k')
ylabel('f2(k)')
subplot(2,2,3)
stem(k,f)
axis([(min(min(k1),min(k2)-1)),(max(max(k1),max(k2))+1),(min(f)-0.5),(max(f)+0.5)])
title('f1(k)*f2(k)')
xlabel('k')
ylabel('f(k)')
h=get(gca,'position');h(3)=2.5*h(3);
set(gca,'position',h) %横坐标扩大2.5

例程

f1=ones(1,4);
k1=0:3;
f2=ones(1,3);
k2=0:2
dconv(f1,f2,k1,k2)

运行结果
在这里插入图片描述解差分方程
在这里插入图片描述代码

a=[1 -3 2]
b=[1 0 2];
k=0:20;
x=(1/2).^k;
dk=zeros(1,length(k));
dk(1)=1;                %单位单位冲击序列
uk=ones(1,length(k));
subplot(4,1,1)
stem(k,x)
title('输入序列x(k)')
ydk=filter(b,a,dk);    %单位冲激响应样值
subplot(4,1,2)
stem(k,ydk)
title('单位冲激响应')
yuk=filter(b,a,uk);    %单位阶跃响应样值
subplot(4,1,3)
stem(k,yuk)
title('单位阶跃相应')
y=filter(b,a,x);
subplot(4,1,4)
stem(k,y)
title('激励信号为x(k)的零状态响应')

运行结果
在这里插入图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值