मैं तेज कोसाइन ट्रांसफॉर्म को लागू करना चाहता हूं। मैंने विकिपीडिया पर पढ़ा , कि डीसीटी का एक तेज़ संस्करण है जो एफएफटी के समान है। मैं उद्धृत पढ़ने के लिए करने की कोशिश की Makhoul * कागज, FTPACK और FFTW कार्यान्वयन कि भी उपयोग किया जाता है के लिए SciPy , लेकिन मैं वास्तव में एल्गोरिथ्म निकालने में सक्षम नहीं थे। अभी तक मेरे पास इतना ही है:
FFT कोड:
def fft(x):
if x.size ==1:
return x
N = x.size
x0 = my_fft(x[0:N:2])
x1 = my_fft(x[0+1:N:2])
k = numpy.arange(N/2)
e = numpy.exp(-2j*numpy.pi*k/N)
l = x0 + x1 * e
r = x0 - x1 * e
return numpy.hstack([l,r])
DCT कोड:
def dct(x):
k = 0
N = x.size
xk = numpy.zeros(N)
for k in range(N):
for n in range(N):
xn = x[n]
xk[k] += xn*numpy.cos(numpy.pi/N*(n+1/2.0)*k)
return xk
FCT परीक्षण:
def my_fct(x):
if x.size ==1:
return x
N = x.size
x0 = my_fct(x[0:N:2]) # have to be set to zero?
x1 = my_fct(x[0+1:N:2])
k = numpy.arange(N/2)
n = # ???
c = numpy.cos(numpy.pi/N*(n+1/2.0)*k)
l = x0 #???
r = x0 #???
return numpy.hstack([l,r])
*जे। माखौल, "एक और दो आयामों में एक तेज कोसाइन ट्रांसफॉर्म होता है," आईईईई ट्रांस। Acoust। भाषण सिग। प्रोक। 28 (1), 27-34 (1980)।