Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from scipy import array, zeros, signal
- from scipy.fftpack import fft, ifft, convolve
- def conv(f, g):
- # transform f and g to frequency domain
- F = fft(f)
- G = fft(g)
- # multiply entry-wise
- C = F * G
- # transfer C to time domain
- c = ifft(C)
- return c
- conv(f,g) = [ 34.+0.j 32.+0.j 34.+0.j 40.+0.j]
- convolve.convolve(f,g) = [ 1.48219694e-322 2.07507571e-322 3.06320700e-322 3.26083326e-322]
- signal.convolve(f,g,'same') = [14 26 40 29]
- def direct(f,g):
- r = zeros(len(f))
- for k in range(len(f)):
- for p in range(len(f)):
- r[k] = r[k] + (f[p] * g[k-p])
- return r
- f = np.concatenate((f, np.zeros(4)))
- g = np.concatenate((g, np.zeros(4)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement