Arduino: ফ্রিকোয়েন্সি ট্রান্সফর্ম (DFT): 6 টি ধাপ
Arduino: ফ্রিকোয়েন্সি ট্রান্সফর্ম (DFT): 6 টি ধাপ
Arduino: ফ্রিকোয়েন্সি ট্রান্সফর্ম (DFT)
Arduino: ফ্রিকোয়েন্সি ট্রান্সফর্ম (DFT)

এই প্রোগ্রামটি প্যারামিটারের উপর ব্যাটার কন্ট্রোল সহ আরডুইনোতে ফ্রিকোয়েন্সি ট্রান্সফর্ম গণনা করতে হয়।

এটি FFT নয়।

এফএফটি হল অ্যালগরিদম যা ছোট সময়ের সাথে ডিএফটি সমাধান করতে ব্যবহৃত হয়।

FFT এর কোড এখানে পাওয়া যাবে।

ধাপ 1: এটি কীভাবে কাজ করে (ধারণা):

এটি কীভাবে কাজ করে (ধারণা)
এটি কীভাবে কাজ করে (ধারণা)
এটি কীভাবে কাজ করে (ধারণা)
এটি কীভাবে কাজ করে (ধারণা)

ফ্রিকোয়েন্সি ট্রান্সফর্মের জন্য প্রদত্ত প্রোগ্রামটি আপনার প্রয়োজনীয় আউটপুটের উপর দুর্দান্ত নিয়ন্ত্রণ সরবরাহ করে। এই প্রোগ্রামটি ডেটা-সেটের জন্য প্রদত্ত ইনপুটে ব্যবহারকারীর দেওয়া ফ্রিকোয়েন্সি পরিসীমা মূল্যায়ন করে।

  • চিত্রে f2 এবং f5 নামের দুটি ফ্রিকোয়েন্সি দিয়ে তৈরি একটি ডেটা সেট যা পরীক্ষা করা প্রয়োজন। f2 এবং f5 দুটি ফ্রিকোয়েন্সি এর জন্য এলোমেলো নাম, অপেক্ষাকৃত উচ্চ ফ্রিকোয়েন্সি জন্য উচ্চ সংখ্যা। এখানে ছোট ফ্রিকোয়েন্সি f2 এর উচ্চ প্রশস্ততা এবং f5 এর ছোট প্রশস্ততা রয়েছে।
  • এটি গাণিতিকভাবে দেখানো যেতে পারে যে -দুটি হারমোনিক ডেটা -সেটের গুণমানের সমষ্টি বিভিন্ন ফ্রিকোয়েন্সি শূন্যের দিকে থাকে (বেশি সংখ্যক ডেটা ব্যাটার ফলাফলের দিকে নিয়ে যেতে পারে)। আমাদের ক্ষেত্রে যদি এই দুটি গুণের ফ্রিকোয়েন্সি একই (বা খুব কাছাকাছি) ফ্রিকোয়েন্সি থাকে তবে গুণের সমষ্টি ননজিরো সংখ্যা যেখানে প্রশস্ততা ডেটার প্রশস্ততার উপর নির্ভর করে।
  • নির্দিষ্ট ফ্রিকোয়েন্সি সনাক্ত করার জন্য প্রদত্ত ডেটা-সেটকে বিভিন্ন পরীক্ষার ফ্রিকোয়েন্সি দ্বারা গুণ করা যায় এবং ফলাফল সেই ফ্রিকোয়েন্সিটির উপাদানকে ডেটা দিতে পারে।

ধাপ 2: এটি কিভাবে কাজ করে (কোডে):

এটি কীভাবে কাজ করে (কোডে)
এটি কীভাবে কাজ করে (কোডে)
এটি কীভাবে কাজ করে (কোডে)
এটি কীভাবে কাজ করে (কোডে)

সেই প্রদত্ত ডেটার জন্য (f2+f5) একের পর এক f1 থেকে f6 গুণিত হয় এবং যোগফল মান উল্লেখ করা হয়। যে চূড়ান্ত যোগফল যে ফ্রিকোয়েন্সি বিষয়বস্তু প্রতিনিধিত্ব করে। ফ্রিকোয়েন্সি বিশ্রাম (অ-ম্যাচিং) আদর্শভাবে শূন্য হওয়া উচিত কিন্তু বাস্তব ক্ষেত্রে এটি সম্ভব নয়। যোগফল শূন্য করার জন্য ডেটা-সেটগুলির অসীম আকার থাকা প্রয়োজন।

  • চিত্র f1 থেকে f6 ট্রায়াল ফ্রিকোয়েন্সি দেখানো যেতে পারে এবং প্রতিটি বিন্দুতে ডেটা সেটের সাথে এর গুণ দেখানো হয়েছে।
  • প্রতিটি ফ্রিকোয়েন্সিতে সেই গুণের দ্বিতীয় চিত্রের সংমিশ্রণে প্লট করা হয়। 1 এবং 5 এ দুটি শিখর সনাক্তযোগ্য।

