【问题标题】:Ways to plot rectangular window function (u[n]-u[n-5]) in MATLABMATLAB中绘制矩形窗函数(u[n]-u[n-5])的方法
【发布时间】:2023-03-27 06:33:01
【问题描述】:

我正在尝试在 MATLAB 中绘制矩形窗口函数 Graph:-

x[n] = u[n] - u[n-5]

我已经为此编写了以下 MATLAB 代码:-

x = [ones(1,5), zeros(1,43)]

但是,这仅适用于图表上特定数量的点(例如:此图表为 48 个点)

我想问是否有更好的方法在 MATLAB 中为离散时间信号绘制矩形窗函数图?感谢您的帮助:)

【问题讨论】:

  • x = [ones(1, 5), zeros(1, length(y) - 5)]; ?调用了你的信号y
  • @MatteoV 是的,这正是我所做的!感谢您的帮助!
  • 我会复制它作为答案。

标签: matlab


【解决方案1】:

调用你的信号y

x = [ones(1, 5), zeros(1, length(y) - 5)];

【讨论】:

    【解决方案2】:

    您可能想为此创建一个函数:

    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,这取决于您使用函数的方式,这可能是明智的,也可能不是明智的。

    【讨论】:

      【解决方案3】:

      使用匿名函数/函数句柄

      要创建具有单位步长函数的离散图,我通常喜欢事先声明单位步长并在更大的函数中使用它。在这里,我使用匿名函数/函数句柄,它们由 @() 表示,其中包含输入参数。在这种情况下,唯一的输入参数是n。然后可以将向量N 传递给x(),它将分别绘制所有x[n] 值。 Density 可用于处理绘制的茎数以及Start_IndexEnd_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 on
      

      【讨论】:

        猜你喜欢
        • 2018-06-06
        • 1970-01-01
        • 2013-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多