এফএফটি-তে কম ফ্রিকোয়েন্সি শক্তিশালী?


15

আমি মাইক্রোফোন ইনপুট থেকে এফএফটি গণনা করছি। আমি লক্ষ্য করেছি যে কম ফ্রিকোয়েন্সি সর্বদা উচ্চ ফ্রিকোয়েন্সিগুলির চেয়ে বেশি পাওয়ার (উচ্চ ডিবি) বলে মনে হয়।

  1. আমি ডেটাটি 24576 বাইট (4096 * 6) এর ফ্রেমে কাটছি।
  2. হামিং উইন্ডো প্রয়োগ করুন: input[i] *= (0.54d - 0.46d*(double) Math.Cos((2d*Math.PI*i)/fs));
  3. এফএফটিডাব্লু দিয়ে এটি চালান Process1D()
  4. জটিল সংখ্যা থেকে রূপান্তর করুন: output[i] = 10.0 * Math.Log10((fout[i * 2] * fout[i * 2]) + (fout[i * 2 + 1] * fout[i * 2 + 1]));
  5. 4096 বাইটের সম্পূর্ণ এফএফটি পেতে 6 টি মান নির্ধারণ করুন।
  6. সুন্দর চিত্র আঁকুন (প্যালেটে রঙ ম্যাপ করা হয়েছে)।

গড় (পিটি 5) এফএফটি শব্দ কম করার জন্য করা হয়।

চিত্রটি শব্দ এবং মাইক বন্ধ উভয়ই দেখায় যেহেতু নিম্ন ফ্রিকোয়েন্সিগুলিতে আরও শক্তি (এবং আরও শব্দ) রয়েছে। এটি কেবল একটি মাইক / সাব সমস্যার চেয়ে বেশি বোঝায়।

আমার প্রশ্নসমূহ:
১. এটি কি প্রত্যাশিত? কেন?
২. এটি ঠিক করার কোনও মানক উপায়? প্রায় কোনও ম্যাথের মতো দেখতে পাওয়া যায় an ট্যান () যাদুটি এটির যেখানে এটি রয়েছে সেখানে এটি উপরে তুলতে পারে।

আমার লক্ষ্যটি হ'ল ডিফল্টরূপে কম ফ্রিকোয়েন্সি ব্যতীত শীর্ষ 5 ফ্রিকোয়েন্সিগুলি সনাক্ত করতে সক্ষম হব।

FFT


ভাঙা উইন্ডো খণ্ডটি এই কম ফ্রিকোয়েন্সি শোরগোল সৃষ্টি করছে কিনা তা জানতে দয়া করে প্রথমে সঠিক হামিং উইন্ডোটি চেষ্টা করুন।
হটপাউ 2

@ টেড হানসেন, আপনি কীভাবে "নিম্ন ফ্রিকোয়েন্সি ছাড়াই শীর্ষ 5 ফ্রিকোয়েন্সি সনাক্তকরণ" শেষ করেছেন - ওজনযুক্ত 1/3 অষ্টক ব্যান্ড থেকে শীর্ষ 5?
ডেনিস

উত্তর:


12

হ্যাঁ, এটি অনেক প্রত্যাশিত। আপনি যা দেখছেন তা হ'ল " গোলাপী " বর্ণালী, অর্থাৎ তুলনামূলক ব্যান্ডউইদথের তুলনায় ধ্রুবক শক্তি, " সাদা " এর তুলনায় যা পরম ব্যান্ডউইথ প্রতি স্থির শক্তি। গোলাপী সংকেতগুলির জন্য 1-2kHz এর মধ্যে শক্তি 2-4kHz এর সমান (প্রতিটি ব্যান্ডউইথ বা "অষ্টাভ" দ্বিগুণ করার উপস্থাপনা করে।

বেশিরভাগ প্রাকৃতিক অডিও সিগন্যালের (স্পিচ, সংগীত, সিনেমা ইত্যাদি) গোলাপি রঙের বর্ণালী থাকে। এছাড়াও বেশিরভাগ অ্যাকোস্টিক ব্যাকগ্রাউন্ড শোরগোল (মাইক্রোফোন শব্দ, এইচভিএসি শব্দ, বায়ুচাপের ওঠানামা, জেনেরিক ব্যাকগ্রাউন্ড) কম ফ্রিকোয়েন্সিগুলির দিকে গোলাপী বা এমনকি আরও আঁকড়ে থাকে।

মানব শ্রুতি সিস্টেমগুলিও সেভাবে কাজ করে। অভ্যন্তরীণ কানে অডিও সংকেতগুলি ধীরে ধীরে আপেক্ষিক ব্যান্ডউইথের ব্যান্ডে বিভক্ত হয় ("ক্রিটিকাল ব্যান্ড" নামে পরিচিত) যা প্রায় তৃতীয় অষ্টক বর্ণালী হিসাবে একই।

