پیدا کردن پاسخ فرکانسی سیگنال در متلب

پیدا کردن پاسخ فرکانسی سیگنال در متلب
5 (100%) 3 votes

پیدا کردن پاسخ فرکانسی سیگنال در متلب 

در حوزه دیجیتال و انجام پروژه های متلب ، تابع freqz از یک الگوریتم مبتنی بر fft  برای محاسبه تبدیل z پاسخ فرکانسی یک فیلتر دیجیتال استفاده می کند . دستورfreqx(b,ap)=  [h,w]  پاسخ فرکانسی مختلط p نقطه ای فیلتر دیجیتال را می دهد . در ساده ترین حالت freqz ضرایب صورت و مخرج و یک عدد طبیعی P که نشان دهنده تعداد نقاطی است که پاسخ فرکانسی باید در آنها محاسبه شود را می گیرد و در خروجی یک پاسخ فرکانسی مختلط در بردار h و نقاط فرکانس واقعی را بردار w بر حسب rad/s می دهد این تابع می تواند پارامترهای دیگری را نیز مانند فرکانس نمونه برداری و یا برداری آن نقاط فرکانسی دلخواه به عنوان ورودی بگیرد مثال زیر پاسخ فرکانسی 256 نقطه ای برای یک فیلتر چیبی چف نوع یک را فراهم می کند . در دستور freqz  فرکانس نمونه بردار fs برابر 1000 تعیین شده است

b,a[=cheby 1(12,0.5,200/500]

چون لیست پارامترها شامل فرکانس نمونه برداری می شود ، تابع freqz یک بردار f که شامل 256 نقطه فرکانسی بین 0 تاfs/2  می شود را در بر دارد . توجه شود که این جعبه ابزار از این اصل استفاده می کند که فرکانس واحد برابر فرکانس نایکوئیست بوده که به صورت نصف فرکانس نمونه برداری تعریف می شود . برای مثال برای یک سیستم با فرکانس قطع 1000Hz ، فرکانس 300Hz برابر 300/500=0.6 می شود . برای برگرداندن فرکانس نرمالیزه شده به فرکانس زاویه ای حول دایره واحد ، مقدار آن  ضرب می شود و برای برگرداندن فرکانس نرمالیزه شده به هرتز ، مقدار آن در نصف فرکانس نمونه برداری ضرب می شود . اگر تابع freqz بدون پارامتر خروجی صدا زده شود ، دامنه و فاز را بر حسب فرکانس رسم می کند . برای مثال یک فیلتر باتروث پایین گذر با فرکانس قطع 400Hz بر پایه فرکانس نمونه برداری 2000Hz با دستور زیر تولید می شود :

b,a]=butter(9,400/1000]