বিষয়বস্তুতে চলুন

সসীম ইম্পালস রেসপন্স

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে

সংকেত প্রক্রিয়াকরণে, সসীম ইম্পালস রেসপন্স (FIR) ফিল্টার হলো এমন একটি ফিল্টার যার ইম্পালস রেসপন্স (অথবা যেকোনো সসীম দৈর্ঘ্যের ইনপুটের প্রতি প্রতিক্রিয়া) সসীম স্থায়িত্বের, কারণ এটি সসীম সময়ের মধ্যেই শূন্যতে স্থিত হয়। এটি অনন্ত ইম্পালস রেসপন্স (IIR) ফিল্টারের বিপরীত, যেগুলিতে অভ্যন্তরীণ ফিডব্যাক থাকতে পারে এবং অনির্দিষ্টকাল প্রতিক্রিয়া চালিয়ে যেতে পারে (সাধারণত ধীরে ধীরে ক্ষয়মান)।[তথ্যসূত্র প্রয়োজন]

একটি Nth-অর্ডারের ডিসক্রিট-টাইম FIR ফিল্টারের ইম্পালস রেসপন্স (অর্থাৎ ক্রোনেকার ডেল্টা ইনপুটের প্রতি আউটপুট) ঠিক টি স্যাম্পল পর্যন্ত স্থায়ী হয় (প্রথম অশূন্য উপাদান থেকে শেষ অশূন্য উপাদান পর্যন্ত), এরপর এটি শূন্যতে স্থিত হয়।

FIR ফিল্টার ডিসক্রিট-টাইম বা কন্টিনিউয়াস-টাইম হতে পারে, এবং ডিজিটাল বা অ্যানালগ হতে পারে।

সংজ্ঞা

[সম্পাদনা]
অর্ডার N-এর একটি ডাইরেক্ট-ফর্ম ডিসক্রিট-টাইম FIR ফিল্টার। উপরের অংশটি N-স্টেজ ডিলে-লাইন, যাতে N + 1টি ট্যাপ আছে। প্রতিটি ইউনিট ডিলে Z-ট্রান্সফর্ম নোটেশনে একটি z−1 অপারেটর।
ল্যাটিস ধরনের FIR ফিল্টারের একটি চিত্রণ
অর্ডার N-এর একটি ল্যাটিস-ফর্ম ডিসক্রিট-টাইম FIR ফিল্টার। প্রতিটি ইউনিট ডিলে Z-ট্রান্সফর্ম নোটেশনে একটি z−1 অপারেটর।

অর্ডার N-এর একটি কার্যকারণ ডিসক্রিট-টাইম FIR ফিল্টারের ক্ষেত্রে, আউটপুট সিকোয়েন্সের প্রতিটি মান হলো সর্বশেষ ইনপুট মানগুলোর একটি ওজনযুক্ত যোগফল:

যেখানে:

  • হলো ইনপুট সংকেত,
  • হলো আউটপুট সংকেত,
  • হলো ফিল্টারের অর্ডার; th-অর্ডারের ফিল্টারের ডানপাশে টি পদ থাকে
  • হলো এর জন্য -অর্ডারের FIR ফিল্টারের i'তম মুহূর্তে ইম্পালস রেসপন্সের মান। ফিল্টারটি যদি ডাইরেক্ট-ফর্ম FIR ফিল্টার হয়, তবে একই সাথে ফিল্টারের একটি সহগও।

এই গণনাটি ডিসক্রিট কনভলিউশন নামেও পরিচিত।

এই পদগুলোর সাধারণত ট্যাপ নামে পরিচিত, কারণ বহু বাস্তবায়ন বা ব্লক-ডায়াগ্রামে ট্যাপড ডিলে লাইন কাঠামোটি গুণনের আগে বিলম্বিত ইনপুট সরবরাহ করে। যেমন, কেউ বলতে পারে একটি ৫ম অর্ডার/৬-ট্যাপ ফিল্টার

সংজ্ঞা অনুযায়ী ফিল্টারের ইম্পালস রেসপন্স একটি সসীম সময়কাল জুড়ে অশূন্য। শূন্যসহ বিবেচনা করলে, ইম্পালস রেসপন্সটি একটি অনন্ত সিকোয়েন্স:

যদি কোনো FIR ফিল্টার অ-কার্যকারণ হয়, তবে তার ইম্পালস রেসপন্সে অশূন্য মানগুলোর পরিসর -এর আগেও শুরু হতে পারে; সে ক্ষেত্রে সংজ্ঞায়িত সূত্রটি উপযুক্তভাবে সাধারণীকরণ করা হয়।

বৈশিষ্ট্য

[সম্পাদনা]

FIR ফিল্টারের কিছু উপকারী বৈশিষ্ট্য আছে, যেগুলো কখনও কখনও এটিকে অনন্ত ইম্পালস রেসপন্স (IIR) ফিল্টারের চেয়ে বেশি পছন্দনীয় করে তোলে। FIR ফিল্টার:

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

FIR ফিল্টারের প্রধান অসুবিধা হলো—সমান শার্পনেস বা নির্বাচকতা পেতে IIR ফিল্টারের তুলনায় সাধারণ উদ্দেশ্য প্রসেসরে অনেক বেশি গণনাশক্তি লাগে, বিশেষ করে যখন স্যাম্পল রেটের তুলনায় নিম্ন ফ্রিকোয়েন্সির কাটঅফ দরকার হয়। তবে অনেক ডিজিটাল সিগন্যাল প্রসেসরে বিশেষায়িত হার্ডওয়্যার থাকে, যা বহু অ্যাপ্লিকেশনে FIR ফিল্টারকে IIR-এর কাছাকাছি দক্ষ করে তোলে।

ফ্রিকোয়েন্সি রেসপন্স

[সম্পাদনা]

ফিল্টারটি সিকোয়েন্সের ওপর কী প্রভাব ফেলে, তা ফ্রিকোয়েন্সি ডোমেইনে কনভলিউশন উপপাদ্য দ্বারা বর্ণিত হয়:

    এবং    

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

যেখানে যোগ করা সাবস্ক্রিপ্টটি -পর্যায়িকতা নির্দেশ করে। এখানে ফ্রিকোয়েন্সিকে স্বাভাবিকীকৃত এককে (রেডিয়ান প্রতি স্যাম্পল) প্রকাশ করে। ফাংশন -এর পর্যায়িকতা , যেখানে হলো সাইকেল প্রতি স্যাম্পল এককে; বহু ফিল্টার ডিজাইন অ্যাপ্লিকেশনে এটিই বেশি সুবিধাজনক।[]  মানটিকে নাইকুইস্ট ফ্রিকোয়েন্সি বলা হয়, যা -এর সমতুল্য।  যখন সিকোয়েন্সের স্যাম্পলিং-রেট (স্যাম্পল প্রতি সেকেন্ড) জানা থাকে, তখন সাধারণ ফ্রিকোয়েন্সি এবং স্বাভাবিকীকৃত ফ্রিকোয়েন্সির সম্পর্ক হলো সাইকেল প্রতি সেকেন্ড (Hz)। বিপরীতে, যদি কেউ সাধারণ ফ্রিকোয়েন্সি , ইত্যাদির জন্য ফিল্টার ডিজাইন করতে চায়, এবং ব্যবহৃত অ্যাপ্লিকেশনটি সাইকেল প্রতি স্যাম্পল একক আশা করে, তবে ,  ,  ইত্যাদি ইনপুট দিতে হবে।

ফাংশনটি ফিল্টারের ইম্পালস রেসপন্সের Z-ট্রান্সফর্ম-এর সাহায্যেও প্রকাশ করা যায়:

ফিল্টার নকশা

[সম্পাদনা]

FIR ফিল্টার ডিজাইন করা হয় এমন সহগ ও ফিল্টার অর্ডার নির্ধারণ করে, যা নির্দিষ্ট কিছু স্পেসিফিকেশন পূরণ করে—এগুলো টাইম ডোমেইনে (যেমন ম্যাচড ফিল্টার) বা ফ্রিকোয়েন্সি ডোমেইনে (সবচেয়ে সাধারণ) হতে পারে। ম্যাচড ফিল্টার ইনপুট সংকেত এবং পরিচিত পালস-শেপের মধ্যে ক্রস-করেলেশন সম্পাদন করে। FIR কনভলিউশন হলো ইনপুট সংকেত এবং ইম্পালস রেসপন্সের সময়-উল্টানো কপির মধ্যে ক্রস-করেলেশন। তাই, ম্যাচড ফিল্টারের ইম্পালস রেসপন্স “ডিজাইন” করা হয় পরিচিত পালস-শেপটি স্যাম্পল করে এবং সেই স্যাম্পলগুলো উল্টো ক্রমে ফিল্টার সহগ হিসেবে ব্যবহার করে।[]

