সিগন্যাল, ব্যান্ডউইথ ও ডেটা রেট
এই পাঠে যা শিখবেন
- ব্যান্ডউইথ ও ডেটা রেট/থ্রুপুটের মধ্যে সুনির্দিষ্ট পার্থক্য — একটি সাধারণ বিভ্রান্তির অবসান
- শ্যাননের চ্যানেল ক্যাপাসিটি ফর্মুলা এবং এটি কী প্রশ্নের উত্তর দেয়
- Signal-to-Noise Ratio (SNR) কীভাবে একটি চ্যানেলের সর্বোচ্চ সম্ভাব্য ডেটা রেট নির্ধারণ করে
- Python দিয়ে শ্যাননের ফর্মুলা সরাসরি প্রয়োগ করে সঠিক মান গণনা করা
১ · ব্যান্ডউইথ — একটি মাধ্যমের ফিজিক্যাল বৈশিষ্ট্য
ব্যান্ডউইথBandwidthএকটি ট্রান্সমিশন মাধ্যম কতটা ফ্রিকোয়েন্সি রেঞ্জ বহন করতে পারে, Hz-এ পরিমাপ করা হয় — মাধ্যমের নিজস্ব একটি ফিজিক্যাল বৈশিষ্ট্য। মানে একটি মাধ্যম (M2/L05-এ দেখা কপার, ফাইবার, ওয়্যারলেস) কতটা ফ্রিকোয়েন্সি রেঞ্জ বহন করতে সক্ষম — এটি হার্টজ (Hz)-এ পরিমাপ করা হয়, আর এটি মাধ্যমের একটি ফিজিক্যাল বৈশিষ্ট্য, ঠিক যেমন একটি পাইপের ব্যাস নির্ধারণ করে সেটি একসাথে কতটা পানি প্রবাহিত করতে পারে।
২ · ডেটা রেট (থ্রুপুট) — প্রকৃত পাঠানো বিট
ডেটা রেটData Rate / Throughputপ্রকৃতপক্ষে প্রতি সেকেন্ডে পাঠানো বিটের সংখ্যা (bps) — ব্যান্ডউইথের সাথে এনকোডিং স্কিমের মাধ্যমে সম্পর্কিত, কিন্তু একই জিনিস নয়। হলো প্রকৃতপক্ষে প্রতি সেকেন্ডে পাঠানো বিটের সংখ্যা (bps)। কথ্য ভাষায় প্রায়ই "ব্যান্ডউইথ" বলতে মানুষ আসলে "ডেটা রেট"-ই বোঝায় (যেমন "আমার ইন্টারনেটের ব্যান্ডউইথ ১০০ Mbps") — কিন্তু প্রযুক্তিগতভাবে ব্যান্ডউইথ হলো ফ্রিকোয়েন্সি রেঞ্জ (Hz), আর ডেটা রেট হলো বিট/সেকেন্ড (bps)। এই দুটি সম্পর্কিত (একটি এনকোডিং স্কিমের মাধ্যমে ফ্রিকোয়েন্সিকে বিটে রূপান্তর করা হয়) কিন্তু অভিন্ন নয় — এটি একটি সাধারণ, গুরুত্বপূর্ণ বিভ্রান্তির বিষয়।
একটি মাধ্যমের ব্যান্ডউইথ (Hz) স্থির থাকলেও, বিভিন্ন এনকোডিং স্কিম ব্যবহার করে একই ব্যান্ডউইথ থেকে ভিন্ন ভিন্ন ডেটা রেট বের করে আনা সম্ভব — কিন্তু একটি নির্দিষ্ট সীমার বাইরে যাওয়া যায় না, যা নির্ধারণ করে শ্যাননের ক্যাপাসিটি ফর্মুলা।
৩ · শ্যাননের ক্যাপাসিটি ফর্মুলা
একটি চ্যানেলের তাত্ত্বিক সর্বোচ্চ এরর-মুক্ত ডেটা রেট নির্ধারণ করে শ্যাননের বিখ্যাত ক্যাপাসিটি ফর্মুলা —
$$C = B \log_2(1 + SNR)$$এখানে $C$ = চ্যানেল ক্যাপাসিটি (bps), $B$ = ব্যান্ডউইথ (Hz), আর $SNR$ = Signal-to-Noise RatioSNRসিগন্যালের শক্তি ও নয়েজের (অবাঞ্ছিত হস্তক্ষেপ) শক্তির অনুপাত — যত বেশি, চ্যানেল তত "পরিষ্কার"। (সিগন্যাল-টু-নয়েজ অনুপাত — সিগন্যাল কতটা "পরিষ্কার", নয়েজের তুলনায়)। এই ফর্মুলা বলে দেয় একটি নির্দিষ্ট ব্যান্ডউইথ ও নয়েজ লেভেলের একটি চ্যানেলে, যতই ভালো এনকোডিং স্কিম ব্যবহার করা হোক না কেন, এই সীমার বাইরে এরর-মুক্তভাবে ডেটা পাঠানো সম্ভব নয়।
চ্যানেলের ফ্রিকোয়েন্সি রেঞ্জ, Hz-এ।
সিগন্যাল শক্তি ÷ নয়েজ শক্তি — যত বেশি, তত পরিষ্কার চ্যানেল।
তাত্ত্বিক সর্বোচ্চ এরর-মুক্ত ডেটা রেট, bps-এ।
import math
def shannon_capacity(bandwidth_hz, snr):
"""শ্যাননের চ্যানেল ক্যাপাসিটি ফর্মুলা -- C = B * log2(1 + SNR)"""
return bandwidth_hz * math.log2(1 + snr)
# ওয়ার্কড উদাহরণ -- B = 1 MHz, SNR = 1000 (একটি পরিষ্কার চ্যানেল)
bandwidth_hz = 1_000_000
snr = 1000
capacity_bps = shannon_capacity(bandwidth_hz, snr)
print(f"ব্যান্ডউইথ (B): {bandwidth_hz:,} Hz")
print(f"SNR: {snr}")
print(f"log2(1 + SNR) = log2({1 + snr}) = {math.log2(1 + snr):.4f}")
print(f"চ্যানেল ক্যাপাসিটি C = {capacity_bps:,.0f} bps = {capacity_bps / 1_000_000:.2f} Mbps")
# তুলনা -- একই ব্যান্ডউইথ, কিন্তু একটি অনেক বেশি নয়েজি চ্যানেল (কম SNR)
noisy_snr = 100
noisy_capacity = shannon_capacity(bandwidth_hz, noisy_snr)
print(f"\nএকই ব্যান্ডউইথে কিন্তু কম SNR ({noisy_snr}) হলে:")
print(f"চ্যানেল ক্যাপাসিটি C = {noisy_capacity:,.0f} bps = {noisy_capacity / 1_000_000:.2f} Mbps")
print(f"\nদেখুন -- একই ব্যান্ডউইথ থাকা সত্ত্বেও নয়েজ বাড়লে (SNR কমলে) ক্যাপাসিটি উল্লেখযোগ্যভাবে কমে যায়।")
math.log2 ব্যবহার করে মানটি সরাসরি গণনা করা হয়েছে, কোনো হাত দিয়ে
হিসাব করা সংখ্যা হার্ডকোড করা হয়নি। log2(1001) ≈ 9.968, তাই ক্যাপাসিটি ≈ ৯.৯৭ Mbps — এটিই
একটি "পরিষ্কার" ১ MHz চ্যানেলের তাত্ত্বিক সীমা, বাস্তবে প্রকৃত ডেটা রেট প্রোটোকল ওভারহেড ও অসম্পূর্ণ
এনকোডিং দক্ষতার কারণে এর চেয়ে কিছুটা কম হয়।
ব্যান্ডউইথ ও ডেটা রেট আলাদা জিনিস, আর শ্যাননের ফর্মুলা এই দুইয়ের মধ্যেকার সম্পর্কের একটি কঠোর, গাণিতিক সীমা বেঁধে দেয় — কোনো প্রকৌশল কৌশলই একটি নির্দিষ্ট ব্যান্ডউইথ ও নয়েজ লেভেলের চ্যানেলে এই সীমা অতিক্রম করে এরর-মুক্তভাবে ডেটা পাঠাতে পারে না। পরের পাঠে (L07) আমরা দেখব কীভাবে একটি একক মাধ্যমের ব্যান্ডউইথ একাধিক ব্যবহারকারীর মধ্যে ভাগ করে নেওয়া যায় — মাল্টিপ্লেক্সিং।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ কেউ বলল "আমার ইন্টারনেট সংযোগের ব্যান্ডউইথ ১০০ Mbps" — প্রযুক্তিগতভাবে এই বাক্যে কী ভুল আছে?
প্রযুক্তিগতভাবে "Mbps" (মেগাবিট প্রতি সেকেন্ড) হলো ডেটা রেট-এর একক, ব্যান্ডউইথের নয় — ব্যান্ডউইথ পরিমাপ করা হয় Hz-এ (ফ্রিকোয়েন্সি রেঞ্জ)। তাই বাক্যটি আসলে বলছে "আমার ইন্টারনেট সংযোগের ডেটা রেট ১০০ Mbps" — তবে কথ্য ভাষায় এই বিভ্রান্তি এতটাই সাধারণ যে "ব্যান্ডউইথ" শব্দটি প্রায় সর্বত্র ডেটা রেট বোঝাতেই ব্যবহৃত হয়।
প্র ০২ উপরের কোড সেলে SNR ১০০০ থেকে বাড়িয়ে ১০,০০০ করলে ক্যাপাসিটির উপর কী প্রভাব পড়বে — অনেক বেশি বাড়বে কি?
বাড়বে, কিন্তু log2-এর কারণে লগারিদমিকভাবে, রৈখিকভাবে নয় — SNR ১০ গুণ বাড়ালেও
ক্যাপাসিটি ১০ গুণ বাড়বে না, বরং log2(10001) ≈ ১৩.২৯ (আগের ৯.৯৭-এর তুলনায় সামান্য বেশি)। এটিই
শ্যাননের ফর্মুলার একটি গুরুত্বপূর্ণ, প্রায়ই অবাক করা বৈশিষ্ট্য — নয়েজ কমানোর মাধ্যমে ক্যাপাসিটি বাড়ানোর
একটি সীমা আছে, প্রতিটি অতিরিক্ত ইউনিট SNR ক্রমহ্রাসমান লাভ দেয়।
প্র ০৩ শ্যাননের ফর্মুলা অনুযায়ী ব্যান্ডউইথ (B) দ্বিগুণ করলে ক্যাপাসিটির উপর কী প্রভাব পড়বে?
ফর্মুলায় $B$ সরাসরি গুণকরূপে আছে ($C = B \times \log_2(1+SNR)$), তাই $B$ দ্বিগুণ করলে (SNR অপরিবর্তিত রেখে) ক্যাপাসিটিও সরাসরি দ্বিগুণ হয়ে যায় — এটি $SNR$-এর লগারিদমিক প্রভাবের বিপরীতে, ব্যান্ডউইথের প্রভাব রৈখিক। এই কারণেই বাস্তব নেটওয়ার্কে বেশি ব্যান্ডউইথ পাওয়া (যেমন ফাইবারে যাওয়া, M2/L05) সাধারণত নয়েজ কমানোর চেয়ে ক্যাপাসিটি বাড়ানোর অনেক বেশি নির্ভরযোগ্য উপায়।
অনুশীলন
-
পরীক্ষা করুন: উপরের কোড সেলে
bandwidth_hz-কে ২,০০০,০০০ (২ MHz) করে, বাকি সব একই রেখে Run চাপুন — নতুন ক্যাপাসিটি আগের তুলনায় কতটা বদলায়?নতুন ক্যাপাসিটি প্রায় ১৯.৯৪ Mbps হবে — ঠিক আগের ৯.৯৭ Mbps-এর দ্বিগুণ, কারণ ব্যান্ডউইথ ফর্মুলায় সরাসরি গুণকরূপে আছে (রৈখিক সম্পর্ক),
log2(1+SNR)অংশটি অপরিবর্তিত থাকায়। -
চিন্তা করুন: বাস্তব জীবনে একটি ওয়াই-ফাই সংযোগ কেন কখনো তার তাত্ত্বিক শ্যানন ক্যাপাসিটির পুরোটা ব্যবহার করতে পারে না?
শ্যাননের ফর্মুলা একটি তাত্ত্বিক ঊর্ধ্বসীমা দেয়, বাস্তব গ্যারান্টি নয় — বাস্তবে প্রোটোকল হেডার ওভারহেড (M3-M5), অসম্পূর্ণ এনকোডিং/মডুলেশন দক্ষতা, পরিবর্তনশীল নয়েজ লেভেল, এবং একাধিক ডিভাইসের মধ্যে শেয়ার্ড মাধ্যম ব্যবহারের প্রতিযোগিতা (M8/L38-এর CSMA/CA) — সব মিলিয়ে প্রকৃত থ্রুপুট সবসময় তাত্ত্বিক ক্যাপাসিটির চেয়ে কিছুটা কম থাকে।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ পরবর্তী পাঠ — মাল্টিপ্লেক্সিং (FDM, TDM, WDM) — একটি মাধ্যমের ব্যান্ডউইথ কীভাবে একাধিক ব্যবহারকারীর মধ্যে ভাগ করা হয়।
- Cloud Computing & DevOps কোর্স সঙ্গী কোর্স ক্লাউডে ব্যান্ডউইথ প্রোভিশনিং ও নেটওয়ার্ক থ্রুপুট মনিটরিং ব্যবহারিকভাবে কীভাবে করা হয় তা শিখতে দেখুন।
- Cybersecurity & Ethical Hacking কোর্স সঙ্গী কোর্স নেটওয়ার্ক জ্যামিং কীভাবে SNR ইচ্ছাকৃতভাবে কমিয়ে যোগাযোগ ব্যাহত করে তা শিখতে দেখুন।
- সব Courses দেখুন ABCL TECH C, C++, Python, Java, JavaScript, DSA, DBMS, Discrete Mathematics, System Design, Cybersecurity, Cloud Computing & DevOps ও Computer Networks — সব এক জায়গায়।