|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 eecsseudl 于 2013-4-29 10:08 编辑
function [Hr,w,p,L]=Ampl_Res(h)
% computes amplitude response Hr(w) and its ploynomial P of order L,
% given a linear-phase FIR filter impulse response h
%----------------------------------------------------------
% [Hr,w,P,L]=Ampl_Res(h)
% Hr=amplitude response
% w=500 frequencies between 0 and pi over which Hr is computed
% P=Polynomial coefficients
% L= order of P
% h=Linear Phase filter impluse response
%
M=length(h);
w=[0:500]'*pi/500;
if (mod(M-1,2)==0) % M is odd
L=(M-1)/2;
n=[0];
if all(h(1)==h(M:-1+2)) % Type-1
p=[h(L+1) 2*h(L:-1:1)];
Hr=cos(w*n)*p';
else all(h(1:L)==-1*h(M:-1:L+2)) % Type-3
p=[2*h(L+1:-1:1)];
Hr=sin(w*n)*p';
end
else (mod(M,2)==0)
L=M/2;
n=[1:L];n=n-0.5;
p=2*[h(L:-1:1)];
if all(h(1:L)==h(M:-1:L+1)) % Type-2
Hr=cos(w*n)*p';
else all(h(1:L)==-1*h(M:-1:L+1)) % Type-4
Hr=sin(w*n)*p';
end
end
**************************************************
如果h=[-4,1,-1,-2,5,6,5,-2,-1,1,-4];>>[Hr,w,p,L]=Ampl_Res(h); 没有默认的返回值;
如果>>h=[-4,1,-1,-2,5,6,6,5,-2,-1,1,-4];>>[Hr,w,p,L]=Ampl_Res(h); >>ans=1
如果>>h=[-4,1,-1,-2,5,0,-5,2,1,-1,4]; >>[Hr,w,p,L]=Ampl_Res(h); >>ans=1
如果h=[-4,1,-1,-2,5,6,-6,-5,2,1,-1,4];>>[Hr,w,p,L]=Ampl_Res(h); >>ans=1
为什么会有默认的一个ans返回呢?
|
|