www.gusucode.com > signal 工具箱matlab源码程序 > signal/@dfilt/@filterquantizer/linearfddggen.m
function DGDF = linearfddggen(this,Hd,states) %LINEARFDDGGEN Directed Graph generator for FARROW.LINEARFD % Author(s): V. Pellissier % Copyright 2005 The MathWorks, Inc. narginchk(3,3); % Node List NL = filtgraph.nodelist(7); NL.setnode(filtgraph.node('input'),1); NL.setnode(filtgraph.node('input'),2); NL.setnode(filtgraph.node('delay'),3); NL.setnode(filtgraph.node('sum'),4); NL.setnode(filtgraph.node('mult'),5); NL.setnode(filtgraph.node('sum'),6); NL.setnode(filtgraph.node('output'),7); % Labels set(NL.nodes(1).block,'label','Input'); set(NL.nodes(2).block,'label','FracDelay'); set(NL.nodes(3).block,'label','UnitDelay'); set(NL.nodes(4).block,'label','Sum1'); set(NL.nodes(5).block,'label','Mult'); set(NL.nodes(6).block,'label','Sum2'); set(NL.nodes(7).block,'label','Output'); % Orientation set(NL.nodes(1).block,'orientation','right'); set(NL.nodes(2).block,'orientation','right'); set(NL.nodes(3).block,'orientation','down'); set(NL.nodes(4).block,'orientation','right'); set(NL.nodes(5).block,'orientation','right'); set(NL.nodes(6).block,'orientation','right'); set(NL.nodes(7).block,'orientation','right'); % Positions offset = [-.6 -.8 -.6 -.8]; set(NL.nodes(1),'position',[0 0 0 0] + offset); set(NL.nodes(2),'position',[0 .51 0 .51] + offset); set(NL.nodes(3),'position',[.5 0.125 .5 0.125] + offset); set(NL.nodes(4),'position',[1 0.25 1 0.25] + offset); set(NL.nodes(5),'position',[1.5 .5 1.5 .5] + offset); set(NL.nodes(6),'position',[2 .5 2 .5] + offset); set(NL.nodes(7),'position',[2.5 .5 2.5 .5] + offset); set(NL.nodes(3),'qparam','double'); set(NL.nodes(4),'qparam','double'); set(NL.nodes(5),'qparam','double'); set(NL.nodes(6),'qparam','double'); % Connections % NL.connect(source node, source port, dest node, dest port) NL.connect(1,1,3,1); NL.connect(1,1,4,1); NL.connect(1,1,6,1); NL.connect(3,1,4,2); NL.connect(4,1,5,1); NL.connect(2,1,5,2); NL.connect(5,1,6,2); NL.connect(6,1,7,1); % Parameterization mainparams(1) = filtgraph.indexparam(1,{}); mainparams(2) = filtgraph.indexparam(2,{}); mainparams(3) = filtgraph.indexparam(3,['1,' mat2str(states)]); mainparams(4) = filtgraph.indexparam(4,'-+|'); mainparams(5) = filtgraph.indexparam(5,'2'); mainparams(6) = filtgraph.indexparam(6,'++|'); mainparams(7) = filtgraph.indexparam(7,{}); Head = filtgraph.stage(NL,[],[],[],[],mainparams); DGDF = filtgraph.dg_dfilt(Head,'linearfd'); % [EOF]