maltab中freqz_m及Hr_Type2函数定义

来源:百度知道 编辑:UC知道 时间:2024/05/03 07:19:56
%设计条件:wp=0.2*pi;ws=0.3*pi;Rp=0.25dB;Ar=50dB;
N=20;alpha=(N-1)/2;L=0:N-1;wL=(2*pi/N)*L;
Hrs=[1,1,1,zeros(1,15),1,1]; %理想滤波器振幅响应抽样
Hdr=[1,1,0,0];wdl=[0,0.25,0.25,1];
k1=0:floor(N-1)/2);k2= floor(N-1)/2)+1:N-1;
angH=[-alpha*(2*pi)/N*k1,alpha*(2*pi)/N*(N-k2)];
H=Hrs.*exp(j*angH);
h=real(ifft(H,N));
[db,mag,pha,grd,w]=freqz_m(h,1);
[Hr,ww,a,M]=Hr_Type2(h);
系统提示freqz_m及Hr_Type2函数不可辨识,该怎么定义啊?

freqz_m的定义:
function [db,mag,pha,grd,w]=freqz_m(b,a)
%求取系统的绝对幅度响应、相对的db值幅度响应、相位响应和群延时响应的函数

%db为相对振幅(dB)
%mag为绝对振幅
%pha为相位响应
%grd为群延时
%w为频率样本点向量
%b为Ha(z)分子多项式系数(对FIR而言,b=h)
%a为Hz(z)分母多项式系数(对FIR而言,a=1)
% [H,w]=freqz(b,a,1000,'whole');
%freqz显示数字滤波器频域中的图形

%[H,W] = FREQZ(B,A,N,'whole') uses N points around the whole
unit circle.
H=(H(1:501))';
w=(w(1:501))';
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
%dB=-20log10|H(ejw)|/|H(ejw)|max>=0
pha=angle(H);
grd=grpdelay(b,a,w);