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

📄 pllfilt.m

📁 数字通信第四版原书的例程
💻 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 + -