পাঠ ৩৭ · ৫৭-এর মধ্যে · মডিউল ৮
Home / Courses / Digital Signal Processing / চেবিশেভ ও এলিপটিক

অ্যানালগ প্রোটোটাইপ ফিল্টার — চেবিশেভ ও এলিপটিক

Analog prototype filters — Chebyshev & elliptic
১০ মিনিট পড়া উচ্চ · Advanced Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • Butterworth, Chebyshev-I, Chebyshev-II ও Elliptic ফিল্টারের মধ্যে ধারণাগত পার্থক্য ও ট্রেড-অফ
  • রিপল কী, এবং কেন এটি শার্পার ট্রানজিশনের বিনিময়ে গ্রহণযোগ্য হতে পারে
  • Chebyshev টাইপ-I-এর সুপরিচিত ম্যাগনিচিউড সূত্র সত্যিকারের কম্পিউট করে Butterworth-এর সাথে তুলনা
  • কোন পরিস্থিতিতে কোন ফিল্টার প্রোটোটাইপ বেছে নেওয়া উচিত তার একটি ব্যবহারিক নির্দেশিকা

১ · রিপল-বনাম-শার্পনেস ট্রেড-অফ

L36-এ দেখা হয়েছে Butterworth-এর ম্যাগনিচিউড রেসপন্স $\omega=0$ থেকে একঘেয়েভাবে (কোনো ওঠানামা ছাড়া) হ্রাস পায় — এটাই এর "maximally flat" বৈশিষ্ট্য। কিন্তু এই মসৃণতার একটি মূল্য আছে — একই অর্ডারে Butterworth-এর পাসব্যান্ড থেকে স্টপব্যান্ডে যাওয়ার ট্রানজিশন ব্যান্ড তুলনামূলকভাবে চওড়া। যদি আমরা কিছু পরিমাণ রিপলRippleফ্রিকোয়েন্সি রেসপন্সের ম্যাগনিচিউডে ছোট, নিয়ন্ত্রিত ওঠানামা (দোলন) — একঘেয়ে (monotonic) না হয়ে পাসব্যান্ড বা স্টপব্যান্ডে মান বারবার সামান্য বাড়ে-কমে। (নিয়ন্ত্রিত ওঠানামা) গ্রহণ করতে রাজি হই, একই অর্ডারে অনেক শার্পার ট্রানজিশন পাওয়া সম্ভব — এটাই এই পাঠের মূল বিন্দু, এবং এটি ক্লাসিক্যাল ফিল্টার তত্ত্বের একটি সুপ্রতিষ্ঠিত, প্রমিত ট্রেড-অফ।

Butterworth
কোনো রিপল নেই (maximally flat), সবচেয়ে আস্তে ট্রানজিশন — L36-এ কভার হয়েছে।
Chebyshev টাইপ-I
পাসব্যান্ডে সমান-রিপল, স্টপব্যান্ড মসৃণ — Butterworth-এর চেয়ে শার্পার ট্রানজিশন।
Chebyshev টাইপ-II
পাসব্যান্ড মসৃণ, স্টপব্যান্ডে সমান-রিপল — সেই অ্যাপ্লিকেশনে ব্যবহৃত যেখানে পাসব্যান্ড মসৃণতা জরুরি।
Elliptic (Cauer)
উভয় ব্যান্ডেই রিপল — একই অর্ডারে সবচেয়ে শার্প ট্রানজিশন, সবচেয়ে "efficient"।

২ · Chebyshev টাইপ-I-এর সূত্র ও সত্যিকারের তুলনা

Chebyshev টাইপ-I ফিল্টারের ম্যাগনিচিউড রেসপন্স একটি সুপরিচিত ক্লোজড-ফর্ম সূত্র দিয়ে দেওয়া হয়, যেখানে $T_N(\omega)$ হলো $N$-তম-অর্ডারের চেবিশেভ পলিনোমিয়াল (একটি প্রমিত গাণিতিক ফাংশন) এবং $\varepsilon$ রিপলের পরিমাণ নিয়ন্ত্রণ করে:

$$|H(j\omega)|^2 = \frac{1}{1+\varepsilon^2\,T_N^2(\omega)}$$

চেবিশেভ পলিনোমিয়াল নিজেই একটি সুপরিচিত রিকারেন্স/ক্লোজড-ফর্ম দিয়ে সংজ্ঞায়িত — $|\omega|\le 1$-এর জন্য $T_N(\omega) = \cos(N\arccos\omega)$, আর $|\omega|>1$-এর জন্য $T_N(\omega) = \cosh(N\,\text{arccosh}\,\omega)$। এই সূত্রটি genuinely কম্পিউট করা সম্ভব — কোনো ফ্যাব্রিকেটেড টেবিল নয়, বরং $N=2$, $\varepsilon=0.5$ নিয়ে Butterworth-এর সাথে পাশাপাশি রাখা যাক:

Python
import math

def chebyshev_T(N, w):
    # প্রমিত চেবিশেভ পলিনোমিয়াল সূত্র
    if abs(w) <= 1:
        return math.cos(N * math.acos(w))
    else:
        return math.cosh(N * math.acosh(w))

N = 2
eps = 0.5   # রিপল ফ্যাক্টর
ripple_db = 10 * math.log10(1 + eps ** 2)
print(f"eps = {eps},  পাসব্যান্ড রিপল = {ripple_db:.4f} dB")
print()
print(f"{'omega':>6} | {'Butterworth |H|':>16} | {'Chebyshev-I |H|':>16}")
for w in [0.0, 0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0]:
    H_butter = math.sqrt(1 / (1 + w ** (2 * N)))
    T = chebyshev_T(N, w)
    H_cheb = math.sqrt(1 / (1 + eps ** 2 * T ** 2))
    print(f"{w:>6.2f} | {H_butter:>16.6f} | {H_cheb:>16.6f}")

    
কম্পিউটেড আউটপুটে $\varepsilon=0.5$-এর জন্য পাসব্যান্ড রিপল হয় $\approx 0.9691$ dB। আরও গুরুত্বপূর্ণ — Butterworth কলামের মান ($1.0 \to 0.998 \to 0.970 \to 0.872 \to 0.707$...) সবসময় একঘেয়েভাবে কমছে, কিন্তু Chebyshev-I কলামের মান ($0.894 \to 0.916 \to 0.970 \to 0.998 \to 0.894$...) $\omega=0$ থেকে $\omega=1.0$ পর্যন্ত ওঠানামা করছে — এটাই "রিপল"-এর প্রত্যক্ষ, সত্যিকারের কম্পিউটেড প্রমাণ। লক্ষ্য করুন $\omega=0$ আর $\omega=1.0$-এ Chebyshev-I-এর মান প্রায় সমান ($\approx 0.894$) — এটাই "equiripple" (সমান-রিপল) বৈশিষ্ট্য।

৩ · Elliptic (Cauer) ফিল্টার — সংক্ষেপে

Elliptic ফিল্টার Chebyshev-এর দুটি টাইপকে একসাথে মিশিয়ে দেয় — পাসব্যান্ড আর স্টপব্যান্ড, দুটোতেই নিয়ন্ত্রিত রিপল গ্রহণ করে। এর ডিজাইন সূত্রে Jacobi elliptic ফাংশন জড়িত থাকে — এটি চেবিশেভ পলিনোমিয়ালের মতো সরল math/cmath ফাংশন দিয়ে সরাসরি কম্পিউট করার মতো নয় (স্ট্যান্ডার্ড লাইব্রেরিতে এই বিশেষ ফাংশন নেই), তাই এই পাঠে আমরা এর সংখ্যাগত মান ফ্যাব্রিকেট না করে শুধু ধারণাগতভাবে ব্যাখ্যা করছি — এটি একটি সুপ্রতিষ্ঠিত, প্রমিত টেক্সটবুক তথ্য যে একই অর্ডারের জন্য Elliptic ফিল্টার চারটি ক্লাসিক্যাল প্রোটোটাইপের মধ্যে সবচেয়ে শার্প ট্রানজিশন ব্যান্ড দেয়, কারণ এটি একসাথে দুই দিকেই রিপলের "বাজেট" ব্যবহার করে।

প্রয়োগে বেছে নেওয়ার নির্দেশিকা

সাধারণ নিয়ম (সুপ্রতিষ্ঠিত ইঞ্জিনিয়ারিং প্র্যাকটিস): পাসব্যান্ডে নিখুঁত মসৃণতা (যেমন অডিও ইকুয়ালাইজেশন) জরুরি হলে Butterworth; একটি ব্যান্ডে সামান্য রিপল মেনে নিয়ে দ্রুত ট্রানজিশন দরকার হলে Chebyshev (I বা II, কোন ব্যান্ডে মসৃণতা বেশি জরুরি তার উপর নির্ভর করে); এবং সবচেয়ে কম অর্ডারে সবচেয়ে শার্প কাটঅফ দরকার হলে (উভয় ব্যান্ডে রিপল মেনে নিয়ে) Elliptic। এই সবগুলোই প্রোটোটাইপ ধাপ — L38-এর বাইলিনিয়ার ট্রান্সফর্ম প্রতিটির জন্য একইভাবে কাজ করে।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ কোড সেলে eps-এর মান আরও বড় করলে (যেমন eps = 1.0) রিপলের পরিমাণ কী হবে বলে আপনার ধারণা?