যখন একটি নির্দিষ্ট ফ্রিকোয়েন্সি রেসপন্স কাম্য হয়, তখন কয়েকটি প্রচলিত ডিজাইন পদ্ধতি ব্যবহৃত হয়:

  1. উইন্ডো ডিজাইন পদ্ধতি
  2. ফ্রিকোয়েন্সি স্যাম্পলিং পদ্ধতি
  3. লিস্ট MSE (মিন স্কয়ার্ড এরর) পদ্ধতি
  4. Parks–McClellan method (ইকুইরিপল, অপ্টিমাল, বা মিনিম্যাক্স পদ্ধতি নামেও পরিচিত)। রেমেজ এক্সচেঞ্জ অ্যালগরিদম সাধারণত একটি অপ্টিমাল ইকুইরিপল সহগ-সেট বের করতে ব্যবহৃত হয়। এখানে ব্যবহারকারী একটি কাম্য ফ্রিকোয়েন্সি রেসপন্স, সেই রেসপন্স থেকে বিচ্যুতির জন্য একটি ওয়েটিং ফাংশন, এবং ফিল্টার অর্ডার N নির্ধারণ করে। অ্যালগরিদম তখন টি সহগের সেট খুঁজে বের করে যা আদর্শের তুলনায় সর্বোচ্চ বিচ্যুতি সর্বনিম্ন করে। ধারণাগতভাবে, এটি এমন ফিল্টার খুঁজে দেয় যা টি সহগ ব্যবহারের সীমাবদ্ধতায় কাম্য রেসপন্সের সবচেয়ে কাছাকাছি। বাস্তবে এই পদ্ধতি সহজ, কারণ অন্তত একটি পাঠ্যবই[] এমন একটি প্রোগ্রাম দেয় যা কাম্য ফিল্টার ও N ইনপুট নিয়ে অপ্টিমাল সহগ ফেরত দেয়।
  5. DFT অ্যালগরিদম ব্যবহার করেও ইকুইরিপল FIR ফিল্টার ডিজাইন করা যায়।[] এই অ্যালগরিদমটি ইটারেটিভ প্রকৃতির। প্রাথমিক একটি ফিল্টার ডিজাইনের DFT FFT অ্যালগরিদম দিয়ে গণনা করা হয় (যদি প্রাথমিক অনুমান না থাকে, h[n]=delta[n] ব্যবহার করা যেতে পারে)। ফুরিয়ে ডোমেইন বা DFT ডোমেইনে ফ্রিকোয়েন্সি রেসপন্সকে স্পেসিফিকেশন অনুযায়ী সংশোধন করা হয়, তারপর ইনভার্স DFT গণনা করা হয়। টাইম ডোমেইনে কেবল প্রথম Nটি সহগ রাখা হয় (বাকি সহগগুলোকে শূন্য সেট করা হয়)। এরপর প্রক্রিয়াটি পুনরাবৃত্ত হয়: আবার DFT, তারপর সংশোধন, ইত্যাদি।

MATLAB, GNU Octave, Scilab এবং SciPy-এর মতো সফটওয়্যার প্যাকেজগুলো এই বিভিন্ন পদ্ধতি প্রয়োগের সুবিধাজনক উপায় দেয়।

উইন্ডো ডিজাইন পদ্ধতি

[সম্পাদনা]

উইন্ডো ডিজাইন পদ্ধতিতে প্রথমে একটি আদর্শ IIR ফিল্টার ডিজাইন করা হয় এবং এরপর একটি সীমিত দৈর্ঘ্যের উইন্ডো ফাংশন দিয়ে গুণ করে অনন্ত ইম্পালস রেসপন্সকে ট্রাঙ্কেট করা হয়। এর ফলে একটি FIR ফিল্টার পাওয়া যায়, যার ফ্রিকোয়েন্সি রেসপন্স IIR ফিল্টারের তুলনায় পরিবর্তিত। টাইম ডোমেইনে অনন্ত ইম্পালসকে উইন্ডো ফাংশন দিয়ে গুণ করা মানে হলো ফ্রিকোয়েন্সি ডোমেইনে IIR-এর রেসপন্সকে উইন্ডো ফাংশনের ফুরিয়ে ট্রান্সফর্ম (বা DTFT)-এর সাথে কনভলভ করা। যদি উইন্ডোর মেইন লোব সরু হয়, তবে সম্মিলিত ফ্রিকোয়েন্সি রেসপন্স আদর্শ IIR ফিল্টারের রেসপন্সের কাছাকাছি থাকে।[]

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

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

