ডিসক্রিট ফুরিয়ে ট্রান্সফর্ম (Discrete Fourier Transform - DFT) একটি গাণিতিক কৌশল যা স্পেশিয়াল ডেটাকে ফ্রিকোয়েন্সি ডেটায় রূপান্তর করতে সাহায্য করে। ফাস্ট ফুরিয়ে ট্রান্সফরমেশন (Fast Fourier Transformation - FFT) একটি অ্যালগরিদম যা স্পেশিয়াল ডেটার ডিসক্রিট ফুরিয়ে ট্রান্সফরমেশন কম্পিউট করার জন্য ডিজাইন করা হয়েছে।
স্পেশিয়াল ডেটা সাধারণত মাল্টিডাইমেনশনাল অ্যারے আকারে থাকে। ফ্রিকোয়েন্সি ডেটা বলতে olyan ডেটাকে বোঝায় যাতে নির্দিষ্ট সময়ে সিগন্যাল বা ওয়েভলেথের সংখ্যা সম্পর্কে তথ্য থাকে। নিচে SciPy লাইব্রেরি দিয়ে DFT কীভাবে করা যায় তা দেখানো হলো। গ্রাফ Matplotlib দিয়ে তৈরি করা হয়েছে এবং ডেটা Numpy দিয়ে জেনারেট করা হয়েছে।
উদাহরণ
from matplotlib import pyplot as plt
import numpy as np
my_freq = 6
freq_samp = 70
time_val = np.linspace(0, 3, 3 * freq_samp, endpoint=False)
amp_val = np.sin(my_freq * 3 * np.pi * time_val)
figure, axis = plt.subplots()
axis.plot(time_val, amp_val)
axis.set_xlabel('Time (in seconds)')
axis.set_ylabel('Amplitude of signal')
plt.show()
from scipy import fftpack
A = fftpack.fft(amp_val)
frequency = fftpack.fftfreq(len(amp_val)) * freq_samp
figure, axis = plt.subplots()
axis.stem(frequency, np.abs(A))
axis.set_xlabel('Frequency in Hz')
axis.set_ylabel('Frequency Spectrum Magnitude')
axis.set_xlim(-freq_samp / 2, freq_samp / 2)
axis.set_ylim(-7, 125)
plt.show()আউটপুট

ব্যাখ্যা
- প্রয়োজনীয় প্যাকেজগুলো ইম্পোর্ট করা হয়েছে।
- Numpy লাইব্রেরির সাহায্যে ডেটা জেনারেট করা হয়েছে।
- Matplotlib লাইব্রেরির সাহায্যে এই ডেটা সাইন ভেভ হিসেবে কনসোলে প্লট করা হয়েছে।
- পরবর্তীতে
fftpackপ্যাকেজ ব্যবহার করে জেনারেট করা ডেটার ফাস্ট ফুরিয়ে ট্রান্সফর্ম বের করা হয়েছে। - এই ডেটা আবার গ্রাফে প্লট করা হয়েছে।