www.gusucode.com > rf 工具箱matlab源码程序 > rf/hparameters.m

    classdef hparameters < rf.internal.netparams.VoltageCurrentParameters
%hparameters Create an h-parameters Object
%   OBJ = hparameters(FILENAME) creates the hparameters object OBJ from the
%   file specified by FILENAME.  FILENAME must describe a Touchstone
%   (*.snp, *.ynp, etc) file.  The data will be converted from the file
%   type (S, Y, etc...) to h-parameters. All data is stored in real/imag
%   format.
%
%   OBJ = hparameters(HPARAM_OBJ) creates a deep copy of another
%   hparameters object HPARAM_OBJ.
%
%   OBJ = hparameters(RFTBX_OBJ) extracts the network data in RFTBX_OBJ and
%   then converts it into h-parameter data.  RFTBX_OBJ can have the
%   following types: sparameters, tparameters, yparameters, zparameters,
%   gparameters, abcdparameters, rfdata.data, rfdata.network, and any
%   analyzed rfckt type.
%
%   OBJ = hparameters(PARAMDATA,FREQ) creates a hparameters object directly
%   from specified data.  PARAMDATA is required and will be stored in the
%   "Parameters" property.  FREQ is required and will be stored in the
%   "Frequencies" property.
%
%PROPERTIES:
%   Parameters - A 2x2xK complex array describing 2x2 h-parameter data for
%   each frequency in the Frequencies property.  Note that
%   size(obj.Parameters,3) must equal length(obj.Frequencies)
%
%   Frequencies - A Kx1 vector of positive, real, increasing values.  It
%   describes the frequencies (in Hz) the h-parameters were measured at.
%
%EXAMPLES:
%   % Read a file 'default.s2p' as h-parameters
%   h = hparameters('default.s2p');
%
%   % Extract h11
%   h11 = rfparam(h,1,1);
%
% See also rfparam, smith, rfwrite, sparameters, tparameters, yparameters,
% zparameters, gparameters, abcdparameters

    properties(Constant,Access = protected)
        TypeFlag = 'h'
    end
    
    methods
        function obj = hparameters(varargin)
            obj = obj@rf.internal.netparams.VoltageCurrentParameters(varargin{:});
        end
    end
    
    % define abstract
    methods(Static,Access = protected)
        function validateParameters(newParam)
            rf.internal.netparams.validateTwoPortParameters(newParam,'hparameters')
        end
        
        function outdata = convert2me(str,indata,z0)
            switch lower(str(1))
                case 's'
                    outdata = s2h(indata,z0);
                case 't'
                    outdata = t2s(indata);
                    outdata = s2h(outdata,z0);
                case 'y'
                    outdata = y2h(indata);
                case 'z'
                    outdata = z2h(indata);
                case 'h'
                    outdata = indata;
                case 'g'
                    outdata = g2h(indata);
                case 'a'
                    outdata = abcd2h(indata);
            end
        end
    end
    methods(Static,Hidden)
        function outobj = loadobj(in)
            data = in.Parameters;
            freq = in.Frequencies;
            outobj = hparameters(data,freq);
        end
    end
end