কম্পিউটার টিউটোরিয়াল

পাইথনে দুটি এক-মাত্রিক সিকোয়েন্সের বিচ্ছিন্ন লিনিয়ার কনভোলিউশন এবং ওভারল্যাপ অংশ বের করুন


দুটি এক-মাত্রিক সিকোয়েন্সের বিচ্ছিন্ন লিনিয়ার কনভোলিউশন বের করতে পাইথন নামপাই-র numpy.convolve() মেথডটি ব্যবহার করা হয়। কনভোলিউশন অপারেটর সিগন্যাল প্রসেসিং-এ প্রায়শই দেখা যায়, যেখানে এটি একটি লিনিয়ার টাইম-ইনভেরিয়েন্ট সিস্টেমের সিগন্যাল ওপর প্রভাব মডেল করে। সম্ভাবনা তত্ত্বে, দুটি স্বাধীন র‍্যান্ডম ভেরিয়েবলের যোগফল তাদের নিজস্ব বিতরণের কনভোলিউশন অনুযায়ী বিতরণ পায়।

যদি v, a-এর চেয়ে বড় হয়, তবে গণনার আগে অ্যারে দুটি আদল-বদল করা হয়। মেথডটি a এবং v-র বিচ্ছিন্ন, লিনিয়ার কনভোলিউশন রিটার্ন করে। প্রথম প্যারামিটার a হলো প্রথম এক-মাত্রিক ইনপুট অ্যারে। দ্বিতীয় প্যারামিটার v হলো দ্বিতীয় এক-মাত্রিক ইনপুট অ্যারে। তৃতীয় প্যারামিটার mode অপশনাল, মানগুলো হলো 'full', 'valid', 'same'।

মোড 'valid' আউটপुट দরজা max(M, N) - min(M, N) + 1 দিয়ে ফেরত দেয়। কনভোলিউশন প্রোডাক্ট শুধু সেসব পয়েন্টের জন্য দেওয়া হয় যেখানে সিগন্যালগুলো সম্পূর্ণরূপে ওভারল্যাপ করে। সিগন্যাল বাউন্ডের বাইরের মানগুলোর কোনো প্রভাব নেই।

ধাপসমূহ

প্রথমে প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করুন:

import numpy as np

array() মেথড ব্যবহার করে দুটি নামপাই এক-মাত্রিক অ্যারে তৈরি করুন:

arr1 = np.array([1, 2, 3])
arr2 = np.array([0, 1, 0.5])

অ্যারে দুটি প্রদর্শন করুন:

print("Array1...\n", arr1)
print("\nArray2...\n", arr2)

দুটি অ্যারের ডাইমেনশন পরীক্ষা করুন:

print("\nArray1-এর ডাইমেনশন...\n", arr1.ndim)
print("\nArray2-এর ডাইমেনশন...\n", arr2.ndim)

দুটি অ্যারের শেপ পরীক্ষা করুন:

print("\nArray1-এর শেপ...\n", arr1.shape)
print("\nArray2-এর শেপ...\n", arr2.shape)

কনভোলিউশন বের করতে numpy.convolve() মেথডটি 'valid' মোডে ব্যবহার করুন:

print("\nফলাফল....\n", np.convolve(arr1, arr2, mode='valid'))

সম্পূর্ণ উদাহরণ

import numpy as np
# array() মেথড ব্যবহার করে দুটি নামপাই এক-মাত্রিক অ্যারে তৈরি করা
arr1 = np.array([1, 2, 3])
arr2 = np.array([0, 1, 0.5])
# অ্যারে দুটি প্রদর্শন
print("Array1...\n", arr1)
print("\nArray2...\n", arr2)
# দুটি অ্যারের ডাইমেনশন পরীক্ষা
print("\nArray1-এর ডাইমেনশন...\n", arr1.ndim)
print("\nArray2-এর ডাইমেনশন...\n", arr2.ndim)
# দুটি অ্যারের শেপ পরীক্ষা
print("\nArray1-এর শেপ...\n", arr1.shape)
print("\nArray2-এর শেপ...\n", arr2.shape)
# কনভোলিউশন বের করা
print("\nফলাফল....\n", np.convolve(arr1, arr2, mode='valid'))

আউটপুট

Array1... [1 2 3]
Array2... [0. 1. 0.5]
Array1-এর ডাইমেনশন... 1
Array2-এর ডাইমেনশন... 1
Array1-এর শেপ... (3,)
Array2-এর শেপ... (3,)
ফলাফল.... [2.5]

  1. পাইথনে দুটি 1D অ্যারের ইনার প্রোডাক্ট

  2. পাইথনে দুটি মাল্টি-ডাইমেনশনাল অ্যারের ইনার প্রোডাক্ট

  3. পাইথনে দুটি ভেক্টরের ক্রস প্রোডাক্ট (Cross Product) ফেরত দিন

  4. পাইথনে ৪-ডি এবং ৩-ডি অ্যারের ক্রোনেকার প্রোডাক্ট (Kronecker Product) বের করুন