Пример #1
0
def ifft2d(F):
    (Nr, Nc) = F.shape
    f = np.zeros((Nr, Nc), dtype=complex)
    for m in range(Nr):
        f[m,:] = mm.ifft(F[m,:])
    for n in range(Nc):
        f[:,n] = mm.ifft(f[:,n])
    return(f)
Пример #2
0
import math
import cmath
import numpy as np
import imageio
import MyModule as mm
import time

x=[1,2,3,4]
x1=mm.complex_idft(mm.complex_dft(x))
x2=mm.complex_idft(mm.fft(x))
x3=mm.ifft(mm.complex_dft(x))
x4=mm.ifft(mm.fft(x))

y=[5,6,7,8]
output1=mm.conv(x,y)
output2=mm.ifft(mm.fft(x)*mm.fft(y))


img=imageio.imread('lena.png')#[256-128:256+128,256-128:256+128]

t1=time.time()
imageio.imwrite('lenareconstructed.png',mm.ifft2d(mm.fft2d(img)))

t2=time.time()
print('img ifft takes %10.2f sec' %( t2-t1))

Пример #3
0
import matplotlib.pyplot as plt
import MyModule as mm

fs,x=sw.read('Libai.wav')

N=512
fcutoff=2000  #freq
Ncutoff=int(fcutoff/fs*N)   #freq=fs*n/N
Hlp=np.zeros((N),dtype=complex)
for n in range(1,Ncutoff):
    Hlp[n]=(1.0+0.0j)
    Hlp[N-n]=(1.0+0.0j)
Hlp[0]=1.0

hlp=mm.ifft(Hlp)
mm.dftplot(hlp,Hlp)

# Nfft=2**15
# xlp=mm.convlong(x,hlp,Nfft)
# sw.write('LibaiLp.wav',fs,xlp)
Пример #4
0
# h[4]=0.1
# 
# plt.plot(h)
# plt.plot(np.abs(mm.fft(h)))


'''lp filter'''
LP=np.zeros((N),dtype=complex)
fc=0.08
Nc=int(fc*N)
for n in range(Nc):
    LP[n]=1.0
    LP[(N-n+N) % N]=1.0
    
plt.plot(np.abs(LP))
lp=mm.ifft(LP)
lpr=np.zeros((N),dtype=complex)
lpr[:N//2],lpr[N//2:]=lp[N//2:],lp[:N//2]
plt.plot(lpr.real)
#plt.plot(lp.real)

lp_trimed = np.zeros((N),dtype=complex)          
lp_trimed[N//2-M//2:N//2+M//2]=lpr[N//2-M//2:N//2+M//2]
LP_trimed=mm.fft(lp_trimed)

plt.plot(np.abs(LP_trimed))
plt.plot(lp_trimed.real)

'''lp-windowed  0.54-0.46cos(2pi*n/M)'''
window=np.zeros((N),dtype=complex)
for n in range(M):