如何在MATLAB上执行x[2n], x[n/2],x[n-3]和x[n+2] ?我认为这包括缩放和移动



使用说明如下:

创建一个最大幅值为(15 *0.1)的随机信号,有11个采样值,并将最中间的值居中于x轴的0。用下面给出的格式写下随机值。x (n) =(值)

绘制图x[n],在一个干图中表示11个样本。然后执行如下操作:

  1. 绘制图x[2n]以表示11个样本在一个干图中。
  2. 绘制图x[n/2],在一个主干图中表示11个样本。
  3. 用图x[n-3]表示11个样本在一个主干图中。
  4. 用图x[n+2]表示11个样本在一个主干图中。

图形应该与这个链接中的图形相似:

https://cnx.org/contents/KilsjSQd@6.2 e6-BCH5U@1/Discrete-Time-Signal-Operations

for x[2n] I tried

xn =(15 * 0.1)。*兰德(11);创建随机值

n = (5);

n1 = 2*n;

茎(n1, xn);

n值只是乘以2,xn的所有值仍然被绘制出来,根据我提供的链接,这应该不是这种情况。

我认为你遗漏了两个关键点:

  1. 如果你要将你的随机数抽取2倍,如果你要最终得到11点,你需要从两倍的点数开始。
  2. 将索引乘以2不会丢弃所有其他点。

下面是一些代码,演示了创建更多的随机点,以便在抽取后得到正确的数字,并创建一个不加1的use变量,以便您可以抽取。

c = 2; % decimation factor
num_pts_after_dec = 11;
num_pts_before_dec = num_pts_after_dec * c;
xn=(15 *0.1) * rand(1, num_pts_before_dec); 
use = 1:c:length(xn); % Create index for the decimation
xn = xn(use); % Do the decimation
n=(1:length(xn)) - (num_pts_after_dec + 1) / 2;
stem(n,xn);

最新更新