我在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')
答案 0 :(得分:2)
你选择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 :(得分:0)
在您的情况下,您正在处理离散时间信号。因此,对于离散时间,它们完全相同。离散时间表示时间向量具有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
是保证make 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
之类的值;句点必须是整数值。
具有相同相位的相同周期的信号意味着它们看起来完全相同。