Description
از آنجایی که شبیه سازی ها در محیط متلب و با کامپیوتر انجام می شود، همه ی سیگنال هایی که در شبیه سازی ها با آن ها سر و کار داریم سیگنال های گسسته است. لذا همه ی نتایج باید با عناوین مطرح شده در کلاس در حوزه ی گسسته تطابق د اشته باش د. اما همان گونه که چندین بار سر کلاس مطرح شد دو حوزه ی گسسته و پیوسته، روابط بسیار نزدیکی دارند و مفاهیم آنها با یکدیگر در تطابق است.
)بردار( 𝑥 به طو ل 𝑁 سمپل و معاد ل 𝑇 ثانیه
فرض کنی د در MATLAB، در حوزه ی زمان، یک سیگنال داریم
1 𝑇
𝑡𝑠 = 𝑓 = 𝑁
𝑡 = 𝑡𝑠𝑡𝑎𝑟𝑡: 𝑡𝑠: 𝑡𝑒𝑛𝑑 − 𝑡𝑠
)𝑠 ( و می خواهی م آن را به حوزه ی فوریه ببریم. )به شکل زیر نگاه کنید(. در واقع 𝑓𝑠 فرکانس نمونه برداری و 𝑡𝑠 فاصله ی زمانی بین دو سمپل را نشان می دهد. این دو پارامتر به ما می گویند که از سیگنال پیوسته اصلی به چه صورت نمونه برداری شده است و سیگنال گسسته ی فعلی تولید شده است. برای رسم دقیق سیگنال در حوزه ی زمان اگر بازه ی زمانی مربوط به سیگنال معلوم باشد به طوری که
.رسم کرد plot(𝑡, 𝑥) می توان ب ه راحتی آن را با دستور ، 𝑡𝑠𝑡𝑎𝑟𝑡 − 𝑡𝑒𝑛𝑑 = 𝑇
برای بردن سیگنال به حوزه ی فوریه از دستور ((𝑦 = fftshift(fft(𝑥 استفاده می کنیم. fft دستور اصلی است و fftshift فقط بازه ی متقارن حول فرکانس صفر را ایجاد می کند. خروجی این دستور یعنی 𝑦 یک بردار با 𝑁 سمپل است که هر درایه ی آن یک عدد مختلط است لذا هر درایه یک اندازه و یک فاز دارد. نکته ی مهم در این جا این است که هر یک از این 𝑁 عدد به دست آمده متعلق به چه فرکانسی می باشد؟
−𝑓
𝑓 = 𝑠 ∶ 𝑓𝑠 ∶ 𝑓𝑠 −
2 𝑁 2 𝑓
𝑠
𝑁
فرکانس ها به صورت خواهند بود. بنابراین برای رسم اندازه می توان از دستور
((plot(𝑓, abs(𝑦 و برای رسم فاز می توان از دستور ((plot(𝑓, angle(𝑦 استفاده کرد.
راجع به بازه ی فرکانس های در نظر گرفته شده )هایلایت سبز(، سه نکته ی زیر حائز اهمیت هستند:
نکته ی اول:
در کلاس برای تطابق با کتاب اپنهایم، کلمه ی فرکانس به 𝜔 اطلاق شد ولی در این تمرین کامپیوتری به 𝑓 = 2 𝜔𝜋 عنوان فرکانس می دهیم. دلیل این امر این است که از دست عدد 𝜋 راحت شویم.
نکته ی دوم:
اگر خاطرتان باشد در کلاس گفتیم بیشترین فرکانس )از منظر تغییرات سریع زمانی( در حوزه ی گسسته فرکانس است که در این جا می بینید جای آن عدد 𝑓2𝑠 نشسته است. در واقع در سرتاسر درس سیگنال نرخ نمونه برداری برابر 1 =𝑓𝑠 هرتز در نظر گرفته می شود )یک سمپل در هر ثانیه.( از این نکته می توان نتیجه گرفت هر چه از سیگنال پیوسته در حوزه ی زمان با نرخ بالاتری نمونه برداری کنی م )↑𝑓𝑠 (، در سیگنا ل گسسته به دست آمده، می توان فرکانس های بالاتر را نیز )در صورت وجود( مشاهده کرد چون بازه ی فرکانسی قابل مشاهده افزایش پیدا می کند. در حالت حدی، اگر نرخ نمونه برداری به سمت بی نهایت برود ) یا به عبارت دیگر) 0 →𝑡𝑠 ( برود، عملا سیگنال گسسته به دست آمده با سیگنال پیوسته اصلی یکی خواهد بود و هر مولفه ی فرکانسی که در سیگنال اصلی بوده است، در سیگنال گسسته نیز مشاهده می شود. در این قسمت کاملا بای د درک کرده باشید که در sampling که یک سیگنال پیوسته را به یک سیگنال گسسته تبدیل می کند چه چیزی از بین می رود.
نکته ی سوم:
𝑓
𝛿𝑓 = 𝑁𝑠
1
𝛿𝑓 = 𝑇
نکته ی آخر راجع به رزولوشن فرکانسی است که ایجاد شده است یعنی )هایلات سبز را نگاه کنی د(. اگر از رابطه ای که با هایلایت زرد رنگ مشخص شده است استفاد ه کنید می توان دید که رزولوشن فرکانسی برابر است با ، یعنی رزولوشن فرکانسی برابر با عکس طول زمانی سیگنال است و هیچ ربطی هم به نرخ نمونه برداری 𝑓𝑠 ندارد. هرچه می خواهید نرخ نمونه برداری را افزایش دهید اما رزولوشن فرکانسی مادامی که طول زمانی سیگنال) 𝑇 ثانیه( تغییری نکند هیچ تغییری نمی کند. حال ببینیم مفهوم رزولوشن چیست؟ رزولوشن فرکانسی گام های فرکانسی است که می توان در نظر گرفت تا سیگنال گسسته را در فضای فوریه توصیف کرد. این مفهوم را با یک مثال توضیح می دهیم. فرض کنید طول زمانی یک سیگنال 1 =𝑇 ثانیه است و نرخ نمونه برداری =𝑓𝑠 𝐻𝑧 20 است. بنابراین رزولوشن فرکانسی برابر 𝛿𝑓 = 1 𝐻𝑧 می شو د و بازه ی فرکانسی که در حوزه ی فوریه ی سیگنال نمونه برداری شده می توان مشاهده کرد به صورت 9 ∶ 1 ∶ 10− =𝑓 هرتز خواهد بود )هایلات سبز.( اگر سیگنال اصلی حاوی دو سیگنال تک تُُن به صور ت (𝑥1(𝑡) = exp(1𝑗 ∗ 2𝜋 ∗ 5 ∗ 𝑡) + exp(1𝑗 ∗ 2𝜋 ∗ 8 ∗ 𝑡
باشد، طبیعتا قله های ی در اندازه ی سیگنال در حوزه ی فوریه، در فرکانس های 8 و 5 هرتز مشاهده خواهید کرد.
حال فرض کنید سیگنال اصلی حاوی دو سیگنال تک تن به صور ت
𝑥2(𝑡) = exp(1𝑗 ∗ 2𝜋 ∗ 5 ∗ 𝑡) + 𝑒𝑥𝑝(1𝑗 ∗ 2𝜋 ∗ 5.1 ∗ 𝑡)
باشد. در این حالت فقط یک قله در اندازه ی سیگنال در حوزه ی فوریه، در فرکانس 5 هرتز مشاهده خواهید کرد و دیگر توانایی تفکیک این دو سیگنال را در حوزه ی فوریه نخواهید داشت زیرا اختلاف فرکانس دو سیگنال تک تُُن کمتر از 𝛿𝑓 = 1 𝐻𝑧 می باش د. بنابراین رزولوشن فرکانسی قدرت تفکیک پذیری فرکانسی را در حوزه ی فوریه نشان می ده د. حتما این مثال را به عنوان “تمرین شماره ی 1 -0 ( ” در نظر بگیرید و آن را در متلب شبیه سازی کنی د و نتایج را گزارش کنی د تا بهتر آن را درک کنید .بازه ی زمانی سیگنال را از 0 =𝑡𝑠𝑡𝑎𝑟𝑡 تا 1 =𝑡𝑒𝑛𝑑 ثانیه در نظر بگیرید.
تقسیم کنی د max(abs(𝑦)) را به 𝑦 یعنی fftshift(fft(𝑥))دستو ر
حال به سراغ بخش او ل تمارین می رویم. قبل از آن توجه داشته باشید در هر سوالی که از شما خواسته شده اندازه تبدیل فوریه را رسم کنید، ماکزیمم خروجی را برابر یک در نظر بگیرید. برای این کار کافی است خروجی . دلیل این است که دستور fft یک ضریب ثابتی به تبدیل فور یه اضافه می کند که برای ما اهمیتی ندارد. همچنین از دستورها ی ylim و xlim به درستی استفاده کنید تا سیگنال ها به خوبی نمایش داده شوند. برای رسم ها اگر تمایل داشتید م ی توانی د از دستور db استفاده کنی د تا تغییرا ت کوچک بهتر نمایش داده شون د.
تمری ن 1 -1 (
سیگنال (𝑥1(𝑡) = cos (10 𝜋𝑡 را در نظر بگیرید.
الف( این سیگنال را در حوزه ی زمان با در نظر گرفتن بازه ی زمانی 1− =𝑡𝑠𝑡𝑎𝑟𝑡 تا 1 =𝑡𝑒𝑛𝑑 ثانیه و فرکانس نمونه برداری 𝑓𝑠 = 50 𝐻𝑧 رسم کنید.
ب( اندازه ی تبدیل فوریه ی این سیگنال را با همان مفروضات قسمت الف رسم کنید.
ج( به صورت تئوری تبدیل فوریه ی پیوسته این سیگنال را حساب کنید. همان طور که مشاهده می کنید شکل کلی نتیجه به دست آمده با نتیجه ی قسمت ب تطابق دارد.
تمری ن 1 -2 (
سیگنال (𝑥2(𝑡) = ∏(𝑡 را در نظر بگیرید.
الف( این سیگنال را در حوزه ی زما ن با در نظر گرفتن بازه ی زمانی 1− =𝑡𝑠𝑡𝑎𝑟𝑡 تا 1 =𝑡𝑒𝑛𝑑 ثانیه و فرکانس نمونه برداری 𝑓𝑠 = 50 𝐻𝑧 رسم کنید.
ب( اندازه ی تبدیل فوریه ی این سیگنال را با همان مفروضات قسمت الف رسم کنید.
ج( به صورت تئوری تبدیل فوریه ی پیوسته این سیگنال را حساب کنید. همان طور که مشاهده می کنید شکل کلی نتیجه به دست آمده با نتیجه ی قسمت ب تطابق دارد.
تمری ن 1 -3 (
.را در نظر بگیرید 𝑥3(𝑡) = 𝑥1(𝑡)𝑥2(𝑡) = cos (10 𝜋𝑡) ∏(𝑡) سیگنال
الف( این سیگنال را در حوزه ی زمان با در نظر گرفتن بازه ی زمانی 1− =𝑡𝑠𝑡𝑎𝑟𝑡 تا 1 =𝑡𝑒𝑛𝑑 ثانیه و فرکانس نمونه برداری 𝑓𝑠 = 50 𝐻𝑧 رسم کنید.
ب( اندازه ی تبدیل فوریه ی این سیگنال را با همان مفروضات قسمت الف رسم کنید.
ج( به صورت تئوری تبدیل فوریه ی پیوس ته این سیگنال را حساب کنید. همان طور که مشاهده می کنید شکل کلی نتیجه به دست آمده با نتیجه ی قسمت ب تطابق دارد.
* توجه داشته باشی د هر چه طول پالس Π افزایش پیدا کند، سیگنال (𝑥3(𝑡 به سیگنال (𝑥1(𝑡 شبیه تر خواهد شد و بنابراین دو ضربه در فرکانس های 5 و 5- هرت ز بهتر نشان داده خواهند شد .
تمری ن 1 -4 (
سیگنال (4 𝑥4(𝑡) = cos (30 𝜋𝑡 + 𝜋 را در نظر بگیرید.
الف( اندازه ی تبدیل فوریه ی این سیگنال را با در نظر گرفتن بازه ی زمانی 0 =𝑡𝑠𝑡𝑎𝑟𝑡 تا 1 =𝑡𝑒𝑛𝑑 ثانیه و فرکانس نمونه برداری 𝑓𝑠 = 100 𝐻𝑧 رسم کنید.
ب( فاز تبدیل فوریه ی این سیگنال را با همان مفروضات قسمت الف رسم کنید. برای این کار ابتدا فاز فرکانس هایی که اندازه ی تبدیل فوریه در آنها ناچیز ا ست را برابر صفر کنید و سپس فاز را به صورت مضربی از 𝜋 نمایش دهید. برای این کار از دستور زیر استفاده کنید.
tol = 1e-6; y(abs(y) < tol) = 0;
theta = angle(y);
plot(f,theta/pi) xlabel ‘Frequency (Hz)’
ylabel ‘Phase / pi’ج( به صورت تئوری تبدیل فوریه ی پیوسته این سیگنال را حساب کنید. آیا نتایج به دست آمده در قسمت الف و ب با مقدار تئوری مطابقت دارد ؟
تمری ن 1 -5 (
سیگنال (𝑥5(𝑡) = ∑9𝑘=−9 ∏(𝑡 − 2𝑘 را در نظر بگیرید.
الف( این سیگنال را در حوزه ی زمان با در نظر گرفتن بازه ی زمانی 19− =𝑡𝑠𝑡𝑎𝑟𝑡 تا 19 =𝑡𝑒𝑛𝑑 ثانیه و فرکانس نمونه برداری 𝑓𝑠 = 50 𝐻𝑧 رسم کنید.
ب( اندازه ی تبدیل فوریه ی این سیگنال را با همان مفروضات قسمت الف رسم کنید.
ج( سیگنال (𝑥5(𝑡 به نوعی متناوب شده ی سیگنال (𝑥2(𝑡) = ∏(𝑡 است. چرا یک تعدادی ضربه در خروجی مشاهده می کنید؟ فواصل ضربه هایی که مشاهده می کنید چه قدر است؟ همان طور که مشاهده می کنید نتایج با آنچه در درس تحت موضوع “تبدیل فوریه سیگنال های متناوب” آموختیم تطابق دارد.
مقدمه ی دوم:
فرکانس یعنی تغییرات در حوزه زمان و تبدیل فوریه قرار است ما را از حوزه زمان به حوزه فرکانس ببرد. پس هرچه تغییرات در حوزه زمان شدید تر باشد یعنی تابع ما دارای فرکانس های بالا تری است و وقتی از آن تبدیل فوریه بگیریم فرکانس های بالاتری در تبدیل فوریه آن ظاهر میشود.
شدید ترین تغییرات در حوزه زمان چیست؟ مسلما ناپیوستگی شدید ترین تغییرات در حوزه زمان است پس تمام توابعی که ناپیوستگی دارند تبدیل فوریه آن ها باید بزرگترین فرکانس ها را نیز شامل شود. این یعنی باید فرکانس های بی نهایت و منفی بی نهایت را نی ز داشته باشد. هم چنین برای بیان کردن این تغییرات تعداد محدودی فرکانس پاسخ گو نخواهد بود پس تبدیل فوریه آن فقط روی بخش محدودی از محور فرکانس مقدار ندارد و باید از ∞- تا ∞+ گسترده باشد.
کندترین تغییرات در زمان چیست؟ طبیعتا تابع ثابت هیچ تغییری در حوزه ی زمان ندارد که تبدیل فوریه ی آن فقط یک ضربه در فرکانس صفر می شود. بنابرای ن اگر یک تابع در حوزه زمان تغییرات زیادی نداشته باشد و ناپیوستگی هم نداشته باشد دارای فرکانس های بالایی نیست و با فرکانس های پایی ن تغییرات آن قابل بیان است.
حال با توجه به مقدمه ی دوم به تمارین بعدی پاسخ دهید.
تمری ن 2 -1 (
سیگنال (𝑥6(𝑡) = 𝛿(𝑡 را در نظر بگیرید.
الف( این سیگنال را در حوزه ی زمان با در نظر گرفتن بازه ی زمانی 1− =𝑡𝑠𝑡𝑎𝑟𝑡 تا 1 =𝑡𝑒𝑛𝑑 ثانیه و فرکانس نمونه برداری 𝑓𝑠 = 50 𝐻𝑧 رسم کنید.
ب( اندازه ی تبدیل فوریه ی این سیگنال را با همان مفروضات قسمت الف رسم کنید.
ج( با توجه به مقدمه ی دوم، دلیل آنچه مشاهده می کنید را شرح دهید. همچنین به صورت تئوری تبدیل فوریه ی پیوسته این سیگنال را حساب کنید.
تمری ن 2 -2 (
سیگنال 1 = (𝑥7(𝑡 را در نظر بگیرید.
الف( این سیگنال را در حوزه ی زمان با در نظر گرفتن بازه ی زمانی 1− =𝑡𝑠𝑡𝑎𝑟𝑡 تا 1 =𝑡𝑒𝑛𝑑 ثانیه و فرکانس نمونه برداری 𝑓𝑠 = 50 𝐻𝑧 رسم کنید.
ب( اندازه ی تبدیل فوریه ی این سیگنال را با همان مفروضات قسمت الف رسم کنید.
ج( با توجه به مقدمه ی دوم، دلیل آنچ ه مشاهده می کنید را شرح دهید. همچنین به صورت تئوری تبدیل فوریه ی پیوسته این سیگنال را حساب کنید.
مقدمه ی سو م:
فرض کنید می خواهیم پیامی را به صورت بی سیم از طریق اموا ج برای شخصی ارسال کنیم. ابتدا پیام را در کامپیوتر به صورت یک رشته بیت باینری در آورده و سپس بیت ها را کدگذاری می کنیم. مث لا به جای هر بیت یک سیگنال خاص را ارسال می کنیم. فرض کنید به جای بیت صف ر، سیگنال 0 = (𝑥0(𝑡 را به مدت یک ثانیه و به جای بیت یک، سیگنال (𝑥1(𝑡) = sin (2𝜋𝑡 را به مدت یک ثانیه ارسال کنیم. مثلاً رشته بیت 1010 به صورت زیر ارسال می شود:
فرض کنید قدرت فرستنده به گونه ای است که حداکثر دامنه ای که به سیگنال می تواند بدهد، دامنه ی یک است. همچنین فرکانس نمونه برداری سیگنال را 𝑓𝑠 = 100 𝐻𝑧 در نظر بگیرید که باعث می شود هر سیگنال یک ثانیه ای شامل 100 سمپل باش د. این فرض را تا آخ ر تمرین کامپیوتری در نظر داشته باشید.
در گیرنده این سیگنال دریافت می شود. با فرض این که فرستنده و گیرنده از نظر زمانی کاملاً سنکرون باشند، برای رمزگشایی از پیام در گیرنده کافی است در هر یک ثانیه، correlation سیگنال دریافتی را با (sin (2𝜋𝑡 2 حساب کنیم. هر جایی correlation مقدار داشته باشد )مقدا ر1 =𝑠𝑖𝑛2(2𝜋𝑡)dt 2 ∫( می فهمیم بیت ارسالی برابر یک بوده و هر جا مقدار correlation صفر شود می فهمیم بیت ارسالی برابر صفر بوده است. توجه داشته باشید عدد 2 در دامنه ی (sin (2𝜋𝑡2 هیچ اهمیتی ندارد و فقط برای رُُند شدن مقدار correlation است .
در سناری وی بالا سرعت ارسال پیام )𝑠𝑒𝑐 𝑏𝑖𝑡 )bit rate 1 است. حال فرض کنید بخواهیم bit rate را افزایش دهیم. برای این کار باید کدگذاری را روی بیت های بیشتر ی انجام دهیم. مثلا به جای هر دو بیت، یک سیگنال خا ص را ارسال کنیم. برای ارسال 00 سیگنال 0 = (𝑥0(𝑡 را به مدت یک ثانیه، برای ارسال 01 سیگنال = (𝑥1(𝑡( sin (2𝜋𝑡 را به مدت یک ثانیه، برای ارسال 10 سیگنال (𝑥2(𝑡) = sin (2𝜋𝑡 را به مدت یک ثانیه و برای ارسال 11 سیگنال (𝑥3(𝑡) = sin (2𝜋𝑡 را به مدت یک ثانیه ارسال می کنیم. مثلا رشته بیت 1000010011 به صورت زیر ارسال می شود.
در گیرنده این سیگنال دریافت می شود. مجدداً برای رمزگشایی از پیام در گیرنده کافی است در هر ثانیه،
correlation سیگنال دریافتی را با (sin (2𝜋𝑡2 حساب کنیم و بسته به خروجی correlation که می تواند مقادیر صفر، ، و یک بگیرد راجع به بیت های ارسالی تصمیم گیری کنیم. در این سناریو سرعت ارسال پیام )bit
.است 2 𝑠𝑒𝑐 𝑏𝑖𝑡 )rate
این روند را می توان به همین ترتیب ادامه داد و سرعت ارسال پیام را افزایش داد. یعنی هر سه بیت را کدگذاری کرد تا سرعت ارسال سه برابر شود و… اما این اضافه شدن سرعت در عمل یک مشکل اساسی دارد که به ما اجازه نمی دهد سرعت را از حدی بیشتر کنیم. مشکل نویز است! وقتی فرستنده سیگنالی را به گیرنده ارسال می کند، در گیرنده علاوه بر سیگنال اصلی، نویز نیز به سیگنال اصلی اضافه می شود. مثلا در سناریوی اول و دوم سیگنال های زیر به گیرنده می رس د:
حال اگر correlation سیگنال دریافتی را با (sin (2𝜋𝑡2 حساب کنیم، خروجی ها دقیقاً اعدادی که انتظار داشتیم نمی شوند و بنابراین ممکن است به اشتباه رمز گشایی کنیم. هر چه سرعت ارسال بیت )bit rate( بیشتر باشد این خطا بیشتر خواهد بود. چرا؟ قدری فکر کنید و بعد پاسخ این سوال را که در ادامه آمده است بخوانید.
به عنوان مثال سناریوی اول که سرعت ارسال 𝑠𝑒𝑐 𝑏𝑖𝑡 1 بود را در نظر بگیرید. انتظار داشتیم مقادیر خروجی correlation عدد صفر یا عدد یک باشد ولی در حضور نویز این اعداد کمی تغییر می کنند. پس به نظر می رسد باید عدد 0.5 را به عنوان threshold )آستانه( تعریف کنیم. اگر correlation بیش از 0.5 شد اعلام کنیم بیت مورد نظر یک بوده و اگر کمتر از 0.5 شد اعلام کنیم بیت مورد نظر صفر بوده است.
در سناریوی دوم که سرعت ارسال 𝑠𝑒𝑐 𝑏𝑖𝑡 2 بود، انتظار داشتیم مقادیر خروجی correlation عدد صفر، ، و یک شود، اما به خاطر وجود نویز این اعداد ممکن است هر مقداری بگیرند. بنابراین باید سه آستانه ی ، و را تعریف کنیم و با توجه به آنها راجع به بیت ها تصمیم گیری کنیم. چون فاصله ی این اعداد از هم کمتر شده است بنابراین احتمال خطا در تصمیم گیری بیشتر می شود.
پس در محیط عملیاتی، در روش پیشنهاد شده، یک trade off بین افزایش سرعت انتقال پیام و مقاوم بودن نسبت به نویز وجود دارد. حال می خواهیم مفاهیم بیان شده در این بخش را شبیه سازی کنیم.
هدف این تمرین ارسال پیام به زبان انگلیسی از فرستنده به گیرنده است. هر پیام فقط شامل حروف کوچک انگلیسی، فاصله، نقطه، ویرگول، علامت تعحب، سمی کالن) ;( و کوتیشن )“( است. بنابراین در مجموع 32 کاراکتر داریم .به هر کاراکتر 5 بیت مرتبط می کنیم.
تمرین 3 -1 ( یک سلول به اسم Mapset با ابعاد 32 × 2 درست کنید. در سطر اول خود کارکترها را قرار دهی د و در سطر دوم 5 بیتی که به آنها مرتبط کردید را قرار دهید. به عنوان مثال شکل زیر قسمت ابتدایی Mapset را نشان می دهد) .دستور dec2bin برای باینری کردن اعداد کمک کننده خواهد بود. (
تمرین 3 -2( تابعی) function( به نام coding_amp بنویسید ک ه ورودی های آن 1( پیام مورد نظر برای ارسال و 2( سرعت ارسال اطلاعات باشد و خروجی آن پیام کدگذاری شده باشد.
راهنمایی: مثلا فرض کنید می خواهیم پیام bc ر ا با سرعت 𝑠𝑒𝑐 𝑏𝑖𝑡 1 ارسال کنیم. ابت دا حروف پیام را به صورت باینری در آورید که )با توجه به شکل بالا( می شود: 0000100010 ، سپس رشته باینری به دست آمده را مطابق آنچه در مقدمه توضیح داده شد کدگذاری کنی د. توجه داشته باشید پیام ممکن است هر کلمه یا جمله ای با طول دلخواه شامل 32 کاراکتر ذکر شده باشد. د ر بخش های بعدی بیشتری ن سرعت ارسال اطلاعات را 3 بیت برثانیه در نظر خواهیم گرفت گرچه کد شما می توان د هر عدد طبیعی دلخواهی را پشتیبانی کن د! )دستورات extract و strlength برای جداسازی کاراکترهای پیام کمک کننده خواهند بود( .
تمرین 3 -3 ( خروجی تابع coding_amp را برای پیام )کلمهی( signal با سرعت ارسال اطلاعات یک، دو و س ه بیت بر ثانیه به صورت جداگانه رسم کنید.
تمرین 3 -4 ( تابعی به نام decoding_amp بنویسید که ورودی های آن 1( پیام کدگذاری شده )سیگنال زمانی تولید شده در قسمت قبل( و 2( سرعت ارسال اطلاعات باش د و خروجی آن پیام رمز گشایی شده باش د. تابعی که نوشتید را روی هما ن پیام signal که در قسمت 3-3 با سرعت ارسال های مختلف کُد کردید تست کنی د تا مطمئن شوید کدتان درست کار می کند.
توجه: اگر می خواهید نتایج correlation کاملاً شبیه آنچه که در مقدمه بیان شد باش د، عدد 0.01 را پشت correlation ضرب کنید. چون به صورت گسسته correlation را حساب می کنی د و تعداد نمونه ها در هر باز هی correlation گیری 100 نمونه است این اتفاق رخ می دهد.
تمرین 3 -5 ( در این قسمت می خواهیم به سیگنال دریافتی در گیرنده نوی ز اضافه کنیم تا شبیه سازی مشابه شرایط واقعی شود. برای تولید نویز از دستور randn استفاده کنی د. این دستور نویز گوسی با میانگین صفر و واریانس یک تولید می کند. برای زیاد یا کم کردن قدرت نویز کافی است در پشت این دستور عدد دلخواه 𝜎 )بدون توان 2( را ضرب کنی د. این عدد کاری می کند تا واریانس نویز 2𝜎 شود. به پیام signal بعد از این که کدگذاری شد نویز گوسی با واریانس 0.0001 و میانگین صفر اضافه کنید و بعد آن را decode کنید. آیا بازهم پیام signal استخراج ش د؟ نتایج decoding را برای هر سه bit rate یک، دو و سه به صورت جداگانه گزارش کنید.
تمرین 3 -6 ( قدرت نویز را کم کم و طی چندی ن مرحله افزایش دهید و هر بار قسمت 3 -5 را تکرار کنید. مشاهدات خود را گزارش کنید. کدام یک از سه bit rate به نویز مقاوم تر بودند؟ آیا نتایج با آنچه در مقدمه بیان شد همخوانی داشتن د؟
تمرین 3 -7 ( طی شبیه سازی هایی که در قسم ت 3 -6 انجام دادید، بیشترین واریانس نویز که bit rate سه به آن مقاوم بود به صورت تقریبی چند بود؟ برای bit rate دو و یک چه طور ؟
تمرین 3 -8 ( به نظر شما با چه راهکاری می توان bit rate را نسبت به نویز مقاوم تر کرد؟ پاسخ خود را در هایلات قرمز جستجو کنید. حال در ادامه پاسخ را مطالعه کنید.
اگر قدرت فرستنده ی ما بیشتر می بود می توانستیم دامنه ی سیگنال بیشتری داشته باشیم و بنابراین فاصله ی threshold هایی که برای تصمیم گیری در نظر گرفته بودیم بیشتر می شد و در نتیجه به نویز حساسیت کمتری ایجاد می شد. مثلا برای ارسال اطلاعات با سرعت 𝑠𝑒𝑐 𝑏𝑖𝑡 2 ، اگر قدرت فرستند ه به گونه ای می بود که بیشینه ی دامنه ی سیگنال سه می ش د، شرایط بهتر می ش د. به عبارت دیگر، برای ارسال 00 سیگنال 0 = (𝑥0(𝑡 را به مدت یک ثانیه، برای ارسال 01 سیگنال (𝑥1(𝑡) = sin (2𝜋𝑡 را به مدت یک ثانیه، برای ارسال 10 سیگنال (𝑥2(𝑡) = 2 sin (2𝜋𝑡 را به مدت یک ثانیه و برای ارسال 11 سیگنال (𝑥3(𝑡) = 3 sin (2𝜋𝑡 را به مدت یک ثانیه ارسال می کردیم.
پس در کل می توان نتیجه گرفت در روش کدگذاری دامنه اگر می خواهیم سرعت ارسال اطلاعات را افزایش دهیم باید power بیشتری نیز مصرف کنیم تا در برابر نویز مقاوم باشیم.
مقدمه ی چهار م:
در بخش قب ل کدگذاری روی دامنه ی سیگنال اعمال شد، حال می خواهیم کدگذاری روی فرکان س داشته باشیم.
به عنوان مثال برای سرعت ارسال اطلاعات 𝑠𝑒𝑐 𝑏𝑖𝑡 1 ، به جای بیت صف ر سیگنال (𝑥0(𝑡) = sin (2𝜋 𝑓0 𝑡 را به مدت یک ثانیه و به جای بیت یک، سیگنال (𝑥1(𝑡) = sin (2𝜋 𝑓1 𝑡 را به مدت یک ثانیه ارسال می کنیم. در گیرنده، برای رمز گشایی از سیگنال دریافتی، کافی است در هر یک ثانیه از سیگنال دریافتی تبدیل فوریه بگیریم
)fft( و فرکانس اصلی سیگنال را پیدا کنیم و متناظر با آن بیت ارسالی را استخراج کنیم.
به عنوان یک مثال دیگر اگر بخواهیم سرعت ارسال اطلاعات 𝑠𝑒𝑐 𝑏𝑖𝑡 2 باشد، برای ارسال 00 سیگنال = (𝑥0(𝑡(sin (2𝜋 𝑓0 𝑡 را به مدت یک ثانیه، برای ارسال 01 سیگنال (𝑥1(𝑡) = sin (2𝜋 𝑓1 𝑡 را به مدت یک ثانیه، برای ارسال 10 سیگنال (𝑥2(𝑡) = sin (2𝜋 𝑓2 𝑡 را به مدت یک ثانیه و برای ارسال 11 سیگنال = (𝑥3(𝑡(sin (2𝜋 𝑓3 𝑡 را به مدت یک ثانیه ارسال می کنیم .برای رمز گشایی در گیرنده، مشابه حالت قبلی، کافی است در هر یک ثانی ه، از سیگنال دریافتی تبدیل فوریه بگیریم) fft( و فرکانس اصلی سیگنال را پیدا کنیم و متناظر با آن دو بیت ارسالی را استخراج کنی م )توجه داشته باشی د، fft گرفتن نقش همان correlation گرفتن با سیگنال های سینوسی با فرکانس ه ای مختلف را ایف ا می کن د. ه مچنین استفاده از fftshift را فراموش نکنی د! ( حال سوال اینجاست که مقادیر فرکانس ها را چگونه انتخاب کنیم ؟
طبق آنچه در مقدمه ی یک گفته شد، بازه ی فرکانسی یک سیگنال به طول N=100 سمپل و یک ثانیه به صورت 50:1:49- هرتز خواهد بود. می دانیم سیگنال های حقیقی هم فرکانس منفی و هم فرکانس مثبت دارند، پس فقط به بخش فرکانس های مثبت توجه می کنیم.
مثلاً رشته بیت 1010 به صورت زیر ارسال می شود:
و 38 هرتز( :
مثلا رشته بیت 1000010011 به صورت زیر ارسال می شود.
`
توجه داشته باشید لزومی ندارد انتخاب فرکانس ها به گونه ای که در بالا ذکر شده است باشد. در این انتخاب ها سعی شده است فرکانس ها بیشترین فاصله ی ممکن را از هم داشته باشند تا وقتی داده نویزی می شود در تصمیم گیری دچار اشتباه کمتری شویم. توجه داشته باشید وقتی داده نویزی شو د و در یک بازه ی یک ثانیه ای از داده تبدیل فوریه بگیریم، دیگر لزوماً فقط یک قله ی مرتفع نخواهیم دید و ممکن است قله جابجا شود و فرکانسی که قله در آن رخ داده است را اشتباه تخمین بزنیم. به همین علت هرچه فاصله ی فرکانس ها از هم بیشتر شود تصمیم گیری دچار خطای کمتری می شود. شایان ذکر است در داده های نویزیریال مشابه بخش قبل، آستانه هایی تعریف می کنیم و بر اساس آن آستانه ها تصمیم گیری می کنیم. این آستانه ها در کدگذاری فرکانس، در حوزه ی فرکانس تعریف می شوند. به عنوان مثال با توجه به فرکانس های در نظر گرفته شده برای سرعت ارسال اطلاعات 𝑠𝑒𝑐 𝑏𝑖𝑡 1، آستانه ای که باید تعریف کنیم فرکانس 24.5 هرتز است. در واقع از سیگنال کدگذاری شده به طول یک ثانیه که می تواند نویزی هم باشد تبدیل فوریه می گیریم و سپس فرکانسی که قله ی تبدیل فوریه در آن شکل گرفته است را استخراج می کنیم. اگر این فرکانس از 24.5 هرتز کمتر بود می فهمیم بیت صفر ارسال شده است و اگر این فرکانس از 24.5 هرتز بیشتر بود می فهمیم بیت یک ارسال شده است. حال به سراغ شبیه سازی این موارد می رویم.
تمری ن4 ( تمرینا ت های بخش سو م ر ا این با ر با فرض کدگذاری در فرکانس تکرار می کنی م.
هدف این تمرین ارسال پیام به زبان انگلیسی از فرستنده به گیرنده است. هر پیام فقط شامل حروف کوچک انگلیسی، فاصله، نقطه، ویرگول، علامت تعحب، سمی کالن) ;( و کوتیشن )“( است. بنابراین در مجموع 32 کاراکتر داریم. به هر کاراکتر 5 بیت مرتبط می کنیم.
تمرین 4 -1 ( یک سلول به اسم Mapset با ابعاد 32 × 2 درست کنید. در سطر اول خود کارکترها را قرار دهید و در سطر دوم 5 بیتی که به آنها مرتبط کردید را قرار دهی د )پاسخ این قسمت کاملاً مشابه بخش قبل است(.
تمرین 4 -2( تابعی به نام coding_freq بنویسید که ورودی های آن 1( پیام مورد نظر برای ارسال و 2( سرعت ارسال اطلاعات باشد و خروجی آن پیام کدگذاری شده باشد. بیشترین سرعت ارسال اطلاعات را 3 بیت برثانیه در نظر خواهیم گرفت گرچه کد شما می تواند اعداد طبیعی بزرگتری را نیز پشتیبانی کن د!
تمرین 4 -3 ( خروجی تابع coding_freq را برای پیام )کلمهی( signal با سرعت ارسال اطلاعات یک، دو و س ه بیت بر ثانیه به صورت جداگانه رسم کنید.
تمرین 4 -4 ( تابعی به نام decoding_freq بنویسید که ورودی های آن 1( پیام کدگذاری شده )سیگنال زمانی تولید شده در قسمت قبل( و 2( سرعت ارسال اطلاعات باش د و خروجی آن پیام رمز گشایی شده باش د. تابعی که نوشتید را روی همان پیام signal که در قسمت 4-3 با سرعت ارسال های مختلف کُد کردید تست کنید تا مطمئن شوید کدتان درست کار می کند.
تمرین 4 -5 ( در این قسمت می خواهیم به سیگنال دریافتی در گیرنده نوی ز اضافه کنیم تا شبیه سازی مشابه شرایط واقع ی شود. به پیام signal بعد از این که کدگذاری شد نویز گوسی با واریانس 0.0001 و میانگین صفر اضافه کنید و بعد آن را decode کنید. آیا بازهم پیام signal استخراج ش د؟ نتایج decoding را برای هر سه bit rate یک، دو و سه به صورت جداگانه گزارش کنید.
تمرین 4 -6 ( قدرت نویز را کم کم و طی چندین مرحله افزایش دهید و هر بار قسمت 4 -5 را تکرار کنید. مشاهدات خود را گزارش کنید. کدام یک از سه bit rate به نویز مقاوم تر بودند؟ آیا نتایج با آنچه در مقدمه بیان شد همخوانی داشتند؟
تمرین 4 -7 ( طی شبیه سازی هایی که در قسمت 4 -6 انجام دادید، بیشترین واریانس نویز که bit rate سه به آن مقاوم بود به صورت تقریبی چند بود؟ برای bit rate دو و یک چه طور ؟
تمرین 4 -8 ( به نظر شما با چه راهکاری می توان bit rate را نسبت به نویز مقاوم تر کرد؟ قدری درنگ کنید و سپس پاسخ را مطالعه کنید. پاسخ این است که هر چه فاصله ی فرکانس های انتخابی بیشتر باشند کدگذاری نسبت به نویز مقاوم تر می شود. بنابراین هر چه پهنای باند بیشتری مصرف کنیم می توانیم با سرعت بیشتری اطلاعات را ارسال کنیم و در عین حال نسبت به نویز مقاوم باشیم .
آنچه که با رها راجع به افزایش پهنای بان د شنیدی د که منجر به سرعت بیشتری در اینترنت می شود همین نکته است.
نکات کل ی:
• درصورت وجود هرگونه پرسش و ابهام به استا د ایمیل بزنی د.
• فایل نهایی شما باید به صورت یک فایل زیپ شامل گزارشکار به فرمت PDF و کد ها ی متل ب باش د.




Reviews
There are no reviews yet.