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

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

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

در این بخش از آموزش پردازش سیگنال در متلب پروژه به نحوه فیلتر کردن سیگنال های گسسته با استفاده از تابع 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 نباشد ، همه ضرایب بر آن تقسیم می شوند .