📄 pllfilt.m
字号:
function [num,den] = pllfilt(cut,order,filt, rip)
%PLLFILT design a lowpass filter for a typical phase-locked loop.
% [NUM, DEN] = PLLFILT(FC, N) design an N order Butterworth lowpass
% filter with modulation carrier frequency FC (Hz).
% [NUM, DEN] = PLLFILT(FC, N, TYPE, RIP) design an N order lowpass filter with
% modulation carrier frequency FC (Hz) and the method as specified in TYPE.
% TYPE is a string which could be "butter" for Butterworth filter; "1cheby" for
% Chebychev Type I filter with RIP (db) in passband (defult 3db); "2cheby" for
% Chebychev Type II filter with RIP (db) in stopband (default 40db).
% Wes Wang 2/18/94
% Copyright (c) 1994-96 by The MathWorks, Inc.
% $Revision: 1.1 $ $Date: 1996/04/01 19:40:22 $
if nargin < 1
error('Usage: [NUM, DEN] = PLLFILT(FC, N, TYPE, RIP)')
end;
if (nargin == 2)
case = 1;
elseif setstr(lower(filt(1:4))) == 'butt'
case = 1;
elseif setstr(lower(filt(1:4))) == '1che'
case = 2;
elseif setstr(lower(filt(1:4))) == '2che'
case = 3;
else
error(['There is no such filter type as ', filt])
end;
% cutof frequency is one decade lower than carrier frequency
cut = cut*2*pi;
if case == 1
%butterworth filter
[z,p,k] = buttap(order);
elseif case == 2
if nargin < 4
rip = 3;
end;
[z,p,k]=cheb1ap(order,rip);
elseif case == 3
if nargin < 4
rip = 40;
end;
[z,p,k]=cheb2ap(order,rip);
end;
z=cut*z;
p=cut*p;
k=real(prod(-p)/prod(-z));
[num,den]=zp2tf(z,p,k);
%____end of pllfilt.m____
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -