题目:利用MATLAB软件画出下列信号f₂(n)与f₁(n)相加的波形,其中f₂(n)=δ(n+3)-ε(n-2),f₁(n)= δ(n-3)+ ε(n+2)
有人指点一下吗,不会用这个软件,chat上搜的但显示‘’矩阵维度必须一致。‘’,应该怎么改呢?
% 定义信号f1(n)和f2(n)
n = -10:10;
f2 = [zeros(1, 13), 1, zeros(1, 2), -1, zeros(1, 7)];
f1 = [zeros(1, 3), 1, zeros(1, 7)] + [zeros(1, 8), 1, zeros(1, 3)];
% 计算f1(n)和f2(n)的和
f = f1 + f2;
% 绘制信号的波形
stem(n, f);
xlabel('n');
ylabel('Amplitude');
title('Waveform of Signal f1(n)+f2(n)');
答案:
根据题目所给信号f2(n)和f1(n),可以用impulse函数和heaviside函数分别表示:
f2(n) = delta(n+3) - eps(n-2) f1(n) = delta(n-3) + eps(n+2)
其中delta(n)表示Kronecker delta函数,eps(n)表示符号函数。在MATLAB中,可以用impulse函数和heaviside函数分别表示Kronecker delta函数和符号函数。代码如下:
n = -10:10; f2 = impulse([1 zeros(1,3)], n); f2 = f2(1:length(n)); % make sure the length of f2 is correct f1 = impulse([zeros(1,3) 1], n) + heaviside(n-2) - heaviside(n-5);
其中,impulse函数的第一个参数是系数矩阵,第二个参数是时间变量。heaviside函数的参数为(n-2)和(n-5),分别表示延时2和5个单位。f1中的impulse函数的系数矩阵为[zeros(1,3) 1],表示一个在n=3处的脉冲。最后,用f1和f2求和得到信号f(n):
f = f2 + f1;
最后,用plot函数绘制f(n)的波形:
plot(n, f)
完整代码如下:
n = -10:10; f2 = impulse([1 zeros(1,3)], n); f2 = f2(1:length(n)); f1 = impulse([zeros(1,3) 1], n) + heaviside(n-2) - heaviside(n-5); f = f2 + f1;
plot(n, f)