(一)、它是數字濾波器的頻率響應(包括幅頻響應和相頻響應)
(二)、主要的形式:
[h,w] = freqz(b,a,n)
[h,w] = freqz(sos,n)
[h,w] = freqz(d,n)
[h,w] = freqz(___,n,'whole')
[h,f] = freqz(___,n,fs)
[h,f] = freqz(___,n,'whole',fs)
h = freqz(___,w)
h = freqz(___,f,fs)
freqz(___)
(三)、解釋:
[h,w] = freqz(b,a,n)返回數字點濾波器的n點頻率響應向量h和相應的角頻率向量w,其中數字和分母多項式係數分別存儲在b和a中。
[h,w] = freqz(sos,n)返回與二階部分矩陣sos相對應的n點複頻響應。
[h,w] = freqz(d,n)返回數字濾波器d的n點複頻響應。
注意:當知道濾波器的N個抽頭係數之後,可以用這個形式來求濾波器的幅頻和相頻響應,n如果不指定其默認值爲512,也就是返回值h,w的長度都是512點的
[h,w] = freqz(___,n,'whole')返回整個單位圓周圍n個採樣點的頻率響應。
[h,f] = freqz(___,n,fs)返回給定數字分子和分母多項式係數分別存儲在b和a中的數字濾波器的頻率響應矢量h和相應的物理頻率矢量f採樣率fs。
[h,f] = freqz(___,n,'whole',fs)返回介於0和fs之間的n個點處的頻率。
h = freqz(___,w)以w中提供的歸一化頻率返回頻率響應矢量h。
h = freqz(___,f,fs)以f中提供的物理頻率返回頻率響應矢量h。
沒有輸出參數的freqz(___)繪製濾波器的頻率響應。
注意:如果freqz的輸入是單精度的,則頻率響應是使用單精度算法計算的。輸出h是單精度
(四)、輸入輸出相關參數解釋
- 輸入:
b,a:傳遞函數的係數向量
傳遞函數係數,指定爲矢量。 用b和a表示傳遞函數
例如:
b = [1 3 3 1] / 6和a = [3 0 1 0] / 3指定具有標準化3-dB頻率0.5πrad /樣本的三階巴特沃斯濾波器。
數據類型:double | 單
複數支持:是-
n —評估點數
512(默認)| 正整數標量
指定爲不小於2的正整數標量的評估點數。如果不存在n,則默認爲512。爲獲得最佳結果,請將n設置爲大於過濾器階數的值。數據類型:雙精度
-
sos —二階截面係數矩陣
二階截面係數,指定爲矩陣。
sos是一個K×6矩陣,其中部分數K必須大於或等於2。如果部分數小於2,freqz會將輸入視爲分子向量。 sos的每一行都對應一個二階(雙二階)濾波器的係數。 sos的第i行對應於[bi(1)bi(2)bi(3)ai(1)ai(2)ai(3)]。示例:s = [2 4 2 6 0 2; 3 3 0 6 0 0]指定具有標準化3-dB頻率0.5πrad /樣本的三階巴特沃斯濾波器。
數據類型:double | 單
複數支持:是 -
d-數字濾波器
digitalFilter對象
數字濾波器,指定爲digitalFilter對象。 使用designfilt根據頻率響應規範生成數字濾波器。示例:d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.5)指定具有標準化3-dB頻率0.5πrad /樣本的三階巴特沃斯濾波器。
-
fs —採樣率
正標量
採樣率,指定爲正標量。 當時間單位爲秒時,fs以赫茲表示。數據類型:雙精度
-
w —角頻率
向量
角頻率,指定爲向量,以弧度/樣本表示。 w必須至少包含兩個元素。 w =π對應於奈奎斯特頻率。 -
f —頻率
向量
頻率,指定爲向量。 f必須至少包含兩個元素。 當時間單位爲秒時,f以赫茲表示。數據類型:雙精度
- 輸出:
- h-頻率響應向量
頻率響應,以向量形式返回。如果指定n,則h的長度爲n。如果您未指定n或將n指定爲空向量,則h的長度爲512。 - w —角頻率向量
角頻率,作爲矢量返回。 w的取值範圍是0到π。如果在輸入中指定“ whole”,則w中的值範圍爲0到2π。如果指定n,則w的長度爲n。如果您未指定n或將n指定爲空向量,則w的長度爲512。 - f —頻率向量
頻率,作爲以赫茲表示的向量返回。 f的取值範圍是0到fs / 2 Hz。如果在輸入中指定“ whole”,則f中的值範圍爲0到fs Hz。如果指定n,則f的長度爲n。如果您未指定n或將n指定爲空向量,則f的長度爲512。
- 算法
數字濾波器的頻率響應可以解釋爲在z =ejω[1]處評估的傳遞函數。
freqz從您指定的(實數或複數)分子和分母多項式確定傳遞函數,並返回數字濾波器的複數頻率響應H(ejω)。在使用的語法確定的採樣點上評估頻率響應。
當您不提供頻率向量作爲輸入參數時,freqz通常使用FFT算法來計算頻率響應。它將頻率響應計算爲變換後的分子和分母系數的比率,並用零填充到所需的長度。
當您確實提供了一個頻率向量作爲輸入參數時,freqz使用霍納的嵌套多項式求值方法對每個頻率點處的多項式求值,將分子響應除以分母響應。
(五)使用舉例:
- 計算並顯示由以下傳遞函數描述的三階IIR低通濾波器的幅度響應:
將分子和分母表示爲多項式卷積。 在整個單位圓上的2001個點處找到頻率響應。b0 = 0.05634; b1 = [1 1]; b2 = [1 -1.0166 1]; a1 = [1 -0.683]; a2 = [1 -1.4461 0.7957]; b = b0*conv(b1,b2); a = conv(a1,a2); [h,w] = freqz(b,a,'whole',2001);
plot(w/pi,20*log10(abs(h))) ax = gca; ax.YLim = [-100 20]; ax.XTick = 0:.5:2; xlabel('Normalized Frequency (\times\pi rad/sample)') ylabel('Magnitude (dB)')
- 使用的Kaiser窗口設計80階FIR低通濾波器。 指定歸一化截止頻率rad / sample。
顯示濾波器的幅度和相位響應。b = fir1(80,0.5,kaiser(81,8)); freqz(b,1)
用designfilt設計相同的濾波器,用fdatool繪製它的幅頻和相頻響應:
d = designfilt('lowpassfir','FilterOrder',80, ... 'CutoffFrequency',0.5,'Window',{'kaiser',8}); freqz(d)