根据我的理解,下面的代码创建了一个以256 Hz采样的1秒长正弦波,这意味着一个128 Hz的Nyquist速率。因此,如果一个正弦波的频率是100赫兹,它不应该经历混叠。
t = np.linspace(0,1,256)
x = np.sin(2*np.pi*100*t)
plt.plot(t,x)然而,情节是这样的,我认为这是假的吗?

我做错什么了吗?原因是什么?
发布于 2022-01-17 20:50:42
首先,您的代码不正确。你的采样频率是255赫兹,不是256赫兹。为了修复,
t = np.linspace(0, 1, 256, endpoint=False)或
t = np.linspace(0, 1, 257)这是一个放大版本的你的(校正)图,正弦波以更高的采样频率显示:
t = np.linspace(0, 1, 256, endpoint=False)
x = np.sin(2 * np.pi * 100 * t)
plt.plot(t, x)
plt.plot(t2 := np.linspace(0, 1, 10000), np.sin(2 * np.pi * 100 * t2), 'r:')

你每半个周期至少有一个点,这意味着你可以从这些数据中有意义地估计出真正的频率。下面是在Nyquist (200 at )上采样的类似数据集:

具有不同相位的采样会上下移动直线,但它将不允许您找到有关输入信号的有意义的信息。
混叠如下(45 at采样):

由于采样频率比信号频率低得多,你最终得到的估计值要低得多。
https://stackoverflow.com/questions/70747094
复制相似问题