两个不同的正弦波产生相同的输出?

Two different sine waves produce same output?

我在 matlab 中 运行 这段代码并期望得到不同的数字,但我得到的是相同的(在标题旁边)。我很确定他们应该产生不同的输出,但事实并非如此。这里发生了什么?

n = [0 : 63];

x1 = sin(2*pi*n/16);
figure(1);
stem(n, x1);
title('x_1(n) = sin(2*pi*n/16)')
ylabel('x_1(n)')
xlabel('n')

x2 = sin(2*pi*17*n/16);
figure(3);
stem(n, x2);
title('x_2(n) = sin(2*pi*17*n/16)')
ylabel('x_2(n)')
xlabel('n')

您选择 n 的方式很不走运,以至于您碰巧只对两个波相同的点进行了采样。尝试 n = [0 :0.25: 63];

这两个图都提高了采样率。红色表示您采样的相同点:

ezplot 是避免此类问题的好选择:

ezplot(@(n)(sin(2*pi*n/16)))
hold on
ezplot(@(n)sin(2*pi*17*n/16))

在您的例子中,您正在处理离散时间信号。因此,它们对于 离散时间 完全相同。离散时间表示时间向量具有 1 个时间步长 (fs = 1)。如果您更改了时间步长,这意味着它不再是离散时间信号,并且周期计算将以不同的方式执行(我的意思是您不需要 k 值来使周期离散,见下文k 是什么)所以它们看起来会是不同的信号,因为它们的周期不同。

是的,情节是相同的。因为,他们的周期是一样的。

让我们计算一下他们的经期:

第一个信号

x1 = sin(2*pi*n/16);

周期方程:

2*pi/16 = 2*pi*k/(N1)
     N1 = 16*k   | k=1
     N1 = 16

其中 N1 是第一个信号的周期。 k 是由于保证使 N1 离散意味着整数值。 k 也是一个整数值 (k=1,2,3, ...)。您必须选择 k 作为它的最小值,使 N1 离散。所以这里基本k选为1.

第二个信号

x2 = sin(2*pi*n*17/16);

周期方程:

2*pi*17/16 = 2*pi*k/(N2)
        N2 = 16/17*k   | k=17
        N2 = 16

其中选择基本 k 作为 17。因为您正在处理离散时间并且在离散时间域中没有像 16/17 这样的值;周期必须是 整数 值。

具有相同周期和相同相位的信号,意味着它们看起来相同。