juanjijisuan2.m

来自「经典《信号与系统》教程的matlab例程,对深入理解信号与系统相关概念有很大帮助」· M 代码 · 共 37 行

M
37
字号
%本程序用来求两个离散信号的卷积y(n)=x(n)*h(n),并且绘制出x(n)、h(n)和y(n)的波形图
%
%执行本程序时,程序提示你输入x(n)、h(n)的表达式,形式如下:
%      x(n)=[1,4,3,5,1,2,3,5]
%      nx=-4:3  nx表示序列  x(n)中各样值对应的横坐标n          
%      
%      h(n)=[4,2,4,0,4,2]
%      nh=-4:2  nh表示序列  h(n)中各样值对应的横坐标n 
%
%输入两个信号
x=input('请输入序列x(n)=')
nx=input('请给定x(n)各样值对应的横坐标范围nx=')
h=input('请输入序列h(n)=')
nh=input('请给定h(n)各样值对应的横坐标范围nh=')

%求卷积
[y,ny]=convm(x,nx,h,nh)

%扩展输入和冲激响应序列
n=length(ny);
x1=zeros(1,n);
h1=zeros(1,n);
x1(find(ny>=min(nx))&(ny<=max(nx))==1)=x;
h1(find(ny>=min(nh))&(ny<=max(nh))==1)=h;


subplot(3,1,1)
stem(ny,x1)
title('输入x(n)');
subplot(3,1,2)
stem(ny,h1)
title('系统冲激响应h(n)');
subplot(3,1,3)
stem(ny,y)
title('输出y(n)');

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?