طراحی و پیاده سازی فیلترها در متلب

طراحی و پیاده سازی فیلترها در متلب
5 (100%) 3 votes

طراحی و پیاده سازی فیلترها در متلب 

در این بخش از آموزش پردازش سیگنال در متلب پروژه به نحوه فیلتر کردن سیگنال های گسسته با استفاده از تابع filter و سایر توابع مربوطه در جعبه ابزار پردازش سیگنال پرداخته می شود . همچنین به نحوه استفاده از این جعبه ابزار در طراحی و تحلیل ویژگی های فیلترها که شامل پاسخ ضربه ، پاسخ دامنه و فاز ، تأخیر جمعی و مکان صفر و قطب ها است نیز اشاره می شود .

پایه ریاضی فیلتر کردن ، کانولوشن است . تابع conv یک عمل استاندارد کانولوشن یک بعدی با استفاده از دو بردار ورودی را انجام می دهد. برای پردازش سیگنال های دو بعدی در برنامه نویسی متلب از تابع conv2 استفاده می شود . در زیر مثالی از این حالت را مشاهده می کنید  

conv([111]،[111])<< 
خروجی یک فیلتر دیجیتال (k) y برابر با کانولوشن ورودی آن ، (k)x ، در پاسخ ضربه فیلتر (k)h ، است . در صورتی که  (k)h و (k)x دارای طول محدود باشند ، پیاده سازی فیلتر با استفاده از دستور conv امکان پذیر است . به مثال زیر توجه کنید

<<x = rand(5,1) ;                             %A random vsctor of length 5

در حالت کلی تبدیل (z) Y به تبدیل z ورودی آن به شکل زیر مربوط است :

<<b = 1;                                    %Numerator

<<a = ]1 -0.9[  ;                      %Denominator

>> y=filter(b,a,x)

 

 

که در آن (z)H تابع تبدیل فیلتر است . ضرایب در دو بردار که یکی مربوط به صورت و دیگری مربوط به مخرج است ذخیره می شوند . فیلترها به راحتی به این شکل قابل پیاده سازی هستند . برای مثال ضرایب یک فیلتر تک قطبی پایین گذر به شکل زیر است 

طول y به دست آمده در بالا برابر با طول x بوده و فیلتر با ساختار ترآن هاده نوع II (transposed direct- fromII) پیاده سازی می شود . در صورتی که (1)a با 1 نباشد ، همه ضرایب بر آن تقسیم می شوند .