আন্তঃসম্পর্ক এবং সমঝোতার বিষয়টি নিবিড়ভাবে সম্পর্কিত। সংক্ষেপে, করতে সংবর্তন FFTs সঙ্গে, আপনি
- শূন্য-প্যাড ইনপুট সিগন্যালগুলি (শেষে জিরোগুলি যুক্ত করুন যাতে তরঙ্গের অন্তত অর্ধেক "ফাঁকা" থাকে)
- উভয় সংকেতের এফএফটি নিন
- ফলাফলগুলি একসাথে গুন করুন (উপাদান-ভিত্তিক গুণ)
- বিপরীতমুখী এফএফটি করুন
conv(a, b) = ifft(fft(a_and_zeros) * fft(b_and_zeros))
আপনাকে শূন্য-প্যাডিং করতে হবে কারণ এফএফটি পদ্ধতিটি আসলে বৃত্তাকার ক্রস-পারস্পরিক সম্পর্ক, যার অর্থ সিগন্যালটি প্রান্তগুলিতে প্রায় আবৃত হয়। সুতরাং আপনি ওভারল্যাপ থেকে পরিত্রাণ পেতে, অসীমের বাইরে শূন্যের সংকেত অনুকরণ করার জন্য পর্যাপ্ত শূন্য যুক্ত করেন।
কনভলিউশনের পরিবর্তে ক্রস-পারস্পরিক সম্পর্ক পেতে , আপনাকে এফএফটি করার আগে কোনও একটি সংকেতকে সময়-বিপরীত করতে হবে, বা এফএফটি-র পরে সংকেতগুলির একটিতে জটিল সংযোগ নিতে হবে:
corr(a, b) = ifft(fft(a_and_zeros) * fft(b_and_zeros[reversed]))
corr(a, b) = ifft(fft(a_and_zeros) * conj(fft(b_and_zeros)))
আপনার হার্ডওয়্যার / সফ্টওয়্যার দিয়ে যে কোনওটি সহজ। স্বতঃসংশ্লিষ্টতার জন্য (নিজের সাথে একটি সংকেতের ক্রস-সম্পর্ক), জটিল সংযোগটি করাই ভাল, কারণ তখন আপনাকে কেবল একবার এফএফটি গণনা করতে হবে।
যদি সংকেতগুলি আসল হয় তবে আপনি আসল এফএফটি (আরএফএফটি / আইআরএফএফটি) ব্যবহার করতে পারেন এবং কেবলমাত্র স্পেকট্রামের অর্ধেক গণনা করে আপনার অর্ধেক গণনার সময় বাঁচাতে পারেন।
এছাড়াও আপনি বড় আকারে প্যাডিং করে গণনার সময় বাঁচাতে পারেন যা এফএফটি অপ্টিমাইজ করা হয়েছে (যেমন এফএফটিপ্যাকের জন্য একটি 5-স্মুথ নম্বর , এফএফটিডাব্লুয়ের জন্য 13 ডলার মসৃণ সংখ্যা , বা একটি সাধারণ হার্ডওয়্যার প্রয়োগের জন্য 2 পাওয়ার)।
ব্রুটি-ফোর্স পারস্পরিক সম্পর্কের তুলনায় এফএফটি সম্পর্কের পাইথনের উদাহরণ এখানে: https://stackoverflow.com/a/1768140/125507
এটি আপনাকে ক্রস-সম্পর্ক সম্পর্কিত ফাংশন দেবে, যা অফসেটের তুলনায় মিলের একটি পরিমাপ। যে অফারে তরঙ্গগুলি একে অপরের সাথে "সারিবদ্ধ" থাকে অফসেট পেতে, পারস্পরিক সম্পর্ক ফাংশনে একটি শিখর থাকবে:
শিখরের x মান অফসেট, যা নেতিবাচক বা ধনাত্মক হতে পারে।
আমি কেবল দুটি তরঙ্গের অফসেটটি খুঁজে পেতে এটি ব্যবহার করেছি। আপনি শিখরে প্যারাবোলিক / চতুষ্কোণ ইন্টারপোলেশন ব্যবহার করে অফসেটের (আপনার নমুনাগুলির রেজোলিউশনের চেয়ে ভাল) আরও সুনির্দিষ্ট অনুমান পেতে পারেন ।
-1 এবং 1 এর মধ্যে সাদৃশ্য মান পেতে (অন্যটি বৃদ্ধির সাথে সাথে সংকেতের একটিতে হ্রাসকারী একটি নেতিবাচক মান) আপনার ইনপুটগুলির দৈর্ঘ্য, এফএফটির দৈর্ঘ্য, আপনার নির্দিষ্ট এফএফটি বাস্তবায়নের অনুযায়ী প্রশস্ততা স্কেল করতে হবে স্কেলিং ইত্যাদি itself
নোট করুন যে এটি কেবল একই তরঙ্গযুক্ত তরঙ্গগুলিতে কাজ করবে। যদি তাদের বিভিন্ন হার্ডওয়্যারে নমুনা দেওয়া হয় বা কিছু শব্দ যোগ করা থাকে তবে অন্যথায় এখনও একই আকার থাকে তবে এই তুলনাটি কার্যকর হবে তবে যদি তরঙ্গ আকারটি ফিল্টারিং বা ফেজ শিফট দ্বারা পরিবর্তন করা হয় তবে তারা একই শব্দ করতে পারে তবে জিতেছে পাশাপাশি সম্পর্কযুক্ত না।