আমি ফাস্ট কোসিন ট্রান্সফর্মটি বাস্তবায়ন করতে চাই। আমি উইকিপিডিয়ায় পড়েছি, ডিসিটির একটি দ্রুত সংস্করণ রয়েছে যা এফএফটির সাথে একইভাবে গণনা করা হয়। আমি স্কিপিতে ব্যবহৃত এফটিপ্যাক এবং এফএফটিডাব্লু বাস্তবায়নের জন্য উদ্ধৃত মাখুল * কাগজটি পড়ার চেষ্টা করেছি , তবে আমি আসলে অ্যালগরিদম বের করতে সক্ষম হইনি। আমার এ পর্যন্ত যা আছে:
এফএফটি কোড:
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])
ডিসিটি কোড:
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
এফসিটি ট্রায়াল:
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। স্পিচ সিগ। Proc। 28 (1), 27-34 (1980)।