তাই একটি এলোমেলো ডেটার জন্য একই পদ্ধতি ব্যবহার করে আমরা এতগুলি ফ্রিকোয়েন্সি মূল্যায়ন করতে পারি এবং ডেটার ফ্রিকোয়েন্সি সামগ্রী বিশ্লেষণ করতে পারি।

ধাপ 3: ফ্রিকোয়েন্সি বিশ্লেষণের জন্য কোড ব্যবহার করা:

ফ্রিকোয়েন্সি বিশ্লেষণের জন্য কোড ব্যবহার করা
ফ্রিকোয়েন্সি বিশ্লেষণের জন্য কোড ব্যবহার করা

উদাহরণস্বরূপ, বর্গ তরঙ্গের DFT খুঁজে পেতে এই কোডটি ব্যবহার করা যাক।

চিত্রের মতো লুপের পরে প্রথম সংযুক্ত কোড (dft ফাংশন) পেস্ট করুন।

8 টি শর্ত যা নির্দিষ্ট করা প্রয়োজন

  1. একটি অ্যারে যার dft নেওয়া প্রয়োজন
  2. একটি অ্যারের আকার
  3. মিলি সেকেন্ডে অ্যারেতে 2 টি পড়ার মধ্যে সময়ের ব্যবধান
  4. Hz এর ফ্রিকোয়েন্সি পরিসরের কম মান
  5. Hz এর ফ্রিকোয়েন্সি রেঞ্জের উপরের মান
  6. ফ্রিকোয়েন্সি পরিসরের জন্য ধাপের আকার
  7. একটি সংকেত পুনরাবৃত্তি (ন্যূনতম 1) উচ্চ সংখ্যক ব্যাটার নির্ভুলতা কিন্তু বর্ধিত সমাধান সময়
  8. উইন্ডো ফাংশন:

    কোন জানালার জন্য 0 ফ্ল্যাট-টপ উইন্ডোর জন্য 2 হ্যান উইন্ডো 3 এর জন্য হ্যামিং উইন্ডোর জন্য

(যদি উইন্ডো নির্বাচন করার বিষয়ে আপনার কোন ধারণা না থাকে তাহলে ডিফল্ট 3 রাখুন)

উদাহরণ: dft (a, 8, 0.5, 0, 30, 0.5, 10, 3); এখানে একটি সাইজ 8 এলিমেন্টের একটি অ্যারে যা 0 Hz থেকে 30 Hz এর জন্য 0.5 স্টেপ (0, 0.5, 1, 1.5,…, 29, 29.5, 30) 10 পুনরাবৃত্তি এবং হামিং উইন্ডো

এখানে বড় আকারের অ্যারে ব্যবহার করা সম্ভব যতটা arduino পরিচালনা করতে পারে।

ধাপ 4: আউটপুট:

আউটপুট
আউটপুট
আউটপুট
আউটপুট

যদি আপনি মন্তব্য করেন

Serial.print (f); Serial.print ("\ t");

কোড সিরিয়াল প্লটার থেকে ফ্রিকোয়েন্সি স্পেকট্রামের প্রকৃতি দেবে যদি না সিরিয়াল মনিটর তার প্রশস্ততার সাথে ফ্রিকোয়েন্সি দেবে।

ধাপ 5: বিভিন্ন উইন্ডো এবং নমুনা আকার পরীক্ষা করা:

বিভিন্ন উইন্ডো এবং নমুনা আকার পরীক্ষা করা হচ্ছে
বিভিন্ন উইন্ডো এবং নমুনা আকার পরীক্ষা করা হচ্ছে

চিত্রে, সাইন ওয়েভের ফ্রিকোয়েন্সি বিভিন্ন সেটিং ব্যবহার করে পরিমাপ করা হয়।

ধাপ 6: উদাহরণ:

উদাহরণ
উদাহরণ

SciLab এবং arduino ব্যবহার করে ডেটা রূপান্তরিত করা হয়।

প্রস্তাবিত: