Tôi đã thử googling và wikipedia-ing nó, nhưng tôi chưa nhận được câu trả lời nào ngoài 'đó là vì tần số của tín hiệu đầu vào nằm giữa hai thùng'.
Tôi hiểu rằng đây là lý do, nhưng điều tôi không thể hiểu là tại sao rò rỉ dường như mở rộng ra một số thùng liền kề chứ không phải chỉ một thùng liền kề.
Để minh họa những gì tôi đang nói, đây là một số dữ liệu mô phỏng (mã ở cuối bài):
Trên đây là phổ FFT (được vẽ trên thang đo log) của sóng hình sin có tần số 10. Tốc độ lấy mẫu là một và số lượng mẫu là 100. Biểu đồ đã được dịch chuyển FFT. Rõ ràng chỉ có một đỉnh ở bin 10, và phần còn lại là theo thứ tự lỗi số hoặc có.
Đây là phổ tần số ở tần số được tạo ra là 10.1. Rõ ràng là có "rò rỉ" vào nhiều thùng hơn là thùng ngay lập tức.
Đây là âm mưu cho tần số 10,5.
Câu hỏi: Tại sao có sự rò rỉ này và tại sao nó lại mở rộng ra tất cả các thùng khác, thay vì thùng liền kề?
Mã, cho bất cứ ai quan tâm (mã Python)
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()
Tôi đã thay đổi xFreq
giá trị từ 10.0
sang 10.5
, v.v.