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

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

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

برای محاسبه پاسخ فرکانسی 256 نقطه ای این فیلتر و رسم پاسخ فاز و دامنه از دستور زیر استفاده می شود :

>> freqz(b,a,256,2000) ;

و یا برای نمایش همین پاسخ ها در fvtool ابتدا پنجره fvtool با دستور ، fvtool(b,a) باز شده و با فشار بر روی دکمه Magintude and phase Response قادر به مشاهده پاسخ ها هستید .

دستور freqz همچنین می تواند یک بردار از نقاط فرکانسی دلخواه برای استفاده درمحاسبه پاسخ فرکانسی دریافت کند . برای مثال :

>>w=linspace(0,pi) ;

>>h= freqz(b,a,w)

پاسخ فرکانسی مختلط را در نقاط مشخص شده در w برای فیلتر  مشخص شده در بردارهای a,b محاسبه می کنند . نقاط فرکانسی می توانند بین 0 تا 1 باشند .

در حالت آنالوگ freqz پاسخ فرکانسی را برای فیلترهای آنالوگ تعریف شده با a,b با عملکردی مشابه freqz برآورده می کند . پاسخ فرکانسی در واقع انتقال سیگنال از یک محیط به محیط دیگر می باشد که نرم افزار متلب با داشتن قابلیت زیاد در کدنویسی سیگنال این امر را برای شما راحتتر کرده است 

می توان با دستور abs دامنه پاسخ و با دستور angle ، فاز (بر حسب رادیان) پاسخ فرکانسی موجود در بردار h را استخراج کرد . انجام این کار با استفاده از دستورات زیر در fvtool نیز امکان پذیر است .

>>]b,a[=butter(9,400/1000) ;

>>fvtool(b,a)

دستور unwarpنیز در تحلیل های فرکانسی مفید است . این تابع با اضافه کردن ضرایب  به فاز در نقاط گسستگی آن را پیوسته می کند . برای مثال برای طراحی یک فیلتر  FIR درجه 25پایین گذر داریم :

>>h=fir1(25,0.4) ;

حال پاسخ فرکانسی را با استفاده از freqz برای فاز به شکل زیر استخراج کرده و رسم کنید:

>>]H,f=[freqz(h,1,512,2) ;

>>plot(f,angle(H)*180/pi;؛     grid

حال با دستور unwrap قادربه حذف پرش های هستید

>>plot(f,unwrap(angle(H)*180/pi) ;

با استفاده از phasez نیز قادر به مشاهده فاز باز شده هستید .

>>]b,a=[butter(10,200/1000) ;

>>hFVT=fvtool(b,a,’Anallysis’,’grpdelay’) ;

>>set(hFVT,’NumberofPoints’,128,’OverlayedAnalysis,’phasedelay’) ;

>>legend(hFVT) ;

تاخیر جمعی (group delay) یک فیلتر  ، برآوردی از تاخیر متوسط زمانی فیلتر  به صورت تابعی از فرکانس است و به صورت منفی مشتق اول پاسخ فاز فیلتر  تعریف می شود برای رسم تاخیر فاز و تاخیر جمعی فیلتر  در یک شکلfvtool دستورات زیر را در خط دستورات وارد کنید

>>]b,a=[butter(10,200/1000) ;

>>hFVT=fvtool(b,a,’Anallysis’,’grpdelay’) ;

>>set(hFVT,’NumberofPoints’,128,’OverlayedAnalysis,’phasedelay’) ;

>>legend(hFVT) ;