এফআইআর ফিল্টার ডিজাইন: উইন্ডো বনাম পার্কস ম্যাককেল্লান এবং স্বল্প স্কোয়ার


21

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

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

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

এখানে চিত্র বর্ণনা লিখুন


2
আমি কায়সার- উইন্ডোড সিঙ্কের সাথে firpm()এবং এর সাথে তুলনা করার পরামর্শ দিতে পারি firls()
রবার্ট ব্রিস্টো-জনসন

উত্তর:


16

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

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

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

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

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

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

এখানে চিত্র বর্ণনা লিখুন

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

সংক্ষেপে, নিখুঁতভাবে যুক্তিযুক্ত কারণে ডিএসপি শিক্ষার্থীদের শেখার জন্য দরকারী হওয়া ছাড়াও, আমি মনে করি যে ১৯ 1970০ এর দশকের পর থেকে প্রযুক্তিগত অগ্রগতি সত্ত্বেও উইন্ডোটিং পদ্ধতির ব্যবহারকে কিছু ব্যবহারিক দৃশ্যে ন্যায়সঙ্গত করা যেতে পারে এবং আমি মনে করি না যে এটি হবে খুব শীঘ্রই পরিবর্তন।


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

2
@ ড্যানবোশেন: অবশ্যই বেশিরভাগ ক্ষেত্রে ডিজাইনটি অফলাইনে করা হয় এবং জটিলতা কোনও বিষয় নয়। যাইহোক, আমি অ্যাপ্লিকেশনগুলি জুড়ে এসেছি যেখানে ফিল্টারগুলি অর্ধ-বাস্তব সময়ে পুনরায় ডিজাইন করার প্রয়োজন হবে (এটি একটি বিমফর্মিং অ্যাপ্লিকেশন ছিল), সুতরাং সেখানে আপনার জটিলতার বিষয়টি রয়েছে।
ম্যাট এল।

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

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

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

7

উইন্ডোড সিনক ফিল্টারগুলি সম্পর্কিত এফআইআর ফিল্টার চালানোর পক্ষে যথেষ্ট শক্তিশালী প্রসেসরে ফ্লাইতে অভিযোজিতভাবে তৈরি করা যায়। সীমাবদ্ধ সময়সীমায় উইন্ডোড সিনক ফিল্টার তৈরি করা যায়।

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

স্ক্র্যাচ থেকে পিএমসিসি ফিল্টার জেনারেটর কোড করার জন্য প্রয়োজনীয় উইন্ডোড সিনক ফিল্টারটি ব্যাখ্যা করার জন্য কম প্রাক-প্রয়োজনীয় গণিতের পটভূমির প্রয়োজন।

পিএমসিসি ফিল্টারটির ফ্রিকোয়েন্সি প্রতিক্রিয়াতে সমান তরঙ্গগুলি সাধারণ ডোমেন ফিল্টার দ্বারা উত্পাদিত শিল্পকর্মগুলির চেয়ে টাইম ডোমেনে বিভিন্ন (এবং সম্ভবত কম পছন্দসই) হতে পারে tif


1
হ্যাঁ ভাল পয়েন্ট @ হটপাও 2, পাসব্যান্ড রিপল আন্তঃস্মিবল হস্তক্ষেপকে (পিছনে এবং শীর্ষস্থানীয় ইকোস) দিকে নিয়ে যায়। ধন্যবাদ
ড্যান বসচেন

2
আমরা ২০০৩ সালে পার্কস le ম্যাককেল্লান প্রি এবং পোস্ট প্রতিধ্বনির বিষয়ে কথা বলেছিলাম । আলেক্সি লুকিন একটি ন্যূনতম ম্যাটল্যাব উদাহরণ পোস্ট করেছেন: f=[0 0.49 0.51 1]; a=[1 1 0 0]; b=remez(300,f,a)এটি অক্টোবায়ও চলে। একটি ব্যাখ্যা হ'ল খুব খাড়া ফিল্টারগুলির সাথে রিপলগুলি কোনও কোজিনের সাথে সাদৃশ্যপূর্ণ পর্যাপ্ত নিয়মিত হতে পারে। ফ্রিকোয়েন্সি ডোমেন কোসাইন সমান সময় ডোমেন দুটি আবেগপ্রবণ প্রতিধ্বনি হবে।
অলি নিমিতিটো

6

আমি এখানে উইন্ডোড ডিজাইনের একটি সুবিধা এবং পার্কস – ম্যাককেল্লান থেকে একই সুবিধা পেতে একটি কৌশল দেখাব।

হাফ-ব্যান্ড, কোয়ার্টার-ব্যান্ড ইত্যাদির জন্য ফিল্টার উইন্ডোংকে স্কেলড সিনক ফাংশনের টাইম-ডোমেন জিরো ধরে রাখে, যা প্রোটোটাইপিকাল আদর্শ লো-পাস ফিল্টার। শূন্যগুলি সহগের মধ্যে শেষ হয়, ফিল্টারগুলির গণ্য ব্যয় হ্রাস করে। অর্ধ-ব্যান্ড ফিল্টারের জন্য উইন্ডোযুক্ত নকশা মাঝারি সহগ (যাটিকে এমনকি সমান বিবেচনা করা হয়) বাদে প্রতিটি সমান সহগ 0 সহ একটি ফিল্টার দেয়:

Sinc
চিত্র 1. 2 এর একটি ফ্যাক্টর দ্বারা অনুভূমিকভাবে প্রসারিত সিনক ফাংশন হ'ল প্রোটোটাইপিকাল অর্ধ-ব্যান্ড লো-পাস ফিল্টার 2 এর লাভ সহ 2 এর গুণক দ্বারা আপসাম্পলিংয়ের জন্য উপযুক্ত।

তবে, পার্কস – ম্যাককেল্লান / রেমেজকে কেবলমাত্র একতা অর্জনের ব্যান্ড সংজ্ঞায়িত করে এমন সংখ্যক নলের সাথে একটি ফিল্টার ব্যবহার করে একই সুবিধা দেওয়ার জন্য কৌশল করা যেতে পারে। প্রাপ্ত সহগগুলি দীর্ঘতর ফিল্টারের বিজোড় সহগ হিসাবে ব্যবহৃত হয়। আর ফিল্টারটির মাঝের সহগ 1 এবং অন্য এমনকি সহগকে 0 তে সেট করা হয়েছে filter এই ফিল্টারটি পাস ব্যান্ডে 2 টি লাভ এবং পাস এবং স্টপ ব্যান্ডগুলিতে প্রতিসাম্যিক রিপল রয়েছে। পাইথনে:

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
c0 = signal.remez(14, [0, 3500.0/8000], [1])
c = np.zeros(c0.size*2-1)
c[0::2] = c0
c[c0.size-1] = 1
freq, response = signal.freqz(c)
plt.semilogy(freq/(2*np.pi), np.abs(response))
plt.show()
plt.plot(range(-c0.size+1, c0.size, 1), c, 'x')
plt.grid(True)
plt.show()

চিত্র ২.
চিত্র 2. পাইথনের ব্যবহার করে পরোক্ষভাবে ডিজাইন করা অর্ধ-ব্যান্ড ফিল্টারের সহগ scipy.signal.remez

চিত্র 3।
চিত্র 3. অপ্রত্যক্ষভাবে ব্যবহার করে ডিজাইন করা অর্ধ-ব্যান্ড ফিল্টারটির দৈর্ঘ্যের ফ্রিকোয়েন্সি প্রতিক্রিয়া প্লট scipy.signal.remez

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