⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dfirhalf.m

📁 ADSP TOOLBOX: Version 2.0 and gui m-files
💻 M
字号:
function [hwn, samp] = dfirhalf(ty,n,fp,fs,wind,p1)
% FIRHALF

% Author: Ashok Ambardar <akambard@mtu.edu>
% Date: 2/2/96 11:32AM
% Copyright (c) 1997 by Prentice-Hall, Inc.

if ty == 1 | ty == 2,
   samp = 2*(fp+fs);
   df = abs(fs-fp);
else
   df1 = abs(fp(1)-fs(1));
   df2 = abs(fs(2)-fp(2));
   df = min(df1,df2);
   if ty == 'bp',
      fs(1) = fp(1) - df;
      fs(2) = fp(2)+df;
   end
   if ty == 'bs',
      fp(1) = fs(1) - df;
      fp(2) = fs(2) + df;
   end
   samp = 2*sum(fp);
end

[wp,ws,w3] = dfirlpp(ty,2*pi*fp,2*pi*fs,samp);

wc = (wp+ws)/2;

n0 = fix(n/2);
n1 = 1:n0;
hwin = winwind(wind,n,p1);

if rem(n,2) == 1,
   h = sin(wc*n1)./n1/pi;
   h = [fliplr(h) wc/pi h];
else
   h = sin(wc*(n1-.5))./(n1-.5)/pi;
   h = [fliplr(h) h];
end

hw = h.*hwin;
if ty == 1, % lowpass
   hwn = hw;
end

if rem(n,2) == 1,
   nn = -n0:n0;
else
   nn = [-n0+.5:-.5 .5:n0-.5];
end

if ty == 2, % highpass
   hwn = hw.*((-1).^nn);
end

if ty == 3, % bandpass
   hwn = 2*cos(nn*w3).*hw;
end

if ty == 4, % bandstop
   hwn = -2*cos(nn*w3).*hw;
   hwn(n0+1) = 1+hwn(n0+1);
end

hwn = hwn.*(abs(hwn)>10*eps);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -