কেবলমাত্র ডেটা স্কেল করে প্রশস্ততা (এবং সম্ভবত FFT গুণমান) বাড়ানো বৈধ?


10

আমি মার্ক বর্গারডিংয়ের "কেআইএসএস এফএফটি" এর একটি সংস্করণ ব্যবহার করছি। এটি 16-বিট ফিক্সড-পয়েন্ট ইনপুট মানগুলির একটি অ্যারে গ্রহণ করে এবং একটি 32-বিট ফ্লোট ফলাফল অ্যারে উত্পাদন করে।

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

যাইহোক, এটি কাজ করার মতো মনে হয় ফলাফল তৈরির ক্ষেত্রে যখন আগে আমি প্রায় সমস্ত শূন্যের একটি বাফার পেয়েছিলাম তবে আমি ভাবছি যে এটির কোনও বৈধ পন্থা না হওয়ার কোনও কারণ আছে কিনা।

(নোট করুন যে এই পদ্ধতির অর্থ হ'ল ডেটাতে আরও অনেক "মোটা" / গ্রানুলারিলিটি রয়েছে এবং বিশেষত, নিম্ন-স্তরের গোলমাল যা সাধারণত উপস্থিত থাকে তা নয় is আমি প্রায় ভাবছিলাম যে এটি ইনজেকশনে বুদ্ধিমান হতে পারে কিনা) ইনপুটটিতে শূন্য মানগুলি প্রতিস্থাপন করতে কিছু নিম্ন-স্তরের শব্দ।)


"আমি প্রায় ভাবছি যে ইনপুটটিতে শূন্য মানগুলি প্রতিস্থাপন করতে কিছুটা নিম্ন-স্তরের শব্দ করা উচিত নয়" " = en.wikedia.org/wiki/Dither
এন্ডোলিথ

উত্তর:


7

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

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

সুতরাং আপনি কি তথ্য উপাত্তের মাধ্যমে এটি কাছাকাছি পেতে পারেন? কখনও কখনও (খুব অল্প কৌশল রয়েছে যা সারাজীবন কাজ করে!)। যদি আপনার ইনপুট সিগন্যাল সংখ্যার বিন্যাসের পূর্ণ-স্কেলের নীচের মানের সাথে মাত্রায় বেঁধে রাখা হয় (16-বিট স্বাক্ষরিত পূর্ণসংখ্যা -32768 থেকে +32767 থেকে চালিত হয়), তবে আপনি ইনপুট সিগন্যালটি উপলভ্য পরিসীমাটিকে আরও সম্পূর্ণরূপে ব্যবহার করতে পারবেন এটা। এটি রাউন্ডঅফ ত্রুটির প্রভাবগুলি হ্রাস করতে সহায়তা করতে পারে, কারণ যে কোনও রাউন্ডঅফ ত্রুটির পরিমাণটি আগ্রহের সিগন্যালের তুলনায় ছোট হয়ে যায়। সুতরাং, আপনার সমস্ত আউটপুটগুলি অ্যালগোরিদমের অভ্যন্তরীণভাবে জিরোতে গোল হয়ে চলেছে সেই ক্ষেত্রে এটি সাহায্য করতে পারে।

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


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

1

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


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

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

ডকুমেন্টেশন এবং ভাষ্যটি এর অনুপস্থিতিতে ব্যতিক্রমী, তবে আমি কোডটিতে প্রচুর পরিমাণে আর্ট এবং মূল্যবান কয়েকটি ফ্লোট এবং ডাবল দেখতে পাচ্ছি। এটি 16-বিট থেকে 32-বিট বা ফ্লোটে স্যুইচ করার জন্য অপরিশোধিত # আইফডিফ কাঠামো অন্তর্ভুক্ত বলে মনে হয় তবে ফ্রেমওয়ার্কটি দৃশ্যত দীর্ঘকাল অক্ষম ছিল।
ড্যানিয়েল আর হিক্স

একটি আইফোন (এআরএম + নিওন সিপিইউ) সি
তে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.