gusucode.com > wlan工具箱matlab源码程序 > wlan/wlan/wlanRecoveryConfig.m

    classdef wlanRecoveryConfig < wlanConfigBase    
%wlanRecoveryConfig Construct a configuration object for data recovery
%   CFGREC = wlanRecoveryConfig constructs a configuration object for
%   recovering the data in signaling or data fields. Adjust the property
%   values of the object, which indicate different algorithm parameters or
%   operations at the receiver, to achieve optimal recovery performance.
%
%   CFGREC = wlanRecoveryConfig(Name,Value) constructs a recovery
%   configuration object, CFGREC, with the specified property Name set to
%   the specified Value. You can specify additional name-value pair
%   arguments in any order as (Name1,Value1,...,NameN,ValueN).
% 
%   wlanRecoveryConfig properties:
%
%   OFDMSymbolOffset          - OFDM symbol sampling offset
%   EqualizationMethod        - Equalization method
%   PilotPhaseTracking        - Pilot phase tracking
%   MaximumLDPCIterationCount - Maximum number of decoding iterations
%   EarlyTermination          - Enable early termination of LDPC decoding
% 
%   % Example: 
%   %    Create a wlanRecoveryConfig object for performing ZF equalization 
%   %    and OFDM symbol sampling offset of 0.5 in a recovery process
% 
%   cfgRec = wlanRecoveryConfig( ...
%       'OFDMSymbolOffset',   0.5, ...
%       'EqualizationMethod', 'ZF')
%  
%   See also wlanLSIGRecover, wlanVHTSIGARecover, wlanVHTSIGBRecover,
%   wlanVHTDataRecover, wlanHTSIGRecover, wlanHTDataRecover,
%   wlanNonHTDataRecover.

% Copyright 2015-2016 The MathWorks, Inc.

%#codegen
%#ok<*EMCA>

properties (Access = 'public')
    %OFDMSymbolOffset OFDM symbol offset
    %   Specify the sampling offset as a fraction of the cyclic prefix (CP)
    %   length for every OFDM symbol, as a double precision, real scalar
    %   between 0 and 1, inclusive. The OFDM demodulation is performed
    %   based on Nfft samples following the offset position, where Nfft
    %   denotes the FFT length. The default value of this property is 0.75,
    %   which means the offset is three quarters of the CP length.
    OFDMSymbolOffset = 0.75;
    %EqualizationMethod Equalization method
    %   Specify the equalization method as one of 'MMSE' | 'ZF'. The
    %   default value of this property is 'MMSE'.
    EqualizationMethod = 'MMSE';
    %PilotPhaseTracking Pilot phase tracking
    %   Specify the pilot phase tracking performed as one of 'PreEQ' |
    %   'None'. 'PreEQ' pilot phase tracking estimates and corrects a
    %   common phase offset across all subcarriers and receive antennas for
    %   each received OFDM symbol before equalization. The default is
    %   'PreEQ'.
    PilotPhaseTracking = 'PreEQ';
    %MaximumLDPCIterationCount Maximum number of decoding iterations
    %   Specify the maximum number of iterations in LDPC decoding as an
    %   integer valued numeric scalar. This applies when you set the
    %   channel coding property to LDPC. The default is 12.
    MaximumLDPCIterationCount = 12;
    %EarlyTermination Enable early termination of LDPC decoding
    %   Set this property to true to enable early termination of LDPC
    %   decoding if all parity-checks are satisfied. If set to false, the
    %   decoding process will iterate for a fixed number of iterations
    %   specified by MaximumLDPCIterationCount. This property applies when
    %   ChannelCoding is set to LDPC for a user. The default is false.
    EarlyTermination = false;

end

properties(Constant, Hidden)
    EqualizationMethod_Values = {'MMSE', 'ZF'};
    PilotPhaseTracking_Values = {'PreEQ', 'None'};
end

methods
  function obj = wlanRecoveryConfig(varargin)
    obj = obj@wlanConfigBase('EqualizationMethod', 'MMSE', ...
        'PilotPhaseTracking','PreEQ', varargin{:});
  end
  
  function obj = set.OFDMSymbolOffset(obj, val)
    prop = 'OFDMSymbolOffset';
    validateattributes(val, {'double'}, ...
        {'real','scalar','>=',0,'<=',1}, ...
        [class(obj) '.' prop], prop);
    obj.(prop) = val;
  end
  
  function obj = set.EqualizationMethod(obj, val)
    prop = 'EqualizationMethod';
    validateEnumProperties(obj, prop, val);
    obj.(prop) = ''; 
    obj.(prop) = val;
  end
  
  function obj = set.PilotPhaseTracking(obj,val)
    prop = 'PilotPhaseTracking';
    validateEnumProperties(obj, prop, val);
    obj.(prop) = ''; 
    obj.(prop) = val;
  end
  
   function obj = set.MaximumLDPCIterationCount(obj, val)
    prop = 'MaximumLDPCIterationCount';
    validateattributes(val, {'double'}, ...
        {'real','integer','scalar','>',0}, ...
        [class(obj) '.' prop], prop);
    obj.(prop) = val;
   end
   
   function obj = set.EarlyTermination(obj, val)
    prop = 'EarlyTermination';
    validateattributes(val, {'logical'}, {'scalar'}, ...
        [class(obj) '.' prop], prop); 
    obj.(prop) = val;
  end    
  
end

end

% [EOF]