2.3 信号在MATLAB中的运算
利用MATLAB进行离散时间序列的基本运算,掌握基本的MATLAB函数的编写和调试方法,
同时了解对连续时间信号的时域运算,加深对信号的时域运算的理解。
信号的时移、反折和尺度变换
离散序列的时域运算包括信号的相加、相乘,信号的时域变换包括信号的移位、反折、尺度变换等。
在MATLAB中,离散序列的相加、相乘等运算是两个向量之间的运算,因此参加运算法的两个序列向量必须具有相同的维数,否则应进行相应的处理。
% E_2_17.m
% 离散序列的时移、反折、尺度变换的实现。
clc;
clear;
close all;
k = -12:12;
k1 = 2.*k+4;
f = -[stepfun(k,-3)-stepfun(k,-1)] +...
4.*[stepfun(k,-1)-stepfun(k,0)] +...
0.5*k.*[stepfun(k,0)-stepfun(k,11)];
f1 = -[stepfun(k1,-3)-stepfun(k1,-1)] +...
4.*[stepfun(k1,-1)-stepfun(k1,0)] +...
0.5*k1.*[stepfun(k1,0)-stepfun(k1,11)];
subplot(221); stem(k,f); axis([-12 12 -1 6]);
grid on; xlabel('n'); ylabel('h(n)');
text(-8,3,'f[k]');
title('原离散序列')
subplot(222); stem(k+1,f); axis([-12 12 -1 6]);
grid on; xlabel('n'); ylabel('h(n)');
text(-9.5,3,'f[k-1]');
title('离散序列的时移')
subplot(223); stem(k,f1); axis([-12 12 -1 6]);
grid on; xlabel('n'); ylabel('h(n)');
text(-8,3,'f[2k+4]');
title('离散序列的尺度变换+时移')
subplot(224); stem(2-k,f); axis([-12 12 -1 6]);
grid on; xlabel('n'); ylabel('h(n)');
text(5.5,3,'f[2-k]');
title('离散序列的反折')