অডিও বর্ণালী ডেটা দেখার সর্বোত্তম উপায় হ'ল এটি একটি লগারিদমিক ফ্রিকোয়েন্সি স্কেলে প্লট করা।


"প্রাকৃতিক অডিও সিগন্যালগুলির গোলাপির মতো বর্ণালী রয়েছে" এই বিবৃতিটি সময় স্কেলের বিবেচনা বাদ দেয়। দীর্ঘ সময় ধরে (10 সেকেন্ডের দশক) আমি সম্মতি জানাই, এবং অবশ্যই বেশ কয়েক মিনিটের মধ্যে এই বিবৃতিটি সত্য বলে প্রবণতা প্রকাশ করে। তবে এখানে বর্ণালী 0.55 সেকেন্ডের বেশি গণনা করা হয়। যদি ইনপুটটি যেমন, সঙ্গীত হয় তবে আমি আরও অনেক টোনাল কাঠামো আশা করব।
mtrw

2
"টোনালিটি" বর্ণালীটির সূক্ষ্ম কাঠামোকে আরও বেশি প্রভাবিত করে। সামগ্রিক আকৃতি (প্রতি অক্টোটায় শক্তির নিরিখে) এখনও গানের জন্য বেশিরভাগ গোলাপী হবে যদি না এটি "ত্রিভুজ এবং ক্র্যাশ সিম্বলের জন্য একক"
হিলমার

1
@ এমটিআরডাব্লু: বর্গাকার তরঙ্গ অবশ্যই একটি স্বর, তবে উচ্চ ফ্রিকোয়েন্সি হারমোনিক্স এখনও 1 / f হারে পতিত হয়।
এন্ডোলিথ

8

দ্বিতীয় ধাপে, সূত্রটি হওয়া উচিত input[i] *= (0.54d - 0.46d*(double) Math.Cos((2d*Math.PI*i)/N));, Nআপনার ক্ষেত্রে বাফারে নমুনাগুলির সংখ্যা কোথায় 24576

4 এবং 5 পদক্ষেপে, আমি ডিবি মান নয়, বর্গক্ষেত্রের মানগুলির উপর ভিত্তি করে বিন-ভিত্তিক করব। বলুন আপনার বর্গক্ষেত্রের দৈর্ঘ্য রয়েছে [4,6]। তাদের গড় 5, 10*log10(5) ~= 6.99। গড় 10*log10(4)এবং 10*log10(6)হয় 6.90

প্রথম সমস্যাটি কম ফ্রিকোয়েন্সিগুলির প্রতি পক্ষপাতিত্বের কারণ হতে পারে, কারণ এটি বর্ণালী ফাঁস ঘটায় এবং কম ফ্রিকোয়েন্সি ডিসি লাইন থেকে আরও দূষিত হবে (যা অবশ্যম্ভাবীভাবে একটি খারাপ অনুমান) poor দ্বিতীয় সমস্যাটি সম্ভবত কম ফ্রিকোয়েন্সিগুলিতে কোনও পার্থক্য আনতে যাচ্ছে না, তবে আমি মনে করি আপনার পরিমাপের উদ্দেশ্যটি আরও কাছে চলে গেছে gets