লিস্ট মিন স্কয়ার এরর (MSE) পদ্ধতি

[সম্পাদনা]

লক্ষ্য:

MSE অর্থে FIR ফিল্টার ডিজাইন করতে আমরা প্রাপ্ত ফিল্টার এবং কাম্য ফিল্টারের মধ্যে গড় বর্গ ত্রুটি (mean square error) সর্বনিম্ন করি।
, যেখানে হলো স্যাম্পলিং ফ্রিকোয়েন্সি, হলো প্রাপ্ত ফিল্টারের স্পেকট্রাম, এবং হলো কাম্য ফিল্টারের স্পেকট্রাম।

পদ্ধতি:

একটি N-পয়েন্ট FIR ফিল্টার দেওয়া আছে, এবং
ধাপ ১: ধরা যাক জোড় সিমেট্রিক। তাহলে -এর ডিসক্রিট-টাইম ফুরিয়ে ট্রান্সফর্ম সংজ্ঞায়িত হয়:
ধাপ ২: গড় বর্গ ত্রুটি গণনা:
অতএব,
ধাপ ৩: -এর প্রতি MSE-এর আংশিক উৎপাদক নিয়ে MSE সর্বনিম্ন করা:
গোছানোর পরে পাই:
ধাপ ৪: কে আবার -এর রূপে ফেরত আনা:
এবং

এছাড়া, একটি ওয়েটিং ফাংশন যোগ করে পাসব্যান্ড এবং স্টপব্যান্ডের গুরুত্ব আলাদাভাবে নির্ধারণ করা যায়। তখন MSE দাঁড়ায়:

মুভিং অ্যাভারেজ উদাহরণ

[সম্পাদনা]
একটি সাধারণ FIR ফিল্টারের ব্লক ডায়াগ্রাম (এক্ষেত্রে দ্বিতীয়-অর্ডার/৩-ট্যাপ ফিল্টার), যা একটি মুভিং অ্যাভারেজ স্মুথিং ফিল্টার বাস্তবায়ন করে
একটি সাধারণ FIR ফিল্টারের ব্লক ডায়াগ্রাম (এক্ষেত্রে দ্বিতীয়-অর্ডার/৩-ট্যাপ ফিল্টার), যা একটি মুভিং অ্যাভারেজ স্মুথিং ফিল্টার বাস্তবায়ন করে
পোল–জিরো চিত্র
উদাহরণে ব্যবহৃত দ্বিতীয়-অর্ডার FIR স্মুথিং ফিল্টারের পোল–জিরো চিত্র
উদাহরণে ব্যবহৃত দ্বিতীয়-অর্ডার FIR স্মুথিং ফিল্টারের ম্যাগনিটিউড ও ফেজ রেসপন্স
উদাহরণে ব্যবহৃত দ্বিতীয়-অর্ডার FIR স্মুথিং ফিল্টারের ম্যাগনিটিউড ও ফেজ রেসপন্স
উদাহরণে ব্যবহৃত দ্বিতীয়-অর্ডার FIR স্মুথিং ফিল্টারের অ্যাম্পলিটিউড ও ফেজ রেসপন্স
উদাহরণে ব্যবহৃত দ্বিতীয়-অর্ডার FIR স্মুথিং ফিল্টারের অ্যাম্পলিটিউড ও ফেজ রেসপন্স

মুভিং অ্যাভারেজ ফিল্টার হলো একটি অত্যন্ত সহজ FIR ফিল্টার। এটিকে কখনও কখনও বক্সকার ফিল্টারও বলা হয়, বিশেষত যখন পরে ডেসিমেশন করা হয়; অথবা ফ্রিকোয়েন্সি-ডোমেইনে সিঙ্কও বলা হয়। ফিল্টার সহগগুলো, , নিচের সমীকরণ থেকে পাওয়া যায়:

