ฉันลอง googling และ wikipedia แล้ว แต่ฉันยังไม่ได้รับคำตอบนอกเหนือจาก 'เพราะความถี่ของสัญญาณอินพุตอยู่ระหว่างสองถังขยะ'
ฉันเข้าใจว่านี่คือเหตุผล แต่สิ่งที่ฉันไม่เข้าใจคือสาเหตุที่การรั่วไหลดูเหมือนว่าจะขยายไปยังถังขยะติดกันหลายแห่งแทนที่จะเป็นถังขยะที่อยู่ติดกันเพียงถังเดียว
เพื่อแสดงสิ่งที่ฉันกำลังพูดถึงนี่คือข้อมูลจำลอง (รหัสที่ท้ายโพสต์):
ด้านบนคือสเปกตรัม FFT (พล็อตในระดับบันทึก) ของคลื่นไซน์ของความถี่ 10 อัตราการสุ่มตัวอย่างคือหนึ่งและจำนวนตัวอย่างคือ 100 กราฟได้รับการเลื่อน FFT เห็นได้ชัดว่ามีเพียงจุดสูงสุดที่ bin 10 และส่วนที่เหลืออยู่ในลำดับของข้อผิดพลาดเชิงตัวเลขหรือที่นั่น
นี่คือสเปกตรัมความถี่ที่ความถี่ที่สร้างขึ้นที่ 10.1 เห็นได้ชัดว่ามี 'การรั่วไหล' ในถังขยะมากกว่าถังขยะที่อยู่ติดกันทันที
นี่คือโครงเรื่องสำหรับความถี่ 10.5
คำถาม:ทำไมมีการรั่วไหลนี้และทำไมมันถึงขยายไปยังถังขยะอื่นทั้งหมดแทนที่จะเป็นถังขยะที่อยู่ติดกัน?
รหัสสำหรับทุกคนที่สนใจ (รหัสหลาม)
import numpy as np
import matplotlib.pyplot as plt
xFreq = 10.5
xSize = 100.0
xPeriod = xSize/xFreq
x = np.linspace(1,xSize,xSize)
data = np.sin(2*np.pi*x/xPeriod)
fft = np.fft.fft(data)
fft = np.fft.fftshift(fft)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(abs(fft), "o")
ax.set_yscale('log')
plt.show()
ฉันเปลี่ยนxFreq
ค่าจาก10.0
เป็น10.5
ฯลฯ