تبلیغات
باران الکترونیک - تغییر نرخ نمونه برداری سیگنال (طراحی در ‏MATLAB، پیاده سازی در ‏DSP‏)‏ قسمت اول

(From Simulation to Implementation)

هدف

در بسیاری از کاربردها لازم است تا نرخ نمونه برداری سیگنال تغییر کند. در این پروژه هدف این است که نرخ نمونه برداری سیگنال را افزایش دهیم. این فرایند در MATLAB شبیه سازی و در DSP سری 5000 شرکت TI پیاده سازی می­شود. این کار را با  استفاده از upsampling، فیلتر پایین گذر و downsampling انجام می­دهیم. نمودار بلوکی پروژه در شکل 1 نشان داده شده است.

شکل 1: نمودار بلوکی پروژه 

مقدمه

در این پروژه یک سیگنال سینوسی با فرکانس KHz 5/1 که با نرخ  KHz‏‏8 نمونه برداری شده است را با استفاده از نرم­افزار MATLAB تولید می­کنیم. می­خواهیم نرخ نمونه برداری سیگنال سینوسی را به KHz‏ ‏6/9 افزایش دهیم. ابتدا مروری بر روابط ریاضی حاکم بر این فرایند می­کنیم. با استفاده از متلب فیلتر مناسب را طراحی می­کنیم سپس به شبیه سازی این فرایند می­پردازیم. در نهایت بعد از رسیدن به نتایج مطلوبمان، از کتابخانه پردازش سیگنال شرکت TI برای پیاده سازی این پروژه روی پردازنده DSP سری 5000 استفاده میکنیم.


مروری کوتاه بر oversampling و undersampling 

افزایش نرخ نمونه برداری (oversampling)‏ با عامل L = 2 در شکل 1 نشان داده شده است. این فرایند را هم در حوزه زمان و هم فرکانس مشاهده می­کنید. همان طور که مشخص می­باشد در ابتدا با اضافه کردن L-1 صفر بین هر دو نمونه، نرخ نمونه برداری سیگنال تغییر می­کند. به این عمل zero-padding می­گویند. سپس سیگنال از یک فیلتر پایین گذر برای حذف فرکانس­های جدید به وجود آمده، عبور می­کند. این کار در حوزه زمان معادل درون‎یابی می­باشد. یک فیلتر ایده­آل برای این کار دارای پاسخ فرکانسی زیر می­باشد:

شکل 2oversampling

فرایند کاهش نرخ نمونه برداری (undersampling) با عامل M = 2 در شکل 2 نشان داده شده است. هنگام کاهش نرخ نمونه برداری ابتدا سیگنال باید از یک فیلتر پایین گذر عبور کند تا مولفه­های سیگنال جدید که بیش­تر از فرکانس نایکویست جدید هستند و باعث خراب شدن باند پایه جدید می­شوند حذف شوند. سپس هر M امین نمونه از سیگنال حذف می­شود. یک فیلتر ایده­آل برای این کار دارای پاسخ فرکانسی زیر می­باشد:

شکل 3undersampling

 اگر بخواهیم نرخ نمونه برداری سیگنال جدید ‏L/M ‏ برابر نرخ نمونه برداری سیگنال اصلی باشد ابتدا باید ‏با ضریب ‏L‏ نرخ نمونه برداری سیگنال را افزایش دهیم و سپس آن را با ضریب ‏M‏ کاهش دهیم. دو فیلتر ‏پایین گذر هم با هم سری می شوند و می توانند به صورت یک فیلتر پایین گذر با فرکانس قطع ‏{min{fsi/2,fso/2 ‏ ترکیب شوند. به عبارت دیگر ابتدا ‏L-1‎‏ صفر بین هر دو نمونه سیگنال اضافه می کنیم. ‏سپس سیگنال را از یک فیلتر پایین گذر با فرکانس قطع نصف کمینه نرخ نمونه برداری ورودی یا خروجی ‏عبور می دهیم و در نهایت هر ‏M ‎‏ امین نمونه را حذف می کنیم.‏

طراحی فیلتر در MATLAB

می­خواهیم نرخ نمونه برداری KHz 8 را به KHz‏ ‏6/9‏ افزایش دهیم. یعنی باید نرخ نمونه برداری را در ضریب 6/5 ضرب کنیم. یعنی ابتدا با اضافه کردن 5=1-6 صفر به سیگنال نرخ نمونه برداری را به KHz‏ ‏48 افزایش می­دهیم. سپس این سیگنال را از یک فیلتر پایین گذر با فرکانس قطع KHz‏ ‏4 عبور می­دهیم. در این مرحله هدف طراحی این فیلتر با استفاده از MATLAB می­باشد.

نرم­افزار MATLAB را باز کنید و کلمه fdatool را در Command Window وارد کنید و Enter را فشار دهید. مدتی منتظر بمانید تا جعبه ابزار طراحی فیلتر نرم­افزار MATLAB باز شود. سپس آن را به صورت شکل 4 تنظیم کنید:

نوع پاسخ: پایین گذر

نوع فیلتر: FIR

مربته فیلتر: 239 (یک فیلتر با مرتبه 240 طراحی می­شود- در بخش بعدی انتخاب این عدد را توضیح می­دهیم)

نرخ نمونه برداری شده سیگنال ورودی: KHz‏ ‏48

فرکانس گذر: 4000

فرکانس قطع: 4500

وزن تضعیف: 800

سپس روی Design Filter کلیک کنید.

شکل 4: تنظیمات FDATOOL

پس از مدت زمان اندکی فیلتر مورد نظر طراحی می ­شود. بعد از این که فیلتر را طراحی کردیم باید ضرایب را به workspaceمتلب منتقل کنیم. برای این از منوی فایل گزینه Export… را انتخاب کنید:

شکل 5 Export کردن فیلتر به MATLAB

در پنجره باز شده در قسمت Numerator اسم متغییر فیلتر را h وارد کنید و روی Export کلیک کنید.

شکل 6 Export‏ کردن فیلتر به Workspace نرم­افزار ‏MATLAB

به نرم­ افزار متلب برگردید. همان­طور که مشاهده می­ کنید متغییر h در workspace‏ ‏قرار گرفته شده است.

شکل 7Workspace نرم­افزار ‏MATLAB

با تایپ کردن دستور زیر می­ توانید این متغییر را به عنوان ماتریس متلب دخیره کنید:

>> save h h


نظرات()   
   
دانشجو
جمعه 14 فروردین 1394 12:25 ب.ظ
خیلی ممنون
خدا خیرت بده... کارم راه افتاد
خدا برکت بده به وبلاگ و کاراتون :)
شیما
جمعه 8 اسفند 1393 04:59 ب.ظ
با سلام
خدا خیرت بده کار ما رو راه انداختی
سارا شکیبا
دوشنبه 6 بهمن 1393 02:57 ب.ظ
سلام وبلاگت قشنگه!

من بازی های آندروید زیادی توی وبلاگم گذاشتم

حتما بیا دانلود کن و نظر برام بذار!

ممنون
محمد
پنجشنبه 2 بهمن 1393 09:13 ب.ظ
سلام
خیلی باحال بود مطالبت
با تبادل لینک موافقی؟
موافق بودی لینک کن بعد خبر بده لینکت کنم
پردازش سیگنال دیجیتال با استفاده از MATLAB
سه شنبه 30 دی 1393 11:50 ق.ظ
دانلود کتاب پردازش سیگنال دیجیتال با استفاده از MATLAB
http://booktolearn.com/?p=1378
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر
آخرین پست ها