我试图在MATLAB中绘制矩形窗口函数图,用于:
x[n] = u[n] - u[n-5]我已经为同样的情况编写了以下MATLAB代码:
x = [ones(1,5), zeros(1,43)]但是,这只适用于图上特定数目的点(对于这个图的ex: 48点)
我想问,在MATLAB中,是否有更好的方法来绘制离散时间信号的矩形窗口函数图?谢谢你的帮助:)
发布于 2021-03-04 14:47:54
打电话给你的信号y
x = [ones(1, 5), zeros(1, length(y) - 5)];发布于 2021-03-04 09:14:29
您可能希望为此创建一个函数:
x=@(n)double(floor(n)==ceil(n)&n>=0&n<=4);
nn=(-4:24)/4;
subplot(211);
stem(nn,x(nn));
subplot(212);
stem(nn,x(nn-1));注意,x()为非整数n返回0,这可能是明智的,也可能不合理,这取决于您如何使用该函数。
发布于 2021-03-04 16:22:09
使用匿名函数/函数句柄
要创建具有单位步长函数的离散图,我通常喜欢事先声明单元步骤,并在较大的函数中使用该步骤。在这里,我使用匿名函数/函数句柄,这些函数句柄由保存输入参数的@()指示。在这种情况下,唯一的输入参数是n。然后,向量N可以传递给x(),它将分别绘制所有的x[n]值。Density可以用来播放所绘制的茎数以及Start_Index和End_Index。

Start_Index = -10;
End_Index = 10;
Density = 1;
N = (Start_Index:Density:End_Index);
%Unit step function%
u = @(n) 1.0.*(n >= 0);
x = @(n) u(n) - u(n-5);
stem(N,x(N));
title('x[n] = u[n] - u[n-5]');
xlabel('[n]'); ylabel('x[n]');
ylim([0 1.1]);
grid onhttps://stackoverflow.com/questions/66468802
复制相似问题