我在一段時間內還沒有完成DSP,但是我並沒有預料到我對基礎知識的理解會變得如此糟糕。 我有一個腳本,我正在用一個複雜的指數函數來調和一個音調。我期望的結果是一個移調。我的結果是非常意外的 - 我得到3聲調,沒有一個達到我期望的頻率。有人能解釋爲什麼我會得到這些結果嗎?從numpy簡單卷積產生的意外結果
這是腳本。
import sys
import numpy
import math
import scipy
from pylab import *
def gen_tone(f, fs, length):
t = linspace(0, length, length * fs)
return cos(2.0 * pi * f * t)
def gen_exp(f, fs, length):
t = linspace(0, length, length * fs)
return numpy.exp(1.0j * 2 * pi * f * t)
def plot_fft(f, fs):
FFT = abs(scipy.fft(f, 1024))/f.size
figure()
plot(FFT)
f100 = gen_tone(8000, 44100, 1)
f200j = gen_exp(1000, 44100, 1)
res = scipy.signal.fftconvolve(f100, f200j, 'full')
plot_fft(f100, 44100)
plot_fft(f200j, 44100)
plot_fft(res, 44100)
show()
你期望結果如何(我的意思是說)?你有什麼作爲頻率? – usethedeathstar
正如沃倫的回答所說:你卷積了你的函數,而不是乘以它們。乘以復指數 - >頻移。 – David
是的 - 這是我的失敗。 – Daniel