【问题标题】:How can I create left shifted discrete time signal in Matlab如何在 Matlab 中创建左移离散时间信号
【发布时间】:2013-12-08 02:14:29
【问题描述】:
 x[n]=n if 0<= n <=10 else x[n]=0;

我可以使用 stem 绘制 x[n+3] 和 x[n-3]。但我需要将这两个信号相加。在我的试验中,我无法克服负指数的问题。有什么办法吗 y[n]= x[n+3]+x[n-3]?

在类似的主题中,只回答了不会导致负指数的右移。

【问题讨论】:

  • 那么计算x[n+3]和x[n-3]有什么问题呢?
  • 语法建议您只使用数组。为 x 和 y 定义一个函数,这样可以消除负数索引的问题。
  • @Parag 问题是我不能输入 x[n-3] 因为 n 不能是负数。
  • @DanielR 谢谢我解决了。你能添加它的答案,以便其他人将来可以使用
  • 您还有一个else 条件。这基本上照顾了一切

标签: matlab signals indices


【解决方案1】:

MATLAB 要求您对每个逻辑案例进行唯一存储。你写它的方式可能是:

if (0 <= n) && (n <= 10)
    x(n) = n;
else
    x(n) = 0;
end

将其组合成一个更长的表达式:

if (0 <= n 0 <= 10)

不起作用,并且总是返回 true。

【讨论】:

  • 它本身不是代码。我只是将它写在代码括号中以突出显示它。我没有尝试在 Matlab 中输入 if( 0
【解决方案2】:

解决方案: 创建适当的函数而不是数组。

function O=Y(n)
if n<-3 && n>13
    O=0;
else
    O=X(n-3)+X(n+3);
end

还有

function O=X(n)
 if n>=0 && n<=10
     O=n;
 else
     O=0;
 end;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多