پیاده سازی فیلتر بر روی سیگنال در حوزه فرکانس

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

پیاده سازی فیلتر بر روی سیگنال در حوزه فرکانس 

به علت دوگان بودن حوزه زمان و فرکانس قادر به انجام اعمال مربوط به فیلتر در هر دو حوزه هستید . برای پیاده سازی فیلترهای IIR در حوزه فرکانس ، از حاصل ضرب DFT دنباله ورودی در خارج قسمت تبدیل DFT فیلتر به شکل زیر می شود :

نتیجه حاصل عیناً مشابه نتیجه اعمال فیلتر است . البته برای داده های طولانی این روش بسیار ناکارآمد است . برای فیلترهای FIR ، می توان داده های طولانی را به طول کوتاه تر که برای محاسبات fft بهینه تر باشند تفکیک کرد . تابع y = fftfilt(b,x)  ازoverlap add method برای داده های طولانی در پروژه پردازش سیگنال متلب استفاده می کند و خروجی آن مشابه filter(b,1,x) است.

پاسخ ضربه : چندین راه برای تولید یک دنباله ضربه در MATLAB وجود دارد که ساده ترین آن به صورت دستور   imp=[1;zeros(49,1)]است . پاسخ پله فیلتر با b=1 و    [1  -0.9] = a به شکل زیر است :

<<h = filter(b,a,imp) ;

 

یک روش ساده برای مشاهده پاسخ ضربه استفاده از دستور fvtool(b,a) است . با این کار پنجره fvtool  باز می شود