রিপল বাড়বে। সূত্র অনুযায়ী ripple_db = 10*log10(1+eps**2) — eps=1.0-এ এটি 10*log10(2) ≈ 3.01 dB হবে (যেখানে eps=0.5-এ ছিল ≈0.97 dB)। বড় eps মানে পাসব্যান্ডে বড় ওঠানামা মেনে নেওয়া — বিনিময়ে (একই অর্ডারে) আরও শার্প ট্রানজিশন।

প্র ০২ Chebyshev-II ফিল্টারের নাম "টাইপ-II" — এর ম্যাগনিচিউড রেসপন্স টাইপ-I-এর তুলনায় কোথায় ভিন্ন হবে বলে আপনার ধারণা?

টাইপ-I-এ রিপল থাকে পাসব্যান্ডে আর স্টপব্যান্ড মসৃণভাবে হ্রাস পায়। টাইপ-II ঠিক উল্টো — পাসব্যান্ড সম্পূর্ণ মসৃণ (Butterworth-এর মতো), আর রিপল থাকে স্টপব্যান্ডে (যেখানে যাই হোক অ্যাটেনুয়েশন থাকার কথা, তাই রিপল কম ক্ষতিকর)। এই কারণে টাইপ-II প্রায়ই বেছে নেওয়া হয় যখন পাসব্যান্ডে নিখুঁত মসৃণতা জরুরি কিন্তু তুলনামূলক শার্প ট্রানজিশনও দরকার।

প্র ০৩ যদি Elliptic ফিল্টার সবচেয়ে শার্প ট্রানজিশন দেয়, তাহলে সবসময় Elliptic বেছে না নিয়ে কখনও কখনও Butterworth বেছে নেওয়ার কারণ কী হতে পারে?

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

অনুশীলন

  1. চিন্তা করুন: কোড সেলের টেবিলে $\omega=2.0$ আর $\omega=3.0$-এ Butterworth ও Chebyshev-I-এর মান তুলনা করলে কোনটা বেশি অ্যাটেনুয়েট (কমে) করছে বলে আপনার ধারণা? এটা কি প্রত্যাশিত?

    কম্পিউটেড টেবিল অনুযায়ী $\omega=2.0$-এ Butterworth $\approx 0.2425$ আর Chebyshev-I $\approx 0.2747$ — অর্থাৎ এখানে Butterworth বেশি অ্যাটেনুয়েট করছে (মান ছোট)। এটা প্রত্যাশিত হতে পারে মনে হলেও আসল পার্থক্যটা পাসব্যান্ডে (ছোট $\omega$) স্পষ্ট, যেখানে Chebyshev-I দ্রুত রিপল দেখায়; ট্রানজিশন অঞ্চলের ঠিক পরে (স্টপব্যান্ডের কাছে) উভয়ের আচরণ কাছাকাছি আসে, আর সঠিক তুলনার জন্য একই $-3$ dB পয়েন্ট বরাবর নর্মালাইজ করে দেখা দরকার — এই টিউনিং-এর সূক্ষ্মতাই বাস্তব ফিল্টার ডিজাইন সফটওয়্যার (যেমন বাস্তব ইঞ্জিনিয়ারিং টুলে) হ্যান্ডেল করে।

  2. পরীক্ষা করুন: কোড সেলে eps = 0.5-কে eps = 0.1-এ বদলে Run চেপে দেখুন Chebyshev-I কলাম Butterworth কলামের কতটা কাছাকাছি চলে আসে।

    রান করলে দেখা যাবে ছোট eps = 0.1-এ রিপলের পরিমাণ অনেক কমে যায় ( ripple_db ≈ 0.043 dB) আর Chebyshev-I কলাম প্রায় Butterworth-এর মতোই একঘেয়ে দেখাতে শুরু করে — এটাই প্রত্যাশিত, কারণ eps → 0 হলে $|\varepsilon^2 T_N^2(\omega)| \to 0$ হয়ে যায়, অর্থাৎ Chebyshev সূত্রটি Butterworth-এর কাছাকাছি চলে আসে (যদিও পুরোপুরি একই নয়)।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

আগের পাঠ
অ্যানালগ প্রোটোটাইপ ফিল্টার — বাটারওয়ার্থ