fout[i * 2] * fout[i * 2]) + (fout[i * 2 + 1] * fout[i * 2 + 1]4610লগ10(5)(10লগ10(4)+ +10লগ10(6))/2

উপরের আপনার ব্যাখ্যায়, আমি বিশ্বাস করি যে আপনি 4096 এর একটি উইন্ডো প্রস্থ (এন) চান, যেহেতু এটি এফএফটি প্রস্থের প্রয়োগ করা হচ্ছে। এই উইন্ডোটি প্রতি ফুটের আগে রূপান্তরিত হওয়া 4096 নমুনায় প্রয়োগ করতে হবে।
জ্যাকব

@ জ্যাকব - ওপি 6 * 4096 পয়েন্টের এফএফটি গণনা করছে, তারপরে গড় 6 সংলগ্ন বিনগুলি 4096 পয়েন্টে কমিয়ে আনতে হবে।
mtrw

5

1 / এফ শব্দটি অনেকগুলি শারীরিক, জৈবিক এবং অর্থনৈতিক ব্যবস্থায় ঘটে। কিছু গবেষক এটিকে সর্বব্যাপী বলে বর্ণনা করেছেন।

গোলাপী এবং সাদা শব্দ

রৈখিক ফ্রিকোয়েন্সি উল্লম্ব অক্ষ সহ একটি এফএফটি বর্ণালীতে গোলাপী গোলমাল (বাম) এবং সাদা শব্দ (ডানদিকে) (একটি সাধারণ অডিও বা অনুরূপ বর্ণালী বিশ্লেষকের উপর গোলাপী গোলমালটি সমতল হবে, নীচের দিকে opালু নয় এবং সাদা গোলমাল উঠছে)


6
বাম দিকের শব্দটি অবশ্যই গোলাপী তবে ডানদিকের

যদিও এটি সত্য যে 1 / f শব্দটি সর্বব্যাপী, অডিওর জন্য একটি ভাল ডিজাইন করা অ্যানালগ ফ্রন্ট এন্ডের উপরে সাধারণত 1 / f শব্দ কম থাকে, 10 হার্জ বলুন। আগ্রহের ব্যান্ডগুলিতে সাদা গোলমাল প্রাধান্য পায়।
mtrw

4

এটি কি প্রত্যাশিত? কেন?

প্রচুর প্রাকৃতিক শব্দগুলির সুরেলা থাকে , সুতরাং সেখানে নিম্ন মৌলিক ফ্রিকোয়েন্সি থাকবে এবং তারপরে মৌলিকের উচ্চতর গুণিতকগুলিতে কম শক্তি থাকবে। ডিসি পক্ষপাত থাকতে পারে যার অর্থ হ'ল একেবারে বাম দিকে প্রচুর শক্তি। আর একটি প্রভাব হ'ল আপনার উইন্ডিং ফাংশন যা ফ্রিকোয়েন্সি প্রতিক্রিয়াটিকে বিকৃত করে।

এটি ঠিক করার কোনও মানক উপায়? প্রায় কোনও ম্যাথের মতো দেখতে পাওয়া যায় an ট্যান () যাদুটি এটি যেখানেই থাকে সেখানে এটি তুলতে পারে।

আপনি হাই-পাস ফিল্টার ব্যবহার করে ডিসি পক্ষপাতিত্ব মোকাবেলা করতে পারেন। একটি সাধারণ বাস্তবায়ন হ'ল প্রতিটি নমুনা থেকে দীর্ঘমেয়াদী গড় বিয়োগ করা (EDIT: বা আরও সহজ, নিম্ন ফ্রিকোয়েন্সিগুলি বাতিল করুন, যেমন <এফএফটি ফলাফল থেকে <50Hz)। আপনি বিভিন্ন উইন্ডো ফাংশন পরীক্ষা করতে পারেন। আপনি যেমন উইন্ডোটি সঠিকভাবে প্রয়োগ করছেন তা নিশ্চিত করুন (@ এমটিআরডাব্লু হিসাবে উল্লেখ করেছেন) make প্রতিক্রিয়াতে অন্য কোনও অ-লিনিয়ারিটি কিছু আদর্শ ইনপুট পরিমাপ করে এবং সেই বক্ররেখাটিকে স্বাভাবিক করে সংশোধন করা যায়।


উইন্ডোটিং ফাংশনটি ফ্রিকোয়েন্সি প্রতিক্রিয়াটিকে প্রভাবিত করবে না, তাই না?
এন্ডোলিথ

@endolith: এটি করে - আপনি উইন্ডো ফাংশন দ্বারা আপনার ডেটা গুণাবেন এবং সম্মিলিত ফাংশনটির আলাদা প্রতিক্রিয়া রয়েছে। লিঙ্কযুক্ত উইকিপিডিয়া নিবন্ধটি পড়ুন যা এটি আরও গভীরতার সাথে আলোচনা করে। বাস্তব বিশ্বের নমুনাগুলি নিয়ে কাজ করার বাস্তবতাটি হ'ল সাধারণত কিছু উইন্ডো থাকে (যেমন একটি আয়তক্ষেত্র) এবং আপনি কেবলমাত্র (অসীম) উত্সের সংকেতের কারণ হিসাবে কেবলমাত্র তার ফ্রিকোয়েন্সি প্রতিক্রিয়া অনুমান করতে পারেন।
গাই স্যারটন 6

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

@ এন্ডোলিথ: একটি অসীম সাইন ওয়েভ কল্পনা করুন, এখন একটি কোস ^ 2 উইন্ডো দিয়ে গুণ করুন। মূল ফ্রিকোয়েন্সিতে আপনার এখনও একটি উপাদান থাকবে তবে এর প্রশস্ততা "বন্ধ" হবে এবং আপনার উইন্ডো থেকে নতুন ফ্রিকোয়েন্সি উপাদান আসবে। : এখানে প্রথম প্যারা দেখুন en.wikipedia.org/wiki/Spectral_leakage
গায় Sirton

হ্যাঁ, তবে "অফ" প্রশস্ততা একই হবে অনন্ত সাইন ওয়েভের ফ্রিকোয়েন্সি যাই হোক না কেন?
এন্ডোলিথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.