আরও নির্দিষ্ট উদাহরণ দিতে আমরা ফিল্টার অর্ডার বেছে নিই:

ফলে প্রাপ্ত ফিল্টারের ইম্পালস রেসপন্স:

ডানদিকে থাকা ব্লক ডায়াগ্রামটি নিচে আলোচিত দ্বিতীয়-অর্ডার মুভিং-অ্যাভারেজ ফিল্টার দেখায়। ট্রান্সফার ফাংশন:

পরের চিত্রটি সংশ্লিষ্ট পোল–জিরো চিত্র দেখায়। শূন্য ফ্রিকোয়েন্সি (DC) মিলে (1, 0)-তে, ধনাত্মক ফ্রিকোয়েন্সিগুলো বৃত্ত বরাবর ঘড়ির কাঁটার বিপরীতে এগোয় এবং নাইকুইস্ট ফ্রিকোয়েন্সি (−1, 0)-তে। দুটি পোল উৎসে (origin) অবস্থিত, এবং দুটি জিরো অবস্থিত , -এ।

ফ্রিকোয়েন্সি রেসপন্স, স্বাভাবিকীকৃত ফ্রিকোয়েন্সি ω-এর হিসেবে:

চিত্রে -এর ম্যাগনিটিউড ও ফেজ অংশ প্লট করা আছে। তবে এমন প্লট ইম্পালস রেসপন্সের ডিসক্রিট ফুরিয়ে রূপান্তর (DFT) করেও তৈরি করা যায়।[] আর সিমেট্রির কারণে, ফিল্টার ডিজাইন বা ভিউয়িং সফটওয়্যার প্রায়ই শুধু [0, π] অঞ্চল দেখায়। ম্যাগনিটিউড প্লট দেখায় যে মুভিং-অ্যাভারেজ ফিল্টার নিম্ন ফ্রিকোয়েন্সি প্রায় 1 গেইনে পাস করে এবং উচ্চ ফ্রিকোয়েন্সি অ্যাটেনুয়েট করে—অর্থাৎ এটি একটি মোটামুটি লো-পাস ফিল্টার। ফেজ প্লটটি রৈখিক, তবে দুটি ফ্রিকোয়েন্সিতে বিচ্ছিন্নতা দেখা যায়, যেখানে ম্যাগনিটিউড শূন্যে নেমে যায়। বিচ্ছিন্নতার মান π, যা সাইন রিভার্সাল নির্দেশ করে। চূড়ান্ত চিত্রে দেখানো মতো, এগুলো রৈখিক ফেজ বৈশিষ্ট্যে প্রভাব ফেলে না।

  1. একটি ব্যতিক্রম হলো MATLAB, যা -এর পর্যায়িকতা পছন্দ করে, কারণ হাফ-সাইকেল/স্যাম্পল এককে নাইকুইস্ট ফ্রিকোয়েন্সি ; 0 থেকে নাইকুইস্ট ফ্রিকোয়েন্সি পর্যন্ত ইন্টারভ্যাল দেখানো প্লটিং সফটওয়্যারের জন্য এটি সুবিধাজনক।
  2. দেখুন § Sampling the DTFT

তথ্যসূত্র

[সম্পাদনা]
  1. Oppenheim, Alan V., Willsky, Alan S., and Young, Ian T.,1983: Signals and Systems, p. 256 (Englewood Cliffs, New Jersey: Prentice-Hall, Inc.) আইএসবিএন ০-১৩-৮০৯৭৩১-৩
  2. Rabiner, Lawrence R., and Gold, Bernard, 1975: Theory and Application of Digital Signal Processing (Englewood Cliffs, New Jersey: Prentice-Hall, Inc.) আইএসবিএন ০-১৩-৯১৪১০১-৪
  3. A. E. Cetin, O.N. Gerek, Y. Yardimci, "Equiripple FIR filter design by the FFT algorithm," IEEE Signal Processing Magazine, pp. 60–64, March 1997.
  4. Proakis, John G.; Manolakis, Dimitris G. (২০০৭)। Digital signal processing: principles, algorithms, and applications (4th সংস্করণ)। Upper Saddle River, NJ: Pearson/Prentice Hall। পৃ. ৬৬৪–৬৭১। আইএসবিএন ৯৭৮-০-১৩-১৮৭৩৭৪-২