📄 matlab.txt
字号:
% (1) 用impz()函数求冲激响应:
M=100;
num=[1 -1 0];
den=[1 0.75 0.125];
y=impz(num,den,M);
subplot(2,2,1);
stem(y);
xlabel('时间');
ylabel('振幅');
title('单位冲激响应:impz()函数方法')
% (2) 用filter()函数求冲激响应:
n=0:100;
x=[1 zeros(1,100)];
num=[1 -1 0];
den=[1 0.75 0.125];
y=filter(num,den,x); %filter函数给出的点数与输入的x序列点数一样,所以为了不漏点,输入序列的点数尽量多补0,但用此函数求冲激响应不好
subplot(2,2,2);
stem(n,y);
xlabel('时间');
ylabel('振幅');
title('单位冲激响应:filter()函数方法')
% (3) 用filter()函数求余弦输入响应:
n=0:100;
x=cos(2*pi*0.47*n);
num=[1 -1 0];
den=[1 0.75 0.125];
y=filter(num,den,x); %注意:“>>”后加一个空格再写指令,这样就可以直接COPY到MATLAB的命令窗执行,%是注释符号
subplot(2,2,3);
stem(n,y)
xlabel('时间');
ylabel('振幅');
title('余弦输入响应: filter()函数方法')
% (4) 用conv()函数求余弦响应:
n=0:100;
x1=cos(2*pi*0.47*n);
x2=[1 zeros(1,100)];
num=[1 -1 0];
den=[1 0.75 0.125];
y=filter(num,den,x2);
z=conv(x1,y); % z的点数为x1的加上y(也即X2的)的再减1
subplot(2,2,4);
m=0:200;
stem(m,z); % conv()可以显示201点,而用filter()仅显示101点
axis([0 100 -10 10]); % 为了便于比较两种方法的值,减小本方法的横坐标尺度与filter()方法匹配
xlabel('时间');
ylabel('振幅');
title('余弦输入响应:conv()函数方法')
% (5) 系统零极点分布图:
num=[1 -1 0];
den=[1 0.75 0.125];
zplane(num,den);
grid
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -