简体   繁体   English

I/p 频率为 8000 Hz 那么为什么以下代码的输出显示峰值为 2000 Hz?

[英]I/p frequency is 8000 Hz then why why does the output of following code shows peak at 2000 Hz?

The i/p frequency is 8000 Hz. i/p 频率为 8000 Hz。 Why does the o/p of the following code shows, a peak in spectrogram at 2000 Hz?为什么以下代码的 o/p 显示频谱图中 2000 Hz 处的峰值? I am new to the spectrogram, can anyone please explain?我是频谱图的新手,谁能解释一下?

from scipy import signal
import matplotlib.pyplot as plt
import numpy as np


time = np.linspace(start = 0, stop = 10, num = 100000) 

t1 = time[0,]
t2 = time[1,]

del_t = t2-t1

fs = 1e4 #np.ceil(1/del_t)

ip_f = 8000

x = np.sin(2*np.pi*ip_f*time) 

# plt.plot(time,x)

op_f, op_t, op_Sxx = signal.spectrogram(x, fs)

plt.pcolormesh(op_t, op_f, op_Sxx, shading='gouraud')
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()

If your sample rate is only 10 kHz then 8 kHz is above the Nyquist Frequency (5 kHz).如果您的采样率仅为 10 kHz,则 8 kHz 高于奈奎斯特频率(5 kHz)。 It will alias to 2 kHz, as you have seen.如您所见,它将别名为 2 kHz。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM