askwnymf.mdl
上传用户:loeagle
上传日期:2013-03-02
资源大小:1236k
文件大小:106k
源码类别:

通讯编程文档

开发平台:

Matlab

  1. Model {
  2.   Name   "askwnymf"
  3.   Version   5.0
  4.   SaveDefaultBlockParams  on
  5.   SampleTimeColors   off
  6.   LibraryLinkDisplay   "none"
  7.   WideLines   off
  8.   ShowLineDimensions   off
  9.   ShowPortDataTypes   off
  10.   ShowLoopsOnError   on
  11.   IgnoreBidirectionalLines off
  12.   ShowStorageClass   off
  13.   ExecutionOrder   off
  14.   RecordCoverage   off
  15.   CovPath   "/"
  16.   CovSaveName   "covdata"
  17.   CovMetricSettings   "dw"
  18.   CovNameIncrementing   off
  19.   CovHtmlReporting   on
  20.   covSaveCumulativeToWorkspaceVar on
  21.   CovSaveSingleToWorkspaceVar on
  22.   CovCumulativeVarName   "covCumulativeData"
  23.   CovCumulativeReport   off
  24.   DataTypeOverride   "UseLocalSettings"
  25.   MinMaxOverflowLogging   "UseLocalSettings"
  26.   MinMaxOverflowArchiveMode "Overwrite"
  27.   BlockNameDataTip   off
  28.   BlockParametersDataTip  off
  29.   BlockDescriptionStringDataTip off
  30.   ToolBar   on
  31.   StatusBar   on
  32.   BrowserShowLibraryLinks off
  33.   BrowserLookUnderMasks   off
  34.   CloseFcn   "closemodcross"
  35.   Created   "Fri Jul 20 14:01:29 2001"
  36.   Creator   "gerhard"
  37.   UpdateHistory   "UpdateHistoryNever"
  38.   ModifiedByFormat   "%<Auto>"
  39.   LastModifiedBy   "bauch"
  40.   ModifiedDateFormat   "%<Auto>"
  41.   LastModifiedDate   "Sat Aug 30 14:41:07 2003"
  42.   ModelVersionFormat   "1.%<AutoIncrement:21>"
  43.   ConfigurationManager   "none"
  44.   SimParamPage   "Solver"
  45.   LinearizationMsg   "none"
  46.   Profile   off
  47.   ParamWorkspaceSource   "MATLABWorkspace"
  48.   AccelSystemTargetFile   "accel.tlc"
  49.   AccelTemplateMakefile   "accel_default_tmf"
  50.   AccelMakeCommand   "make_rtw"
  51.   TryForcingSFcnDF   off
  52.   ExtModeMexFile   "ext_comm"
  53.   ExtModeBatchMode   off
  54.   ExtModeTrigType   "manual"
  55.   ExtModeTrigMode   "normal"
  56.   ExtModeTrigPort   "1"
  57.   ExtModeTrigElement   "any"
  58.   ExtModeTrigDuration   1000
  59.   ExtModeTrigHoldOff   0
  60.   ExtModeTrigDelay   0
  61.   ExtModeTrigDirection   "rising"
  62.   ExtModeTrigLevel   0
  63.   ExtModeArchiveMode   "off"
  64.   ExtModeAutoIncOneShot   off
  65.   ExtModeIncDirWhenArm   off
  66.   ExtModeAddSuffixToVar   off
  67.   ExtModeWriteAllDataToWs off
  68.   ExtModeArmWhenConnect   on
  69.   ExtModeSkipDownloadWhenConnect off
  70.   ExtModeLogAll   on
  71.   ExtModeAutoUpdateStatusClock off
  72.   BufferReuse   on
  73.   RTWExpressionDepthLimit 5
  74.   SimulationMode   "normal"
  75.   Solver   "ode45"
  76.   SolverMode   "Auto"
  77.   StartTime   "0.0"
  78.   StopTime   "999999"
  79.   MaxOrder   5
  80.   MaxStep   "0.05"
  81.   MinStep   ".00001"
  82.   MaxNumMinSteps   "-1"
  83.   InitialStep   "auto"
  84.   FixedStep   "auto"
  85.   RelTol   "1e-6"
  86.   AbsTol   "1e-6"
  87.   OutputOption   "RefineOutputTimes"
  88.   OutputTimes   "[]"
  89.   Refine   "1"
  90.   LoadExternalInput   off
  91.   ExternalInput   "[t, u]"
  92.   LoadInitialState   off
  93.   InitialState   "xInitial"
  94.   SaveTime   off
  95.   TimeSaveName   "tout"
  96.   SaveState   off
  97.   StateSaveName   "xout"
  98.   SaveOutput   off
  99.   OutputSaveName   "yout"
  100.   SaveFinalState   off
  101.   FinalStateName   "xFinal"
  102.   SaveFormat   "Array"
  103.   Decimation   "1"
  104.   LimitDataPoints   on
  105.   MaxDataPoints   "1000"
  106.   SignalLoggingName   "sigsOut"
  107.   ConsistencyChecking   "none"
  108.   ArrayBoundsChecking   "none"
  109.   AlgebraicLoopMsg   "warning"
  110.   BlockPriorityViolationMsg "warning"
  111.   MinStepSizeMsg   "warning"
  112.   InheritedTsInSrcMsg   "warning"
  113.   DiscreteInheritContinuousMsg "warning"
  114.   MultiTaskRateTransMsg   "error"
  115.   SingleTaskRateTransMsg  "none"
  116.   CheckForMatrixSingularity "none"
  117.   IntegerOverflowMsg   "warning"
  118.   Int32ToFloatConvMsg   "warning"
  119.   ParameterDowncastMsg   "error"
  120.   ParameterOverflowMsg   "error"
  121.   ParameterPrecisionLossMsg "warning"
  122.   UnderSpecifiedDataTypeMsg "none"
  123.   UnnecessaryDatatypeConvMsg "none"
  124.   VectorMatrixConversionMsg "none"
  125.   InvalidFcnCallConnMsg   "error"
  126.   SignalLabelMismatchMsg  "none"
  127.   UnconnectedInputMsg   "warning"
  128.   UnconnectedOutputMsg   "warning"
  129.   UnconnectedLineMsg   "warning"
  130.   SfunCompatibilityCheckMsg "none"
  131.   RTWInlineParameters   off
  132.   BlockReductionOpt   off
  133.   BooleanDataType   off
  134.   ConditionallyExecuteInputs on
  135.   ParameterPooling   on
  136.   OptimizeBlockIOStorage  on
  137.   ZeroCross   on
  138.   AssertionControl   "UseLocalSettings"
  139.   ProdHWDeviceType   "Microprocessor"
  140.   ProdHWWordLengths   "8,16,32,32"
  141.   RTWSystemTargetFile   "grt.tlc"
  142.   RTWTemplateMakefile   "grt_default_tmf"
  143.   RTWMakeCommand   "make_rtw"
  144.   RTWGenerateCodeOnly   off
  145.   RTWRetainRTWFile   off
  146.   TLCProfiler   off
  147.   TLCDebug   off
  148.   TLCCoverage   off
  149.   TLCAssertion   off
  150.   BlockDefaults {
  151.     Orientation     "right"
  152.     ForegroundColor     "black"
  153.     BackgroundColor     "white"
  154.     DropShadow     off
  155.     NamePlacement     "normal"
  156.     FontName     "Helvetica"
  157.     FontSize     10
  158.     FontWeight     "normal"
  159.     FontAngle     "normal"
  160.     ShowName     on
  161.   }
  162.   BlockParameterDefaults {
  163.     Block {
  164.       BlockType       Abs
  165.       SaturateOnIntegerOverflow on
  166.       ZeroCross       on
  167.     }
  168.     Block {
  169.       BlockType       Clock
  170.       DisplayTime       off
  171.     }
  172.     Block {
  173.       BlockType       Constant
  174.       Value       "1"
  175.       VectorParams1D       on
  176.       ShowAdditionalParam     off
  177.       OutDataTypeMode       "Inherit from 'Constant value'"
  178.       OutDataType       "sfix(16)"
  179.       ConRadixGroup       "Use specified scaling"
  180.       OutScaling       "2^0"
  181.     }
  182.     Block {
  183.       BlockType       Demux
  184.       Outputs       "4"
  185.       DisplayOption       "none"
  186.       BusSelectionMode       off
  187.     }
  188.     Block {
  189.       BlockType       DigitalClock
  190.       SampleTime       "1"
  191.     }
  192.     Block {
  193.       BlockType       DiscreteFilter
  194.       Numerator       "[1]"
  195.       Denominator       "[1 2]"
  196.       SampleTime       "1"
  197.       Realization       "auto"
  198.       RTWStateStorageClass    "Auto"
  199.     }
  200.     Block {
  201.       BlockType       Fcn
  202.       Expr       "sin(u[1])"
  203.     }
  204.     Block {
  205.       BlockType       Gain
  206.       Gain       "1"
  207.       Multiplication       "Element-wise(K.*u)"
  208.       ShowAdditionalParam     off
  209.       ParameterDataTypeMode   "Same as input"
  210.       ParameterDataType       "sfix(16)"
  211.       ParameterScalingMode    "Best Precision: Matrix-wise"
  212.       ParameterScaling       "2^0"
  213.       OutDataTypeMode       "Same as input"
  214.       OutDataType       "sfix(16)"
  215.       OutScaling       "2^0"
  216.       LockScale       off
  217.       RndMeth       "Floor"
  218.       SaturateOnIntegerOverflow on
  219.     }
  220.     Block {
  221.       BlockType       Inport
  222.       Port       "1"
  223.       PortDimensions       "-1"
  224.       SampleTime       "-1"
  225.       ShowAdditionalParam     off
  226.       LatchInput       off
  227.       DataType       "auto"
  228.       OutDataType       "sfix(16)"
  229.       OutScaling       "2^0"
  230.       SignalType       "auto"
  231.       SamplingMode       "auto"
  232.       Interpolate       on
  233.     }
  234.     Block {
  235.       BlockType       Logic
  236.       Operator       "AND"
  237.       Inputs       "2"
  238.       ShowAdditionalParam     off
  239.       AllPortsSameDT       on
  240.       OutDataTypeMode       "Logical (see Advanced Sim. Parameters)"
  241.       LogicDataType       "uint(8)"
  242.     }
  243.     Block {
  244.       BlockType       Mux
  245.       Inputs       "4"
  246.       DisplayOption       "none"
  247.     }
  248.     Block {
  249.       BlockType       Outport
  250.       Port       "1"
  251.       OutputWhenDisabled      "held"
  252.       InitialOutput       "[]"
  253.     }
  254.     Block {
  255.       BlockType       Product
  256.       Inputs       "2"
  257.       Multiplication       "Element-wise(.*)"
  258.       ShowAdditionalParam     off
  259.       InputSameDT       on
  260.       OutDataTypeMode       "Same as first input"
  261.       OutDataType       "sfix(16)"
  262.       OutScaling       "2^0"
  263.       LockScale       off
  264.       RndMeth       "Floor"
  265.       SaturateOnIntegerOverflow on
  266.     }
  267.     Block {
  268.       BlockType       RandomNumber
  269.       Mean       "0"
  270.       Variance       "1"
  271.       Seed       "0"
  272.       SampleTime       "-1"
  273.       VectorParams1D       on
  274.     }
  275.     Block {
  276.       BlockType       RelationalOperator
  277.       Operator       ">="
  278.       ShowAdditionalParam     off
  279.       InputSameDT       on
  280.       LogicOutDataTypeMode    "Logical (see Advanced Sim. Parameters)"
  281.       LogicDataType       "uint(8)"
  282.       ZeroCross       on
  283.     }
  284.     Block {
  285.       BlockType       Scope
  286.       Floating       off
  287.       ModelBased       off
  288.       TickLabels       "OneTimeTick"
  289.       ZoomMode       "on"
  290.       Grid       "on"
  291.       TimeRange       "auto"
  292.       YMin       "-5"
  293.       YMax       "5"
  294.       SaveToWorkspace       off
  295.       SaveName       "ScopeData"
  296.       LimitDataPoints       on
  297.       MaxDataPoints       "5000"
  298.       Decimation       "1"
  299.       SampleInput       off
  300.       SampleTime       "0"
  301.     }
  302.     Block {
  303.       BlockType       "S-Function"
  304.       FunctionName       "system"
  305.       PortCounts       "[]"
  306.       SFunctionModules       "''"
  307.     }
  308.     Block {
  309.       BlockType       StateSpace
  310.       A       "1"
  311.       B       "1"
  312.       C       "1"
  313.       D       "1"
  314.       X0       "0"
  315.       AbsoluteTolerance       "auto"
  316.       Realization       "auto"
  317.     }
  318.     Block {
  319.       BlockType       Step
  320.       Time       "1"
  321.       Before       "0"
  322.       After       "1"
  323.       SampleTime       "-1"
  324.       VectorParams1D       on
  325.       ZeroCross       on
  326.     }
  327.     Block {
  328.       BlockType       SubSystem
  329.       ShowPortLabels       on
  330.       Permissions       "ReadWrite"
  331.       RTWSystemCode       "Auto"
  332.       RTWFcnNameOpts       "Auto"
  333.       RTWFileNameOpts       "Auto"
  334.       SimViewingDevice       off
  335.       DataTypeOverride       "UseLocalSettings"
  336.       MinMaxOverflowLogging   "UseLocalSettings"
  337.     }
  338.     Block {
  339.       BlockType       Sum
  340.       IconShape       "rectangular"
  341.       Inputs       "++"
  342.       ShowAdditionalParam     off
  343.       InputSameDT       on
  344.       OutDataTypeMode       "Same as first input"
  345.       OutDataType       "sfix(16)"
  346.       OutScaling       "2^0"
  347.       LockScale       off
  348.       RndMeth       "Floor"
  349.       SaturateOnIntegerOverflow on
  350.     }
  351.     Block {
  352.       BlockType       Switch
  353.       Criteria       "u2 >= Threshold"
  354.       Threshold       "0"
  355.       ShowAdditionalParam     off
  356.       InputSameDT       on
  357.       OutDataTypeMode       "Inherit via internal rule"
  358.       RndMeth       "Floor"
  359.       SaturateOnIntegerOverflow on
  360.       ZeroCross       on
  361.     }
  362.     Block {
  363.       BlockType       Terminator
  364.     }
  365.     Block {
  366.       BlockType       UnitDelay
  367.       X0       "0"
  368.       SampleTime       "1"
  369.       RTWStateStorageClass    "Auto"
  370.     }
  371.     Block {
  372.       BlockType       ZeroOrderHold
  373.       SampleTime       "1"
  374.     }
  375.   }
  376.   AnnotationDefaults {
  377.     HorizontalAlignment     "center"
  378.     VerticalAlignment     "middle"
  379.     ForegroundColor     "black"
  380.     BackgroundColor     "white"
  381.     DropShadow     off
  382.     FontName     "Helvetica"
  383.     FontSize     10
  384.     FontWeight     "normal"
  385.     FontAngle     "normal"
  386.   }
  387.   LineDefaults {
  388.     FontName     "Helvetica"
  389.     FontSize     9
  390.     FontWeight     "normal"
  391.     FontAngle     "normal"
  392.   }
  393.   System {
  394.     Name     "askwnymf"
  395.     Location     [11, 111, 1023, 387]
  396.     Open     on
  397.     ModelBrowserVisibility  off
  398.     ModelBrowserWidth     200
  399.     ScreenColor     "white"
  400.     PaperOrientation     "landscape"
  401.     PaperPositionMode     "auto"
  402.     PaperType     "usletter"
  403.     PaperUnits     "inches"
  404.     ZoomFactor     "100"
  405.     ReportName     "simulink-default.rpt"
  406.     Block {
  407.       BlockType       SubSystem
  408.       Name       "4-ASK"
  409.       Ports       [1, 1]
  410.       Position       [120, 104, 200, 146]
  411.       TreatAsAtomicUnit       off
  412.       MaskType       "M-ASK mapping"
  413.       MaskDescription       "Map a digital symbol onto an analognsignal in "
  414. "the range [-1, 1] using M-arynamplitude shift keying modulation mapping."
  415.       MaskHelp       "This block maps an input digit signal onto a si"
  416. "gnal in the range [-1, 1]. The coded signal can be modulated using analog\nm"
  417. "odulation blocks. Input digits are in the range [0, M-1], where M is the M-ar"
  418. "y number. The input symbol interval can be a two-element vector with the seco"
  419. "nd element being offset. The default value offset is 0. Use the MODMAP functi"
  420. "on to see the constellation."
  421.       MaskPromptString       "M-ary number (input integers in range [0, M-1])"
  422. ":|Input symbol interval and offset (sec):"
  423.       MaskStyleString       "edit,edit"
  424.       MaskTunableValueString  "on,on"
  425.       MaskCallbackString      "|"
  426.       MaskEnableString       "on,on"
  427.       MaskVisibilityString    "on,on"
  428.       MaskToolTipString       "on,on"
  429.       MaskVarAliasString      ","
  430.       MaskVariables       "N=@1;td=@2;"
  431.       MaskInitialization      "Ac=1;Kc=Ac*2/(N-1);"
  432.       MaskDisplay       "disp('MASK\nmapping')"
  433.       MaskIconFrame       on
  434.       MaskIconOpaque       on
  435.       MaskIconRotate       "none"
  436.       MaskIconUnits       "autoscale"
  437.       MaskValueString       "4|1"
  438.       System {
  439. Name "4-ASK"
  440. Location [148, 182, 646, 482]
  441. Open off
  442. ModelBrowserVisibility off
  443. ModelBrowserWidth 200
  444. ScreenColor "white"
  445. PaperOrientation "landscape"
  446. PaperPositionMode "auto"
  447. PaperType "usletter"
  448. PaperUnits "inches"
  449. ZoomFactor "100"
  450. Block {
  451.   BlockType   Inport
  452.   Name   "in_1"
  453.   Position   [60, 60, 80, 80]
  454. }
  455. Block {
  456.   BlockType   Gain
  457.   Name   "Gain"
  458.   Position   [200, 55, 240, 85]
  459.   Gain   "Kc"
  460. }
  461. Block {
  462.   BlockType   Constant
  463.   Name   "Gain diff"
  464.   Position   [200, 126, 235, 154]
  465.   Value   "Ac"
  466. }
  467. Block {
  468.   BlockType   Sum
  469.   Name   "Sum1"
  470.   Ports   [2, 1]
  471.   Position   [270, 93, 290, 117]
  472.   Inputs   "+-"
  473. }
  474. Block {
  475.   BlockType   ZeroOrderHold
  476.   Name   "Zero-OrdernHold"
  477.   Position   [120, 54, 155, 86]
  478.   SampleTime   "td"
  479. }
  480. Block {
  481.   BlockType   Outport
  482.   Name   "out_1"
  483.   Position   [335, 95, 355, 115]
  484. }
  485. Line {
  486.   SrcBlock   "Gain"
  487.   SrcPort   1
  488.   Points   [5, 0; 0, 30]
  489.   DstBlock   "Sum1"
  490.   DstPort   1
  491. }
  492. Line {
  493.   SrcBlock   "Gain diff"
  494.   SrcPort   1
  495.   Points   [10, 0; 0, -30]
  496.   DstBlock   "Sum1"
  497.   DstPort   2
  498. }
  499. Line {
  500.   SrcBlock   "Sum1"
  501.   SrcPort   1
  502.   DstBlock   "out_1"
  503.   DstPort   1
  504. }
  505. Line {
  506.   SrcBlock   "in_1"
  507.   SrcPort   1
  508.   DstBlock   "Zero-OrdernHold"
  509.   DstPort   1
  510. }
  511. Line {
  512.   SrcBlock   "Zero-OrdernHold"
  513.   SrcPort   1
  514.   DstBlock   "Gain"
  515.   DstPort   1
  516. }
  517.       }
  518.     }
  519.     Block {
  520.       BlockType       SubSystem
  521.       Name       "4-ASK demap"
  522.       Ports       [1, 1]
  523.       Position       [870, 109, 940, 151]
  524.       TreatAsAtomicUnit       off
  525.       MaskType       "MASK demapping"
  526.       MaskDescription       "Reverse the MASK mapping processnConvert [-1 1"
  527. "] analog signal to [0, M-1] symbols."
  528.       MaskHelp       "This block demaps a MASK mapped signal back to "
  529. "digit symbols. You can place this block after a amplitude demodulation block."
  530. " The input of this block is an analog signal in the range [-1, 1]. The demodu"
  531. "lation decides the closest integer fitting in [0,M-1] range. When the input s"
  532. "ymbol interval is a two-elements vector, the second element is offset. The de"
  533. "fault offset value is 0."
  534.       MaskPromptString       "M-ary number (digit integers in ranger [0, M-1]"
  535. "):|Output symbol interval and offset (sec):"
  536.       MaskStyleString       "edit,edit"
  537.       MaskTunableValueString  "on,on"
  538.       MaskCallbackString      "|"
  539.       MaskEnableString       "on,on"
  540.       MaskVisibilityString    "on,on"
  541.       MaskToolTipString       "on,on"
  542.       MaskVarAliasString      ","
  543.       MaskVariables       "N=@1;td=@2;"
  544.       MaskInitialization      "Ac=1;sft=[0:N-1]*Ac*2/(N-1)-Ac;"
  545.       MaskDisplay       "disp('MASK\ndemapping')"
  546.       MaskIconFrame       on
  547.       MaskIconOpaque       on
  548.       MaskIconRotate       "none"
  549.       MaskIconUnits       "autoscale"
  550.       MaskValueString       "4|[1, .9]"
  551.       System {
  552. Name "4-ASK demap"
  553. Location [617, 158, 1115, 458]
  554. Open off
  555. ModelBrowserVisibility off
  556. ModelBrowserWidth 200
  557. ScreenColor "white"
  558. PaperOrientation "landscape"
  559. PaperPositionMode "auto"
  560. PaperType "usletter"
  561. PaperUnits "inches"
  562. ZoomFactor "100"
  563. Block {
  564.   BlockType   Inport
  565.   Name   "in_1"
  566.   Position   [40, 30, 60, 50]
  567. }
  568. Block {
  569.   BlockType   Abs
  570.   Name   "Abs"
  571.   Position   [245, 37, 280, 63]
  572. }
  573. Block {
  574.   BlockType   "S-Function"
  575.   Name   "Minimum"
  576.   Ports   [1, 1]
  577.   Position   [325, 40, 380, 60]
  578.   FunctionName   "arymimai"
  579.   Parameters   "'min'"
  580. }
  581. Block {
  582.   BlockType   Constant
  583.   Name   "Shift key"
  584.   Position   [125, 88, 145, 112]
  585.   Value   "sft"
  586. }
  587. Block {
  588.   BlockType   Sum
  589.   Name   "Sum2"
  590.   Ports   [2, 1]
  591.   Position   [190, 33, 210, 62]
  592.   Inputs   "+-"
  593. }
  594. Block {
  595.   BlockType   ZeroOrderHold
  596.   Name   "Zero-OrdernHold"
  597.   Position   [95, 24, 130, 56]
  598.   SampleTime   "td"
  599. }
  600. Block {
  601.   BlockType   Outport
  602.   Name   "out_1"
  603.   Position   [410, 40, 430, 60]
  604. }
  605. Line {
  606.   SrcBlock   "in_1"
  607.   SrcPort   1
  608.   DstBlock   "Zero-OrdernHold"
  609.   DstPort   1
  610. }
  611. Line {
  612.   SrcBlock   "Abs"
  613.   SrcPort   1
  614.   DstBlock   "Minimum"
  615.   DstPort   1
  616. }
  617. Line {
  618.   SrcBlock   "Zero-OrdernHold"
  619.   SrcPort   1
  620.   DstBlock   "Sum2"
  621.   DstPort   1
  622. }
  623. Line {
  624.   SrcBlock   "Minimum"
  625.   SrcPort   1
  626.   DstBlock   "out_1"
  627.   DstPort   1
  628. }
  629. Line {
  630.   SrcBlock   "Shift key"
  631.   SrcPort   1
  632.   Points   [15, 0; 0, -45]
  633.   DstBlock   "Sum2"
  634.   DstPort   2
  635. }
  636. Line {
  637.   SrcBlock   "Sum2"
  638.   SrcPort   1
  639.   DstBlock   "Abs"
  640.   DstPort   1
  641. }
  642.       }
  643.     }
  644.     Block {
  645.       BlockType       SubSystem
  646.       Name       "4-ary source"
  647.       Ports       [0, 2]
  648.       Position       [35, 101, 65, 154]
  649.       ShowPortLabels       off
  650.       TreatAsAtomicUnit       off
  651.       System {
  652. Name "4-ary source"
  653. Location [84, 535, 621, 774]
  654. Open off
  655. ModelBrowserVisibility off
  656. ModelBrowserWidth 200
  657. ScreenColor "white"
  658. PaperOrientation "landscape"
  659. PaperPositionMode "auto"
  660. PaperType "usletter"
  661. PaperUnits "inches"
  662. ZoomFactor "100"
  663. Block {
  664.   BlockType   SubSystem
  665.   Name   "Bits"
  666.   Ports   [0, 1]
  667.   Position   [25, 48, 85, 92]
  668.   ShowPortLabels   off
  669.   TreatAsAtomicUnit   off
  670.   MaskType   "Read from workspace"
  671.   MaskDescription   "Read from a workspace variable atnsampling"
  672. " time point."
  673.   MaskHelp   "This block reads from a workspace variable "
  674. "at a given sample time. The column number is the block output vector length. "
  675. "When the simulation reaches the end of the variable (eof), the block will cyc"
  676. "lically output from the first row of the variable or output zeros based on th"
  677. "e repeat flag entree."
  678.   MaskPromptString   "Variable (column_number=block_output_length"
  679. "):|Data output sample time (sec):|Repeat flag (1: repeat read, 0: output zero"
  680. "s after eof).|Initial output:"
  681.   MaskStyleString   "edit,edit,edit,edit"
  682.   MaskTunableValueString  "on,on,on,on"
  683.   MaskCallbackString   "|||"
  684.   MaskEnableString   "on,on,on,on"
  685.   MaskVisibilityString   "on,on,on,on"
  686.   MaskToolTipString   "on,on,on,on"
  687.   MaskVarAliasString   ",,,"
  688.   MaskInitialization   "var=@1;td=@2;ts=td(1);if (length(td)>=2),of"
  689. "f=td(2);else off=0;end;cyc=@3;ini=@4;[x,y]=srcsicon(7);"
  690.   MaskDisplay   "plot(0,0,100,100,x,y);disp('Rd wksp')"
  691.   MaskIconFrame   on
  692.   MaskIconOpaque   on
  693.   MaskIconRotate   "none"
  694.   MaskIconUnits   "autoscale"
  695.   MaskValueString   "randint(2000,1,2)|.5|1|1"
  696.   System {
  697.     Name     "Bits"
  698.     Location     [355, 528, 737, 675]
  699.     Open     off
  700.     ModelBrowserVisibility  off
  701.     ModelBrowserWidth     200
  702.     ScreenColor     "white"
  703.     PaperOrientation     "landscape"
  704.     PaperPositionMode     "auto"
  705.     PaperType     "usletter"
  706.     PaperUnits     "inches"
  707.     ZoomFactor     "100"
  708.     Block {
  709.       BlockType       "S-Function"
  710.       Name       "Message source"
  711.       Ports       [1, 1]
  712.       Position       [180, 53, 255, 97]
  713.       BackgroundColor       "yellow"
  714.       FunctionName       "trigwksp"
  715.       Parameters       "var,thd,cyclFlag,ini"
  716.       MaskType       "Read from workspace"
  717.       MaskDescription       "The raising edge of input pulse trigger"
  718. " the block output the next row from the workspace variable."
  719.       MaskHelp       "This block reads the data from a worksp"
  720. "ace variable. The output is refreshed at the raising edge of the input pulse."
  721.       MaskPromptString       "Read the variable:|Threshold for the in"
  722. "put pulse:|Cyclic read variable (1) or amend zeros (0).|Output before first t"
  723. "rigger:"
  724.       MaskStyleString       "edit,edit,edit,edit"
  725.       MaskTunableValueString  "on,on,on,on"
  726.       MaskCallbackString      "|||"
  727.       MaskEnableString       "on,on,on,on"
  728.       MaskVisibilityString    "on,on,on,on"
  729.       MaskToolTipString       "on,on,on,on"
  730.       MaskVarAliasString      ",,,"
  731.       MaskInitialization      "var=@1;thd=@2;cyclFlag=@3;ini=@4;"
  732.       MaskDisplay       "disp('Triggered\nread')"
  733.       MaskIconFrame       on
  734.       MaskIconOpaque       on
  735.       MaskIconRotate       "none"
  736.       MaskIconUnits       "autoscale"
  737.       MaskValueString       "var|.1|cyc|ini"
  738.     }
  739.     Block {
  740.       BlockType       SubSystem
  741.       Name       "Pulses deividensame sample time1"
  742.       Ports       [0, 1]
  743.       Position       [50, 56, 110, 94]
  744.       ShowPortLabels       off
  745.       TreatAsAtomicUnit       off
  746.       MaskType       "Pulse generator"
  747.       MaskDescription       "Vector pulses with sample rate of each "
  748. "pulse as Sample_time ./Divider. "
  749.       MaskHelp       "This block generator a vector pulses. T"
  750. "he output length is the same as the vector defined in "Divider". The ith el"
  751. "ement of the output has the sample time Sample_time/Divider(i). All elements "
  752. "in "Divider" must be integers."
  753.       MaskPromptString       "Sample time (scalar, sec):|Divider (int"
  754. "eger vector):|Offset (have same dimension as Divider:"
  755.       MaskStyleString       "edit,edit,edit"
  756.       MaskTunableValueString  "on,on,on"
  757.       MaskCallbackString      "||"
  758.       MaskEnableString       "on,on,on"
  759.       MaskVisibilityString    "on,on,on"
  760.       MaskToolTipString       "on,on,on"
  761.       MaskVarAliasString      ",,"
  762.       MaskInitialization      "samp_time=@1;out_divid=@2;offset=@3;"
  763.       MaskDisplay       "disp('Vector\nPulse')"
  764.       MaskIconFrame       on
  765.       MaskIconOpaque       on
  766.       MaskIconRotate       "none"
  767.       MaskIconUnits       "autoscale"
  768.       MaskValueString       "ts|1|off"
  769.       System {
  770. Name "Pulses deividensame sample time1"
  771. Location [55, 192, 283, 286]
  772. Open off
  773. ModelBrowserVisibility off
  774. ModelBrowserWidth 200
  775. ScreenColor "white"
  776. PaperOrientation "landscape"
  777. PaperPositionMode "auto"
  778. PaperType "usletter"
  779. PaperUnits "inches"
  780. ZoomFactor "100"
  781. Block {
  782.   BlockType   "S-Function"
  783.   Name   "S-function1"
  784.   Ports   [0, 1]
  785.   Position   [40, 31, 105, 59]
  786.   FunctionName   "homopuls"
  787.   Parameters   "samp_time, out_divid, offset"
  788. }
  789. Block {
  790.   BlockType   Outport
  791.   Name   "Outport"
  792.   Position   [160, 35, 180, 55]
  793. }
  794. Line {
  795.   SrcBlock   "S-function1"
  796.   SrcPort   1
  797.   DstBlock   "Outport"
  798.   DstPort   1
  799. }
  800.       }
  801.     }
  802.     Block {
  803.       BlockType       Outport
  804.       Name       "out_1"
  805.       Position       [295, 65, 315, 85]
  806.     }
  807.     Line {
  808.       SrcBlock       "Pulses deividensame sample time1"
  809.       SrcPort       1
  810.       DstBlock       "Message source"
  811.       DstPort       1
  812.     }
  813.     Line {
  814.       SrcBlock       "Message source"
  815.       SrcPort       1
  816.       DstBlock       "out_1"
  817.       DstPort       1
  818.     }
  819.   }
  820. }
  821. Block {
  822.   BlockType   "S-Function"
  823.   Name   "D/A "
  824.   Ports   [1, 1]
  825.   Position   [370, 128, 450, 172]
  826.   FunctionName   "simbi2de"
  827.   Parameters   "p"
  828.   MaskType   "Base M vector to decimal integer"
  829.   MaskDescription   "Convert base M integer with eachnposition "
  830. "in the input vector into scalar decimal output."
  831.   MaskHelp   "This block convert the base M vector into s"
  832. "calar decimal integer output. Each element of the input vector is one positio"
  833. "n of the digit of the base M integer. The 1st element in the input vector con"
  834. "tains the 1's position. The 2nd element in the input vector contains the M's "
  835. "position."
  836.   MaskPromptString   "Input integer base M:"
  837.   MaskStyleString   "edit"
  838.   MaskTunableValueString  "on"
  839.   MaskEnableString   "on"
  840.   MaskVisibilityString   "on"
  841.   MaskToolTipString   "on"
  842.   MaskInitialization   "p=@1;"
  843.   MaskDisplay   "disp('Vec to sca\nconverter')"
  844.   MaskIconFrame   on
  845.   MaskIconOpaque   on
  846.   MaskIconRotate   "none"
  847.   MaskIconUnits   "autoscale"
  848.   MaskValueString   "2"
  849. }
  850. Block {
  851.   BlockType   SubSystem
  852.   Name   "Shift register"
  853.   Ports   [2, 2]
  854.   Position   [120, 133, 200, 177]
  855.   ShowPortLabels   off
  856.   TreatAsAtomicUnit   off
  857.   MaskType   "Register-shift"
  858.   MaskDescription   "The rising edge of the 2nd port pulsentrig"
  859. "gers the block to input the 1st port data and to shift the register."
  860.   MaskHelp   "This block stores the scalar input signal f"
  861. "rom the 1st input port at the rising edge of the pulse from the 2nd port. The"
  862. " 1st outport outputs a vector with its size the same as the "Delay steps" e"
  863. "ntree of this block. The maximum delay is the register size of this block. Th"
  864. "e second outport outputs a positive pulse when the register is\nrefreshed."
  865.   MaskPromptString   "Delay steps (output length is same as this "
  866. "vector size):|Threshold in detecting the rising edge of the pulse:"
  867.   MaskStyleString   "edit,edit"
  868.   MaskTunableValueString  "on,on"
  869.   MaskCallbackString   "|"
  870.   MaskEnableString   "on,on"
  871.   MaskVisibilityString   "on,on"
  872.   MaskToolTipString   "on,on"
  873.   MaskVarAliasString   ","
  874.   MaskInitialization   "shft_out=@1;thrhld=@2;len_rg=length(@1);[v,"
  875. "w]=trigicon(0,25,get_param(gcb,'orientation'),2);[x,y]=trigicon(1,75,get_para"
  876. "m(gcb,'orientation'),2);"
  877.   MaskDisplay   "plot(0,0,100,100,x,y,v,w);disp('Reg. shift'"
  878. ")"
  879.   MaskIconFrame   on
  880.   MaskIconOpaque   on
  881.   MaskIconRotate   "none"
  882.   MaskIconUnits   "autoscale"
  883.   MaskValueString   "[2 1]|1"
  884.   System {
  885.     Name     "Shift register"
  886.     Location     [19, 610, 374, 740]
  887.     Open     off
  888.     ModelBrowserVisibility  off
  889.     ModelBrowserWidth     200
  890.     ScreenColor     "white"
  891.     PaperOrientation     "landscape"
  892.     PaperPositionMode     "auto"
  893.     PaperType     "usletter"
  894.     PaperUnits     "inches"
  895.     ZoomFactor     "100"
  896.     Block {
  897.       BlockType       Inport
  898.       Name       "in_1"
  899.       Position       [30, 55, 50, 75]
  900.     }
  901.     Block {
  902.       BlockType       Inport
  903.       Name       "in_2"
  904.       Position       [30, 70, 50, 90]
  905.       Port       "2"
  906.     }
  907.     Block {
  908.       BlockType       Demux
  909.       Name       "Demux"
  910.       Ports       [1, 2]
  911.       Position       [260, 55, 300, 90]
  912.       Outputs       "[len_rg, 1]"
  913.     }
  914.     Block {
  915.       BlockType       Mux
  916.       Name       "Mux"
  917.       Ports       [2, 1]
  918.       Position       [80, 56, 115, 89]
  919.       Inputs       "2"
  920.     }
  921.     Block {
  922.       BlockType       "S-Function"
  923.       Name       "S-function"
  924.       Ports       [1, 1]
  925.       Position       [150, 65, 200, 85]
  926.       FunctionName       "regshift"
  927.       Parameters       "shft_out, thrhld"
  928.     }
  929.     Block {
  930.       BlockType       Outport
  931.       Name       "out_1"
  932.       Position       [330, 55, 350, 75]
  933.     }
  934.     Block {
  935.       BlockType       Outport
  936.       Name       "out_2"
  937.       Position       [330, 70, 350, 90]
  938.       Port       "2"
  939.     }
  940.     Line {
  941.       SrcBlock       "in_2"
  942.       SrcPort       1
  943.       DstBlock       "Mux"
  944.       DstPort       2
  945.     }
  946.     Line {
  947.       SrcBlock       "in_1"
  948.       SrcPort       1
  949.       DstBlock       "Mux"
  950.       DstPort       1
  951.     }
  952.     Line {
  953.       SrcBlock       "Demux"
  954.       SrcPort       2
  955.       DstBlock       "out_2"
  956.       DstPort       1
  957.     }
  958.     Line {
  959.       SrcBlock       "Demux"
  960.       SrcPort       1
  961.       DstBlock       "out_1"
  962.       DstPort       1
  963.     }
  964.     Line {
  965.       SrcBlock       "S-function"
  966.       SrcPort       1
  967.       DstBlock       "Demux"
  968.       DstPort       1
  969.     }
  970.     Line {
  971.       SrcBlock       "Mux"
  972.       SrcPort       1
  973.       DstBlock       "S-function"
  974.       DstPort       1
  975.     }
  976.   }
  977. }
  978. Block {
  979.   BlockType   Terminator
  980.   Name   "Terminator"
  981.   Position   [475, 195, 495, 215]
  982. }
  983. Block {
  984.   BlockType   SubSystem
  985.   Name   "clock"
  986.   Ports   [0, 1]
  987.   Position   [35, 147, 70, 183]
  988.   ShowPortLabels   off
  989.   TreatAsAtomicUnit   off
  990.   MaskType   "Pulse Generator"
  991.   MaskDescription   "Pulse Generator."
  992.   MaskHelp   "Pulse generator which ensures pulse\ntrans"
  993. "itions are hit. Provides a vector of pulses when the height is entered as a v"
  994. "ector.\nUnmask to see how it works."
  995.   MaskPromptString   "Pulse period (secs):|Pulse width:|Pulse hei"
  996. "ght:|Pulse start time:"
  997.   MaskStyleString   "edit,edit,edit,edit"
  998.   MaskTunableValueString  "on,on,on,on"
  999.   MaskCallbackString   "|||"
  1000.   MaskEnableString   "on,on,on,on"
  1001.   MaskVisibilityString   "on,on,on,on"
  1002.   MaskToolTipString   "on,on,on,on"
  1003.   MaskVarAliasString   ",,,"
  1004.   MaskInitialization   "Ts=@1; du=@2; ht=@3; stt=@4; ini=ones(lengt"
  1005. "h(ht),1); st1=rem(stt,Ts); st2=rem(stt+du,Ts);if(Ts<=1.2*du),ini=zeros(length"
  1006. "(ht),1);end;"
  1007.   MaskDisplay   "plot(0,0,100,100,[90,75,75,60,60,35,35,20,2"
  1008. "0,10],[20,20,80,80,20,20,80,80,20,20])"
  1009.   MaskIconFrame   on
  1010.   MaskIconOpaque   on
  1011.   MaskIconRotate   "none"
  1012.   MaskIconUnits   "autoscale"
  1013.   MaskValueString   ".5|.25|1|0"
  1014.   System {
  1015.     Name     "clock"
  1016.     Location     [158, 441, 759, 682]
  1017.     Open     off
  1018.     ModelBrowserVisibility  off
  1019.     ModelBrowserWidth     200
  1020.     ScreenColor     "white"
  1021.     PaperOrientation     "landscape"
  1022.     PaperPositionMode     "auto"
  1023.     PaperType     "usletter"
  1024.     PaperUnits     "inches"
  1025.     ZoomFactor     "100"
  1026.     Block {
  1027.       BlockType       Clock
  1028.       Name       "Clock1"
  1029.       Position       [295, 100, 315, 120]
  1030.       ShowName       off
  1031.       Decimation       "10"
  1032.     }
  1033.     Block {
  1034.       BlockType       Constant
  1035.       Name       "Constant"
  1036.       Position       [25, 30, 45, 50]
  1037.     }
  1038.     Block {
  1039.       BlockType       Constant
  1040.       Name       "Constant1"
  1041.       Position       [295, 149, 320, 171]
  1042.       Value       "stt"
  1043.     }
  1044.     Block {
  1045.       BlockType       Gain
  1046.       Name       "Gain"
  1047.       Position       [510, 102, 535, 128]
  1048.       ShowName       off
  1049.       Gain       "ht"
  1050.     }
  1051.     Block {
  1052.       BlockType       Logic
  1053.       Name       "LogicalnOperator"
  1054.       Ports       [2, 1]
  1055.       Position       [285, 38, 315, 62]
  1056.       Operator       "XOR"
  1057.     }
  1058.     Block {
  1059.       BlockType       Logic
  1060.       Name       "LogicalnOperator1"
  1061.       Ports       [1, 1]
  1062.       Position       [355, 38, 385, 62]
  1063.       Operator       "NOT"
  1064.       Inputs       "1"
  1065.     }
  1066.     Block {
  1067.       BlockType       Product
  1068.       Name       "Product"
  1069.       Ports       [2, 1]
  1070.       Position       [455, 105, 480, 125]
  1071.       ShowName       off
  1072.     }
  1073.     Block {
  1074.       BlockType       RelationalOperator
  1075.       Name       "Relationalnoperator"
  1076.       Position       [370, 102, 400, 133]
  1077.       ShowName       off
  1078.     }
  1079.     Block {
  1080.       BlockType       Sum
  1081.       Name       "Sum"
  1082.       Ports       [2, 1]
  1083.       Position       [135, 35, 155, 55]
  1084.       ShowName       off
  1085.       Inputs       "+-"
  1086.     }
  1087.     Block {
  1088.       BlockType       Sum
  1089.       Name       "Sum1"
  1090.       Ports       [2, 1]
  1091.       Position       [130, 120, 150, 140]
  1092.       ShowName       off
  1093.       Inputs       "+-"
  1094.     }
  1095.     Block {
  1096.       BlockType       UnitDelay
  1097.       Name       "Unit Delay"
  1098.       Position       [145, 75, 195, 95]
  1099.       Orientation       "left"
  1100.       SampleTime       "[Ts,st1]"
  1101.     }
  1102.     Block {
  1103.       BlockType       UnitDelay
  1104.       Name       "Unit Delay1"
  1105.       Position       [140, 165, 190, 185]
  1106.       Orientation       "left"
  1107.       X0       "ini"
  1108.       SampleTime       "[Ts,st2]"
  1109.     }
  1110.     Block {
  1111.       BlockType       Outport
  1112.       Name       "out_1"
  1113.       Position       [560, 105, 580, 125]
  1114.       ShowName       off
  1115.     }
  1116.     Line {
  1117.       SrcBlock       "LogicalnOperator1"
  1118.       SrcPort       1
  1119.       Points       [40, 0; 0, 60]
  1120.       DstBlock       "Product"
  1121.       DstPort       1
  1122.     }
  1123.     Line {
  1124.       SrcBlock       "LogicalnOperator"
  1125.       SrcPort       1
  1126.       DstBlock       "LogicalnOperator1"
  1127.       DstPort       1
  1128.     }
  1129.     Line {
  1130.       SrcBlock       "Constant1"
  1131.       SrcPort       1
  1132.       Points       [20, 0; 0, -35]
  1133.       DstBlock       "Relationalnoperator"
  1134.       DstPort       2
  1135.     }
  1136.     Line {
  1137.       SrcBlock       "Gain"
  1138.       SrcPort       1
  1139.       DstBlock       "out_1"
  1140.       DstPort       1
  1141.     }
  1142.     Line {
  1143.       SrcBlock       "Product"
  1144.       SrcPort       1
  1145.       DstBlock       "Gain"
  1146.       DstPort       1
  1147.     }
  1148.     Line {
  1149.       SrcBlock       "Relationalnoperator"
  1150.       SrcPort       1
  1151.       DstBlock       "Product"
  1152.       DstPort       2
  1153.     }
  1154.     Line {
  1155.       SrcBlock       "Clock1"
  1156.       SrcPort       1
  1157.       DstBlock       "Relationalnoperator"
  1158.       DstPort       1
  1159.     }
  1160.     Line {
  1161.       SrcBlock       "Unit Delay"
  1162.       SrcPort       1
  1163.       Points       [-35, 0; 0, -35]
  1164.       DstBlock       "Sum"
  1165.       DstPort       2
  1166.     }
  1167.     Line {
  1168.       SrcBlock       "Sum"
  1169.       SrcPort       1
  1170.       Points       [0, 0]
  1171.       Branch {
  1172. Points [70, 0; 0, 40]
  1173. DstBlock "Unit Delay"
  1174. DstPort 1
  1175.       }
  1176.       Branch {
  1177. DstBlock "LogicalnOperator"
  1178. DstPort 1
  1179.       }
  1180.     }
  1181.     Line {
  1182.       SrcBlock       "Constant"
  1183.       SrcPort       1
  1184.       Points       [0, 0]
  1185.       Branch {
  1186. DstBlock "Sum"
  1187. DstPort 1
  1188.       }
  1189.       Branch {
  1190. Points [20, 0; 0, 85]
  1191. DstBlock "Sum1"
  1192. DstPort 1
  1193.       }
  1194.     }
  1195.     Line {
  1196.       SrcBlock       "Sum1"
  1197.       SrcPort       1
  1198.       Points       [0, 0]
  1199.       Branch {
  1200. Points [55, 0; 0, 45]
  1201. DstBlock "Unit Delay1"
  1202. DstPort 1
  1203.       }
  1204.       Branch {
  1205. Points [90, 0; 0, -75]
  1206. DstBlock "LogicalnOperator"
  1207. DstPort 2
  1208.       }
  1209.     }
  1210.     Line {
  1211.       SrcBlock       "Unit Delay1"
  1212.       SrcPort       1
  1213.       Points       [-35, 0; 0, -40]
  1214.       DstBlock       "Sum1"
  1215.       DstPort       2
  1216.     }
  1217.   }
  1218. }
  1219. Block {
  1220.   BlockType   SubSystem
  1221.   Name   "delay"
  1222.   Ports   [1, 1]
  1223.   Position   [260, 48, 340, 92]
  1224.   ShowPortLabels   off
  1225.   TreatAsAtomicUnit   off
  1226.   MaskType   "Multi-step delay"
  1227.   MaskDescription   "Output is K-step delay of the input signal."
  1228.   MaskHelp   "This block holds the input signal for K ste"
  1229. "ps and then outputs the signal. The delay step cannot be changed during the s"
  1230. "imulation."
  1231.   MaskPromptString   "Delay steps (integer):|Sample time (sec):|I"
  1232. "nitial output:"
  1233.   MaskStyleString   "edit,edit,edit"
  1234.   MaskTunableValueString  "on,on,on"
  1235.   MaskCallbackString   "||"
  1236.   MaskEnableString   "on,on,on"
  1237.   MaskVisibilityString   "on,on,on"
  1238.   MaskToolTipString   "on,on,on"
  1239.   MaskVarAliasString   ",,"
  1240.   MaskInitialization   "n=@1;ts=@2;if length(ts)<2, ts=[ts 0];end;i"
  1241. "ni=@3;"
  1242.   MaskDisplay   "disp('-k\nz   ')"
  1243.   MaskIconFrame   on
  1244.   MaskIconOpaque   on
  1245.   MaskIconRotate   "none"
  1246.   MaskIconUnits   "autoscale"
  1247.   MaskValueString   "2|.5|0"
  1248.   System {
  1249.     Name     "delay"
  1250.     Location     [12, 432, 357, 702]
  1251.     Open     off
  1252.     ModelBrowserVisibility  off
  1253.     ModelBrowserWidth     200
  1254.     ScreenColor     "white"
  1255.     PaperOrientation     "landscape"
  1256.     PaperPositionMode     "auto"
  1257.     PaperType     "usletter"
  1258.     PaperUnits     "inches"
  1259.     ZoomFactor     "100"
  1260.     Block {
  1261.       BlockType       Inport
  1262.       Name       "in_1"
  1263.       Position       [20, 80, 40, 100]
  1264.     }
  1265.     Block {
  1266.       BlockType       Constant
  1267.       Name       "Constant"
  1268.       Position       [120, 230, 140, 250]
  1269.       Value       "ini"
  1270.     }
  1271.     Block {
  1272.       BlockType       Constant
  1273.       Name       "Constant1"
  1274.       Position       [15, 194, 100, 216]
  1275.       Value       "n*ts(1)+ts(2)"
  1276.     }
  1277.     Block {
  1278.       BlockType       DigitalClock
  1279.       Name       "Digital Clock"
  1280.       Position       [60, 140, 95, 170]
  1281.       SampleTime       "ts"
  1282.     }
  1283.     Block {
  1284.       BlockType       DiscreteFilter
  1285.       Name       "K-stepndelay"
  1286.       Position       [60, 70, 185, 110]
  1287.       Numerator       "[zeros(1,n), 1]"
  1288.       Denominator       "1"
  1289.       SampleTime       "ts"
  1290.     }
  1291.     Block {
  1292.       BlockType       RelationalOperator
  1293.       Name       "RelationalnOperator"
  1294.       Position       [150, 168, 180, 192]
  1295.     }
  1296.     Block {
  1297.       BlockType       Switch
  1298.       Name       "Switch"
  1299.       Position       [270, 114, 295, 146]
  1300.       Threshold       ".1"
  1301.     }
  1302.     Block {
  1303.       BlockType       Outport
  1304.       Name       "out_1"
  1305.       Position       [325, 120, 345, 140]
  1306.     }
  1307.     Line {
  1308.       SrcBlock       "Switch"
  1309.       SrcPort       1
  1310.       DstBlock       "out_1"
  1311.       DstPort       1
  1312.     }
  1313.     Line {
  1314.       SrcBlock       "in_1"
  1315.       SrcPort       1
  1316.       DstBlock       "K-stepndelay"
  1317.       DstPort       1
  1318.     }
  1319.     Line {
  1320.       SrcBlock       "K-stepndelay"
  1321.       SrcPort       1
  1322.       Points       [5, 0; 0, 30]
  1323.       DstBlock       "Switch"
  1324.       DstPort       1
  1325.     }
  1326.     Line {
  1327.       SrcBlock       "Constant"
  1328.       SrcPort       1
  1329.       Points       [95, 0; 0, -100]
  1330.       DstBlock       "Switch"
  1331.       DstPort       3
  1332.     }
  1333.     Line {
  1334.       SrcBlock       "Digital Clock"
  1335.       SrcPort       1
  1336.       Points       [15, 0; 0, 20]
  1337.       DstBlock       "RelationalnOperator"
  1338.       DstPort       1
  1339.     }
  1340.     Line {
  1341.       SrcBlock       "Constant1"
  1342.       SrcPort       1
  1343.       Points       [10, 0; 0, -20]
  1344.       DstBlock       "RelationalnOperator"
  1345.       DstPort       2
  1346.     }
  1347.     Line {
  1348.       SrcBlock       "RelationalnOperator"
  1349.       SrcPort       1
  1350.       Points       [35, 0; 0, -50]
  1351.       DstBlock       "Switch"
  1352.       DstPort       2
  1353.     }
  1354.   }
  1355. }
  1356. Block {
  1357.   BlockType   SubSystem
  1358.   Name   "hold"
  1359.   Ports   [3, 2]
  1360.   Position   [260, 138, 340, 182]
  1361.   ShowPortLabels   off
  1362.   TreatAsAtomicUnit   off
  1363.   MaskType   "Triggered buffer down"
  1364.   MaskDescription   "Rising edge of the 2nd port triggers 1st po"
  1365. "rt vector signal in. Rising edge of the 3rd port triggers 1st outport signal "
  1366. "out."
  1367.   MaskHelp   "The block refreshes its registers with the "
  1368. "vector input from the 1st inport at the rising edge of the 2nd inport pulse. "
  1369. "The 1st outport outputs the elements of the registers starting with the given"
  1370. " initial index. The rising edge of the 3rd inport pulse triggers the 1st outp"
  1371. "ut to output the register value with the index increasing the increment value"
  1372. ". The second outport outputs a spike pulse when the internal register is refr"
  1373. "eshed."
  1374.   MaskPromptString   "Input signal vector size:|Initial index (in"
  1375. "teger vector):|Increment for each index (integer vector):|Trigger threshold:|"
  1376. "When index exceed register size, 1: cyclic out, 0: zero out:"
  1377.   MaskStyleString   "edit,edit,edit,edit,edit"
  1378.   MaskTunableValueString  "on,on,on,on,on"
  1379.   MaskCallbackString   "||||"
  1380.   MaskEnableString   "on,on,on,on,on"
  1381.   MaskVisibilityString   "on,on,on,on,on"
  1382.   MaskToolTipString   "on,on,on,on,on"
  1383.   MaskVarAliasString   ",,,,"
  1384.   MaskInitialization   "in_size=@1;ini_idx=@2;idx_inc=@3;thrshld=@4"
  1385. ";cycl_flag=@5;out_size=length(ini_idx);[v,w]=trigicon(0,25,get_param(gcb,'ori"
  1386. "entation'),2);[x,y]=trigicon(1,75,get_param(gcb,'orientation'),2);[u,z]=trigi"
  1387. "con(0,50,get_param(gcb,'orientation'),2);"
  1388.   MaskDisplay   "plot(0,0,100,100,x,y,v,w,u,z);disp('Buffer "
  1389. "dwn')"
  1390.   MaskIconFrame   on
  1391.   MaskIconOpaque   on
  1392.   MaskIconRotate   "none"
  1393.   MaskIconUnits   "autoscale"
  1394.   MaskValueString   "2|[1 0]|[0 0]|1|0"
  1395.   System {
  1396.     Name     "hold"
  1397.     Location     [22, 58, 460, 228]
  1398.     Open     off
  1399.     ModelBrowserVisibility  off
  1400.     ModelBrowserWidth     200
  1401.     ScreenColor     "white"
  1402.     PaperOrientation     "landscape"
  1403.     PaperPositionMode     "auto"
  1404.     PaperType     "usletter"
  1405.     PaperUnits     "inches"
  1406.     ZoomFactor     "100"
  1407.     Block {
  1408.       BlockType       Inport
  1409.       Name       "in_1"
  1410.       Position       [15, 55, 35, 75]
  1411.     }
  1412.     Block {
  1413.       BlockType       Inport
  1414.       Name       "in_2"
  1415.       Position       [40, 70, 60, 90]
  1416.       Port       "2"
  1417.     }
  1418.     Block {
  1419.       BlockType       Inport
  1420.       Name       "in_3"
  1421.       Position       [65, 85, 85, 105]
  1422.       Port       "3"
  1423.     }
  1424.     Block {
  1425.       BlockType       Demux
  1426.       Name       "Demux"
  1427.       Ports       [1, 2]
  1428.       Position       [290, 62, 330, 98]
  1429.       Outputs       "[out_size 1]"
  1430.     }
  1431.     Block {
  1432.       BlockType       Mux
  1433.       Name       "Mux"
  1434.       Ports       [3, 1]
  1435.       Position       [110, 59, 140, 101]
  1436.       Inputs       "[in_size 1 1]"
  1437.     }
  1438.     Block {
  1439.       BlockType       "S-Function"
  1440.       Name       "S-function"
  1441.       Ports       [1, 1]
  1442.       Position       [185, 70, 235, 90]
  1443.       FunctionName       "regdown"
  1444.       Parameters       "ini_idx, idx_inc, thrshld, cycl_flag"
  1445.     }
  1446.     Block {
  1447.       BlockType       Outport
  1448.       Name       "out_1"
  1449.       Position       [390, 60, 410, 80]
  1450.     }
  1451.     Block {
  1452.       BlockType       Outport
  1453.       Name       "out_2"
  1454.       Position       [355, 80, 375, 100]
  1455.       Port       "2"
  1456.     }
  1457.     Line {
  1458.       SrcBlock       "S-function"
  1459.       SrcPort       1
  1460.       DstBlock       "Demux"
  1461.       DstPort       1
  1462.     }
  1463.     Line {
  1464.       SrcBlock       "Mux"
  1465.       SrcPort       1
  1466.       DstBlock       "S-function"
  1467.       DstPort       1
  1468.     }
  1469.     Line {
  1470.       SrcBlock       "in_1"
  1471.       SrcPort       1
  1472.       DstBlock       "Mux"
  1473.       DstPort       1
  1474.     }
  1475.     Line {
  1476.       SrcBlock       "Demux"
  1477.       SrcPort       1
  1478.       DstBlock       "out_1"
  1479.       DstPort       1
  1480.     }
  1481.     Line {
  1482.       SrcBlock       "in_2"
  1483.       SrcPort       1
  1484.       DstBlock       "Mux"
  1485.       DstPort       2
  1486.     }
  1487.     Line {
  1488.       SrcBlock       "Demux"
  1489.       SrcPort       2
  1490.       DstBlock       "out_2"
  1491.       DstPort       1
  1492.     }
  1493.     Line {
  1494.       SrcBlock       "in_3"
  1495.       SrcPort       1
  1496.       DstBlock       "Mux"
  1497.       DstPort       3
  1498.     }
  1499.   }
  1500. }
  1501. Block {
  1502.   BlockType   Outport
  1503.   Name   "binary"
  1504.   Position   [480, 60, 500, 80]
  1505. }
  1506. Block {
  1507.   BlockType   Outport
  1508.   Name   "Symbol"
  1509.   Position   [480, 140, 500, 160]
  1510.   Port   "2"
  1511. }
  1512. Line {
  1513.   SrcBlock   "Bits"
  1514.   SrcPort   1
  1515.   Points   [15, 0]
  1516.   Branch {
  1517.     DstBlock     "delay"
  1518.     DstPort     1
  1519.   }
  1520.   Branch {
  1521.     DstBlock     "Shift register"
  1522.     DstPort     1
  1523.   }
  1524. }
  1525. Line {
  1526.   SrcBlock   "Shift register"
  1527.   SrcPort   2
  1528.   Points   [20, 0]
  1529.   Branch {
  1530.     Points     [0, -5]
  1531.     DstBlock     "hold"
  1532.     DstPort     2
  1533.   }
  1534.   Branch {
  1535.     Points     [0, 10]
  1536.     DstBlock     "hold"
  1537.     DstPort     3
  1538.   }
  1539. }
  1540. Line {
  1541.   SrcBlock   "clock"
  1542.   SrcPort   1
  1543.   DstBlock   "Shift register"
  1544.   DstPort   2
  1545. }
  1546. Line {
  1547.   SrcBlock   "hold"
  1548.   SrcPort   1
  1549.   DstBlock   "D/A "
  1550.   DstPort   1
  1551. }
  1552. Line {
  1553.   SrcBlock   "Shift register"
  1554.   SrcPort   1
  1555.   DstBlock   "hold"
  1556.   DstPort   1
  1557. }
  1558. Line {
  1559.   SrcBlock   "delay"
  1560.   SrcPort   1
  1561.   DstBlock   "binary"
  1562.   DstPort   1
  1563. }
  1564. Line {
  1565.   SrcBlock   "D/A "
  1566.   SrcPort   1
  1567.   DstBlock   "Symbol"
  1568.   DstPort   1
  1569. }
  1570. Line {
  1571.   SrcBlock   "hold"
  1572.   SrcPort   2
  1573.   Points   [10, 0; 0, 35]
  1574.   DstBlock   "Terminator"
  1575.   DstPort   1
  1576. }
  1577. Annotation {
  1578.   Name   "two bits are combined to a 4-ary symbol.nM"
  1579. "SB first"
  1580.   Position   [267, 7]
  1581.   VerticalAlignment   "top"
  1582. }
  1583.       }
  1584.     }
  1585.     Block {
  1586.       BlockType       Reference
  1587.       Name       "Channel"
  1588.       Ports       [1, 1]
  1589.       Position       [475, 114, 555, 156]
  1590.       SourceBlock       "librnew/Channel"
  1591.       SourceType       "AWGN channel, fixed parameter"
  1592.       m       "0"
  1593.       variance       "0.001"
  1594.       s       "12345"
  1595.     }
  1596.     Block {
  1597.       BlockType       Clock
  1598.       Name       "Clock"
  1599.       Position       [275, 225, 295, 245]
  1600.       Decimation       "10"
  1601.     }
  1602.     Block {
  1603.       BlockType       Clock
  1604.       Name       "Clock1"
  1605.       Position       [495, 20, 515, 40]
  1606.       Decimation       "10"
  1607.     }
  1608.     Block {
  1609.       BlockType       SubSystem
  1610.       Name       "Error rate"
  1611.       Ports       [2]
  1612.       Position       [910, 225, 990, 265]
  1613.       Orientation       "down"
  1614.       CopyFcn       "sbiterr([],[],[],'CopyBlock')"
  1615.       DeleteFcn       "sbiterr([],[],[],'DeleteBlock')"
  1616.       LoadFcn       "sbiterr([],[],[],'LoadBlock')"
  1617.       StartFcn       "sbiterr([],[],[],'Start')"
  1618.       StopFcn       "sbiterr([],[],[],'Stop')"
  1619.       NameChangeFcn       "sbiterr([],[],[],'NameChange')"
  1620.       ShowPortLabels       off
  1621.       TreatAsAtomicUnit       off
  1622.       MaskType       "Symbol/bit error counter"
  1623.       MaskDescription       "Use the input data from the 1st port as the ref"
  1624. "erence signal to detect the number of errors and error rate of the 2nd signal"
  1625. "."
  1626.       MaskHelp       "The signal from the first port must be a scalar"
  1627. ". The second input port can be a vector with a delay to the first port signal"
  1628. ". The comparison happens only at the sampling point."
  1629.       MaskPromptString       "Bit per symbol:|Number of digits on display:|De"
  1630. "lay between 1st port and 2nd port:|Sample time (sec):"
  1631.       MaskStyleString       "edit,edit,edit,edit"
  1632.       MaskTunableValueString  "on,on,on,on"
  1633.       MaskCallbackString      "|||"
  1634.       MaskEnableString       "on,on,on,on"
  1635.       MaskVisibilityString    "on,on,on,on"
  1636.       MaskToolTipString       "on,on,on,on"
  1637.       MaskVarAliasString      ",,,"
  1638.       MaskInitialization      "K=@1;num_lin=@2;TDelay=@3;Sample=@4;"
  1639.       MaskDisplay       "disp('Error\nmeter')"
  1640.       MaskIconFrame       on
  1641.       MaskIconOpaque       on
  1642.       MaskIconRotate       "none"
  1643.       MaskIconUnits       "autoscale"
  1644.       MaskValueString       "2|10|12|1"
  1645.       System {
  1646. Name "Error rate"
  1647. Location [255, 368, 509, 510]
  1648. Open off
  1649. ModelBrowserVisibility off
  1650. ModelBrowserWidth 200
  1651. ScreenColor "white"
  1652. PaperOrientation "landscape"
  1653. PaperPositionMode "auto"
  1654. PaperType "usletter"
  1655. PaperUnits "inches"
  1656. ZoomFactor "100"
  1657. Block {
  1658.   BlockType   Inport
  1659.   Name   "in_1"
  1660.   Position   [15, 45, 35, 65]
  1661. }
  1662. Block {
  1663.   BlockType   Inport
  1664.   Name   "in_2"
  1665.   Position   [15, 60, 35, 80]
  1666.   Port   "2"
  1667. }
  1668. Block {
  1669.   BlockType   Mux
  1670.   Name   "Mux"
  1671.   Ports   [2, 1]
  1672.   Position   [65, 46, 100, 79]
  1673.   Inputs   "2"
  1674. }
  1675. Block {
  1676.   BlockType   "S-Function"
  1677.   Name   "S-function"
  1678.   Ports   [1]
  1679.   Position   [130, 52, 195, 78]
  1680.   FunctionName   "sbiterr"
  1681.   Parameters   "num_lin, K, TDelay, Sample"
  1682. }
  1683. Line {
  1684.   SrcBlock   "in_2"
  1685.   SrcPort   1
  1686.   DstBlock   "Mux"
  1687.   DstPort   2
  1688. }
  1689. Line {
  1690.   SrcBlock   "in_1"
  1691.   SrcPort   1
  1692.   DstBlock   "Mux"
  1693.   DstPort   1
  1694. }
  1695. Line {
  1696.   SrcBlock   "Mux"
  1697.   SrcPort   1
  1698.   DstBlock   "S-function"
  1699.   DstPort   1
  1700. }
  1701.       }
  1702.     }
  1703.     Block {
  1704.       BlockType       Fcn
  1705.       Name       "Fcn"
  1706.       Position       [315, 222, 385, 248]
  1707.       ShowName       off
  1708.       Expr       "cos(4*pi*u)"
  1709.     }
  1710.     Block {
  1711.       BlockType       Fcn
  1712.       Name       "Fcn1"
  1713.       Position       [535, 17, 630, 43]
  1714.       ShowName       off
  1715.       Expr       "2*cos(4*pi*u)"
  1716.     }
  1717.     Block {
  1718.       BlockType       Gain
  1719.       Name       "Gain"
  1720.       Position       [795, 117, 820, 143]
  1721.       Gain       "1/4"
  1722.     }
  1723.     Block {
  1724.       BlockType       Gain
  1725.       Name       "Gain1"
  1726.       Position       [310, 112, 335, 138]
  1727.       ShowName       off
  1728.       Gain       "4"
  1729.     }
  1730.     Block {
  1731.       BlockType       Product
  1732.       Name       "Product"
  1733.       Ports       [2, 1]
  1734.       Position       [405, 117, 430, 148]
  1735.       ShowName       off
  1736.     }
  1737.     Block {
  1738.       BlockType       Product
  1739.       Name       "Product1"
  1740.       Ports       [2, 1]
  1741.       Position       [660, 112, 685, 143]
  1742.       ShowName       off
  1743.     }
  1744.     Block {
  1745.       BlockType       SubSystem
  1746.       Name       "Rolloff"
  1747.       Ports       []
  1748.       Position       [205, 76, 312, 96]
  1749.       BackgroundColor       "lightBlue"
  1750.       ShowName       off
  1751.       OpenFcn       "setrobin"
  1752.       FontSize       12
  1753.       FontAngle       "italic"
  1754.       ShowPortLabels       off
  1755.       TreatAsAtomicUnit       off
  1756.       MaskType       "rolloff"
  1757.       MaskDisplay       "disp('Rolloff-Factor')"
  1758.       MaskIconFrame       on
  1759.       MaskIconOpaque       on
  1760.       MaskIconRotate       "none"
  1761.       MaskIconUnits       "autoscale"
  1762.       System {
  1763. Name "Rolloff"
  1764. Location [136, 230, 381, 439]
  1765. Open off
  1766. ModelBrowserVisibility off
  1767. ModelBrowserWidth 200
  1768. ScreenColor "cyan"
  1769. PaperOrientation "landscape"
  1770. PaperPositionMode "auto"
  1771. PaperType "A4"
  1772. PaperUnits "centimeters"
  1773. ZoomFactor "100"
  1774.       }
  1775.     }
  1776.     Block {
  1777.       BlockType       SubSystem
  1778.       Name       "Root-RCnreceive filter"
  1779.       Ports       [1, 1]
  1780.       Position       [700, 108, 780, 152]
  1781.       ShowPortLabels       off
  1782.       TreatAsAtomicUnit       off
  1783.       MaskType       "R-C filter"
  1784.       MaskDescription       "Design a raised cosine filter and use it to fil"
  1785. "ter the input signal."
  1786.       MaskHelp       "This block designs a raised cosine filter using"
  1787. " the specified parameter. The filter is used to filter the input signal. You "
  1788. "can optionally use the sinc filter in the filtering computation."
  1789.       MaskPromptString       "Symbol interval (sec):|Computation sampling tim"
  1790. "e (sec):|Filter rolloff factor:|Delay step (integer to multiply symbol interv"
  1791. "al):|Filter type (FIR or IIR) / (Normal or Sqrt):|With or without sinc filter"
  1792. " (1 or 0, suggest 1):"
  1793.       MaskStyleString       "edit,edit,edit,edit,edit,edit"
  1794.       MaskTunableValueString  "on,on,on,on,on,on"
  1795.       MaskCallbackString      "|||||"
  1796.       MaskEnableString       "on,on,on,on,on,on"
  1797.       MaskVisibilityString    "on,on,on,on,on,on"
  1798.       MaskToolTipString       "on,on,on,on,on,on"
  1799.       MaskVarAliasString      ",,,,,"
  1800.       MaskInitialization      "td=@1;if length(td)>1,off=td(2);td=td(1);else,o"
  1801. "ff=0;end;ts=@2;R=@3;delay=@4;fil=@5;[num,den]=rcosine(1/td(1),1/ts(1),fil,R,d"
  1802. "elay);x=@6/2;"
  1803.       MaskDisplay       "disp('R-C\nfilter')"
  1804.       MaskIconFrame       on
  1805.       MaskIconOpaque       on
  1806.       MaskIconRotate       "none"
  1807.       MaskIconUnits       "autoscale"
  1808.       MaskValueString       "1|.05|.5|6|'FIR/Sqrt'|0"
  1809.       System {
  1810. Name "Root-RCnreceive filter"
  1811. Location [131, 545, 589, 761]
  1812. Open off
  1813. ModelBrowserVisibility off
  1814. ModelBrowserWidth 200
  1815. ScreenColor "white"
  1816. PaperOrientation "landscape"
  1817. PaperPositionMode "auto"
  1818. PaperType "usletter"
  1819. PaperUnits "inches"
  1820. ZoomFactor "100"
  1821. Block {
  1822.   BlockType   Inport
  1823.   Name   "in_1"
  1824.   Position   [35, 30, 55, 50]
  1825. }
  1826. Block {
  1827.   BlockType   DiscreteFilter
  1828.   Name   "Filter"
  1829.   Position   [255, 31, 310, 69]
  1830.   Numerator   "num"
  1831.   Denominator   "den"
  1832.   SampleTime   "ts"
  1833. }
  1834. Block {
  1835.   BlockType   SubSystem
  1836.   Name   "Memory Impulse"
  1837.   Ports   [2, 1]
  1838.   Position   [155, 30, 225, 70]
  1839.   ShowPortLabels   off
  1840.   TreatAsAtomicUnit   off
  1841.   MaskType   "Impulse"
  1842.   MaskDescription   "1/sinc filter:"
  1843.   MaskHelp   "When the threshold is greater than zero, th"
  1844. "is block outputs an impulse signal, which begins at the raising edge of the s"
  1845. "econd input and lasts the holding time. The impulse holds a constant amplitud"
  1846. "e, which equals the amplitude of the first input at the begining of the impul"
  1847. "se. A clock raising edge will trigger next impulse. When the threshold is les"
  1848. "s or equal to zero, this block faithfully outputs the first input."
  1849.   MaskPromptString   "Holding time:|Threshold for clock pulse: "
  1850.   MaskStyleString   "edit,edit"
  1851.   MaskTunableValueString  "on,on"
  1852.   MaskCallbackString   "|"
  1853.   MaskEnableString   "on,on"
  1854.   MaskVisibilityString   "on,on"
  1855.   MaskToolTipString   "on,on"
  1856.   MaskVarAliasString   ","
  1857.   MaskInitialization   "ts=@1;thr=@2;x=thr>0;"
  1858.   MaskDisplay   "disp('1/sinc')"
  1859.   MaskIconFrame   on
  1860.   MaskIconOpaque   on
  1861.   MaskIconRotate   "none"
  1862.   MaskIconUnits   "autoscale"
  1863.   MaskValueString   "ts|x"
  1864.   System {
  1865.     Name     "Memory Impulse"
  1866.     Location     [541, 520, 939, 745]
  1867.     Open     off
  1868.     ModelBrowserVisibility  off
  1869.     ModelBrowserWidth     200
  1870.     ScreenColor     "white"
  1871.     PaperOrientation     "landscape"
  1872.     PaperPositionMode     "auto"
  1873.     PaperType     "usletter"
  1874.     PaperUnits     "inches"
  1875.     ZoomFactor     "100"
  1876.     Block {
  1877.       BlockType       Inport
  1878.       Name       "in_1"
  1879.       Position       [35, 185, 55, 205]
  1880.     }
  1881.     Block {
  1882.       BlockType       Inport
  1883.       Name       "in_2"
  1884.       Position       [25, 30, 45, 50]
  1885.       Port       "2"
  1886.     }
  1887.     Block {
  1888.       BlockType       Constant
  1889.       Name       "Constant"
  1890.       Position       [210, 155, 230, 175]
  1891.       Value       "x"
  1892.     }
  1893.     Block {
  1894.       BlockType       Product
  1895.       Name       "Product"
  1896.       Ports       [2, 1]
  1897.       Position       [155, 90, 180, 110]
  1898.     }
  1899.     Block {
  1900.       BlockType       Switch
  1901.       Name       "Switch"
  1902.       Position       [295, 124, 320, 156]
  1903.       Threshold       ".5"
  1904.     }
  1905.     Block {
  1906.       BlockType       ZeroOrderHold
  1907.       Name       "Zero-OrdernHold"
  1908.       Position       [205, 84, 240, 116]
  1909.       SampleTime       "ts"
  1910.     }
  1911.     Block {
  1912.       BlockType       SubSystem
  1913.       Name       "discretenRising edgendetector"
  1914.       Ports       [1, 1]
  1915.       Position       [65, 26, 120, 54]
  1916.       ShowPortLabels       off
  1917.       TreatAsAtomicUnit       off
  1918.       MaskType       "Edge Detection"
  1919.       MaskDescription       "Rising edge detection:"
  1920.       MaskHelp       "When the input signal rising edge passe"
  1921. "d the given shreshold, this block outputs one, otherwise outputs zero."
  1922.       MaskPromptString       "Threshold:|Sampling time:"
  1923.       MaskStyleString       "edit,edit"
  1924.       MaskTunableValueString  "on,on"
  1925.       MaskCallbackString      "|"
  1926.       MaskEnableString       "on,on"
  1927.       MaskVisibilityString    "on,on"
  1928.       MaskToolTipString       "on,on"
  1929.       MaskVarAliasString      ","
  1930.       MaskInitialization      "thld=@1;ts=@2;"
  1931.       MaskDisplay       "disp('Edge\nDetector')"
  1932.       MaskIconFrame       on
  1933.       MaskIconOpaque       on
  1934.       MaskIconRotate       "none"
  1935.       MaskIconUnits       "autoscale"
  1936.       MaskValueString       "thr|ts"
  1937.       System {
  1938. Name "discretenRising edgendetector"
  1939. Location [419, 521, 808, 713]
  1940. Open off
  1941. ModelBrowserVisibility off
  1942. ModelBrowserWidth 200
  1943. ScreenColor "white"
  1944. PaperOrientation "landscape"
  1945. PaperPositionMode "auto"
  1946. PaperType "usletter"
  1947. PaperUnits "inches"
  1948. ZoomFactor "100"
  1949. Block {
  1950.   BlockType   Inport
  1951.   Name   "in_1"
  1952.   Position   [10, 15, 30, 35]
  1953. }
  1954. Block {
  1955.   BlockType   RelationalOperator
  1956.   Name   "RelationalnOperator"
  1957.   Position   [135, 18, 165, 42]
  1958. }
  1959. Block {
  1960.   BlockType   RelationalOperator
  1961.   Name   "RelationalnOperator1"
  1962.   Position   [200, 88, 230, 112]
  1963. }
  1964. Block {
  1965.   BlockType   RelationalOperator
  1966.   Name   "RelationalnOperator2"
  1967.   Position   [265, 23, 295, 47]
  1968.   Operator   ">"
  1969. }
  1970. Block {
  1971.   BlockType   UnitDelay
  1972.   Name   "Unit Delay"
  1973.   Position   [120, 87, 170, 103]
  1974.   SampleTime   "ts"
  1975. }
  1976. Block {
  1977.   BlockType   Constant
  1978.   Name   "one1"
  1979.   Position   [30, 135, 60, 155]
  1980.   Value   "thld"
  1981. }
  1982. Block {
  1983.   BlockType   Outport
  1984.   Name   "out_1"
  1985.   Position   [340, 25, 360, 45]
  1986. }
  1987. Line {
  1988.   SrcBlock   "in_1"
  1989.   SrcPort   1
  1990.   Points   [10, 0]
  1991.   Branch {
  1992.     DstBlock     "RelationalnOperator"
  1993.     DstPort     1
  1994.   }
  1995.   Branch {
  1996.     Points     [0, 70]
  1997.     DstBlock     "Unit Delay"
  1998.     DstPort     1
  1999.   }
  2000. }
  2001. Line {
  2002.   SrcBlock   "Unit Delay"
  2003.   SrcPort   1
  2004.   DstBlock   "RelationalnOperator1"
  2005.   DstPort   1
  2006. }
  2007. Line {
  2008.   SrcBlock   "one1"
  2009.   SrcPort   1
  2010.   Points   [35, 0]
  2011.   Branch {
  2012.     Points     [0, -110]
  2013.     DstBlock     "RelationalnOperator"
  2014.     DstPort     2
  2015.   }
  2016.   Branch {
  2017.     Points     [80, 0; 0, -40]
  2018.     DstBlock     "RelationalnOperator1"
  2019.     DstPort     2
  2020.   }
  2021. }
  2022. Line {
  2023.   SrcBlock   "RelationalnOperator"
  2024.   SrcPort   1
  2025.   DstBlock   "RelationalnOperator2"
  2026.   DstPort   1
  2027. }
  2028. Line {
  2029.   SrcBlock   "RelationalnOperator1"
  2030.   SrcPort   1
  2031.   Points   [5, 0; 0, -60]
  2032.   DstBlock   "RelationalnOperator2"
  2033.   DstPort   2
  2034. }
  2035. Line {
  2036.   SrcBlock   "RelationalnOperator2"
  2037.   SrcPort   1
  2038.   DstBlock   "out_1"
  2039.   DstPort   1
  2040. }
  2041.       }
  2042.     }
  2043.     Block {
  2044.       BlockType       Outport
  2045.       Name       "out_1"
  2046.       Position       [355, 130, 375, 150]
  2047.     }
  2048.     Line {
  2049.       SrcBlock       "in_2"
  2050.       SrcPort       1
  2051.       DstBlock       "discretenRising edgendetector"
  2052.       DstPort       1
  2053.     }
  2054.     Line {
  2055.       SrcBlock       "discretenRising edgendetector"
  2056.       SrcPort       1
  2057.       Points       [5, 0; 0, 55]
  2058.       DstBlock       "Product"
  2059.       DstPort       1
  2060.     }
  2061.     Line {
  2062.       SrcBlock       "Constant"
  2063.       SrcPort       1
  2064.       Points       [15, 0; 0, -25]
  2065.       DstBlock       "Switch"
  2066.       DstPort       2
  2067.     }
  2068.     Line {
  2069.       SrcBlock       "Switch"
  2070.       SrcPort       1
  2071.       DstBlock       "out_1"
  2072.       DstPort       1
  2073.     }
  2074.     Line {
  2075.       SrcBlock       "in_1"
  2076.       SrcPort       1
  2077.       Points       [35, 0]
  2078.       Branch {
  2079. Points [185, 0]
  2080. DstBlock "Switch"
  2081. DstPort 3
  2082.       }
  2083.       Branch {
  2084. Points [0, -90]
  2085. DstBlock "Product"
  2086. DstPort 2
  2087.       }
  2088.     }
  2089.     Line {
  2090.       SrcBlock       "Product"
  2091.       SrcPort       1
  2092.       DstBlock       "Zero-OrdernHold"
  2093.       DstPort       1
  2094.     }
  2095.     Line {
  2096.       SrcBlock       "Zero-OrdernHold"
  2097.       SrcPort       1
  2098.       Points       [15, 0; 0, 30]
  2099.       DstBlock       "Switch"
  2100.       DstPort       1
  2101.     }
  2102.   }
  2103. }
  2104. Block {
  2105.   BlockType   SubSystem
  2106.   Name   "Pulses deividensame sample time1"
  2107.   Ports   [0, 1]
  2108.   Position   [35, 71, 95, 109]
  2109.   ShowPortLabels   off
  2110.   TreatAsAtomicUnit   off
  2111.   MaskType   "Pulse generator"
  2112.   MaskDescription   "Vector pulses with sample rate of each puls"
  2113. "e as Sample_time ./Divider. "
  2114.   MaskHelp   "This block generator a vector pulses. The o"
  2115. "utput length is the same as the vector defined in "Divider". The ith elemen"
  2116. "t of the output has the sample time Sample_time/Divider(i). All elements in "
  2117. ""Divider" must be integers."
  2118.   MaskPromptString   "Sample time (scalar, sec):|Divider (integer"
  2119. " vector):|Offset (have same dimension as Divider:"
  2120.   MaskStyleString   "edit,edit,edit"
  2121.   MaskTunableValueString  "on,on,on"
  2122.   MaskCallbackString   "||"
  2123.   MaskEnableString   "on,on,on"
  2124.   MaskVisibilityString   "on,on,on"
  2125.   MaskToolTipString   "on,on,on"
  2126.   MaskVarAliasString   ",,"
  2127.   MaskInitialization   "samp_time=@1;out_divid=@2;offset=@3;"
  2128.   MaskDisplay   "disp('Vector\nPulse')"
  2129.   MaskIconFrame   on
  2130.   MaskIconOpaque   on
  2131.   MaskIconRotate   "none"
  2132.   MaskIconUnits   "autoscale"
  2133.   MaskValueString   "td|1|off"
  2134.   System {
  2135.     Name     "Pulses deividensame sample time1"
  2136.     Location     [55, 192, 283, 286]
  2137.     Open     off
  2138.     ModelBrowserVisibility  off
  2139.     ModelBrowserWidth     200
  2140.     ScreenColor     "white"
  2141.     PaperOrientation     "landscape"
  2142.     PaperPositionMode     "auto"
  2143.     PaperType     "usletter"
  2144.     PaperUnits     "inches"
  2145.     ZoomFactor     "100"
  2146.     Block {
  2147.       BlockType       "S-Function"
  2148.       Name       "S-function1"
  2149.       Ports       [0, 1]
  2150.       Position       [40, 31, 105, 59]
  2151.       FunctionName       "homopuls"
  2152.       Parameters       "samp_time, out_divid, offset"
  2153.     }
  2154.     Block {
  2155.       BlockType       Outport
  2156.       Name       "Outport"
  2157.       Position       [160, 35, 180, 55]
  2158.     }
  2159.     Line {
  2160.       SrcBlock       "S-function1"
  2161.       SrcPort       1
  2162.       DstBlock       "Outport"
  2163.       DstPort       1
  2164.     }
  2165.   }
  2166. }
  2167. Block {
  2168.   BlockType   Outport
  2169.   Name   "out_1"
  2170.   Position   [330, 40, 350, 60]
  2171. }
  2172. Line {
  2173.   SrcBlock   "Filter"
  2174.   SrcPort   1
  2175.   DstBlock   "out_1"
  2176.   DstPort   1
  2177. }
  2178. Line {
  2179.   SrcBlock   "in_1"
  2180.   SrcPort   1
  2181.   DstBlock   "Memory Impulse"
  2182.   DstPort   1
  2183. }
  2184. Line {
  2185.   SrcBlock   "Memory Impulse"
  2186.   SrcPort   1
  2187.   DstBlock   "Filter"
  2188.   DstPort   1
  2189. }
  2190. Line {
  2191.   SrcBlock   "Pulses deividensame sample time1"
  2192.   SrcPort   1
  2193.   Points   [15, 0; 0, -30]
  2194.   DstBlock   "Memory Impulse"
  2195.   DstPort   2
  2196. }
  2197.       }
  2198.     }
  2199.     Block {
  2200.       BlockType       SubSystem
  2201.       Name       "Root-RCntransmit filter"
  2202.       Ports       [1, 1]
  2203.       Position       [215, 103, 295, 147]
  2204.       ShowPortLabels       off
  2205.       TreatAsAtomicUnit       off
  2206.       MaskType       "R-C filter"
  2207.       MaskDescription       "Design a raised cosine filter and use it to fil"
  2208. "ter the input signal."
  2209.       MaskHelp       "This block designs a raised cosine filter using"
  2210. " the specified parameter. The filter is used to filter the input signal. You "
  2211. "can optionally use the sinc filter in the filtering computation."
  2212.       MaskPromptString       "Symbol interval (sec):|Computation sampling tim"
  2213. "e (sec):|Filter rolloff factor:|Delay step (integer to multiply symbol interv"
  2214. "al):|Filter type (FIR or IIR) / (Normal or Sqrt):|With or without sinc filter"
  2215. " (1 or 0, suggest 1):"
  2216.       MaskStyleString       "edit,edit,edit,edit,edit,edit"
  2217.       MaskTunableValueString  "on,on,on,on,on,on"
  2218.       MaskCallbackString      "|||||"
  2219.       MaskEnableString       "on,on,on,on,on,on"
  2220.       MaskVisibilityString    "on,on,on,on,on,on"
  2221.       MaskToolTipString       "on,on,on,on,on,on"
  2222.       MaskVarAliasString      ",,,,,"
  2223.       MaskInitialization      "td=@1;if length(td)>1,off=td(2);td=td(1);else,o"
  2224. "ff=0;end;ts=@2;R=@3;delay=@4;fil=@5;[num,den]=rcosine(1/td(1),1/ts(1),fil,R,d"
  2225. "elay);x=@6/2;"
  2226.       MaskDisplay       "disp('R-C\nfilter')"
  2227.       MaskIconFrame       on
  2228.       MaskIconOpaque       on
  2229.       MaskIconRotate       "none"
  2230.       MaskIconUnits       "autoscale"
  2231.       MaskValueString       "1|.05|.5|6|'FIR/Sqrt'|1"
  2232.       System {
  2233. Name "Root-RCntransmit filter"
  2234. Location [131, 545, 589, 761]
  2235. Open off
  2236. ModelBrowserVisibility off
  2237. ModelBrowserWidth 200
  2238. ScreenColor "white"
  2239. PaperOrientation "landscape"
  2240. PaperPositionMode "auto"
  2241. PaperType "usletter"
  2242. PaperUnits "inches"
  2243. ZoomFactor "100"
  2244. Block {
  2245.   BlockType   Inport
  2246.   Name   "in_1"
  2247.   Position   [35, 30, 55, 50]
  2248. }
  2249. Block {
  2250.   BlockType   DiscreteFilter
  2251.   Name   "Filter"
  2252.   Position   [255, 31, 310, 69]
  2253.   Numerator   "num"
  2254.   Denominator   "den"
  2255.   SampleTime   "ts"
  2256. }
  2257. Block {
  2258.   BlockType   SubSystem
  2259.   Name   "Memory Impulse"
  2260.   Ports   [2, 1]
  2261.   Position   [155, 30, 225, 70]
  2262.   ShowPortLabels   off
  2263.   TreatAsAtomicUnit   off
  2264.   MaskType   "Impulse"
  2265.   MaskDescription   "1/sinc filter:"
  2266.   MaskHelp   "When the threshold is greater than zero, th"
  2267. "is block outputs an impulse signal, which begins at the raising edge of the s"
  2268. "econd input and lasts the holding time. The impulse holds a constant amplitud"
  2269. "e, which equals the amplitude of the first input at the begining of the impul"
  2270. "se. A clock raising edge will trigger next impulse. When the threshold is les"
  2271. "s or equal to zero, this block faithfully outputs the first input."
  2272.   MaskPromptString   "Holding time:|Threshold for clock pulse: "
  2273.   MaskStyleString   "edit,edit"
  2274.   MaskTunableValueString  "on,on"
  2275.   MaskCallbackString   "|"
  2276.   MaskEnableString   "on,on"
  2277.   MaskVisibilityString   "on,on"
  2278.   MaskToolTipString   "on,on"
  2279.   MaskVarAliasString   ","
  2280.   MaskInitialization   "ts=@1;thr=@2;x=thr>0;"
  2281.   MaskDisplay   "disp('1/sinc')"
  2282.   MaskIconFrame   on
  2283.   MaskIconOpaque   on
  2284.   MaskIconRotate   "none"
  2285.   MaskIconUnits   "autoscale"
  2286.   MaskValueString   "ts|x"
  2287.   System {
  2288.     Name     "Memory Impulse"
  2289.     Location     [541, 520, 939, 745]
  2290.     Open     off
  2291.     ModelBrowserVisibility  off
  2292.     ModelBrowserWidth     200
  2293.     ScreenColor     "white"
  2294.     PaperOrientation     "landscape"
  2295.     PaperPositionMode     "auto"
  2296.     PaperType     "usletter"
  2297.     PaperUnits     "inches"
  2298.     ZoomFactor     "100"
  2299.     Block {
  2300.       BlockType       Inport
  2301.       Name       "in_1"
  2302.       Position       [35, 185, 55, 205]
  2303.     }
  2304.     Block {
  2305.       BlockType       Inport
  2306.       Name       "in_2"
  2307.       Position       [25, 30, 45, 50]
  2308.       Port       "2"
  2309.     }
  2310.     Block {
  2311.       BlockType       Constant
  2312.       Name       "Constant"
  2313.       Position       [210, 155, 230, 175]
  2314.       Value       "x"
  2315.     }
  2316.     Block {
  2317.       BlockType       Product
  2318.       Name       "Product"
  2319.       Ports       [2, 1]
  2320.       Position       [155, 90, 180, 110]
  2321.     }
  2322.     Block {
  2323.       BlockType       Switch
  2324.       Name       "Switch"
  2325.       Position       [295, 124, 320, 156]
  2326.       Threshold       ".5"
  2327.     }
  2328.     Block {
  2329.       BlockType       ZeroOrderHold
  2330.       Name       "Zero-OrdernHold"
  2331.       Position       [205, 84, 240, 116]
  2332.       SampleTime       "ts"
  2333.     }
  2334.     Block {
  2335.       BlockType       SubSystem
  2336.       Name       "discretenRising edgendetector"
  2337.       Ports       [1, 1]
  2338.       Position       [65, 26, 120, 54]
  2339.       ShowPortLabels       off
  2340.       TreatAsAtomicUnit       off
  2341.       MaskType       "Edge Detection"
  2342.       MaskDescription       "Rising edge detection:"
  2343.       MaskHelp       "When the input signal rising edge passe"
  2344. "d the given shreshold, this block outputs one, otherwise outputs zero."
  2345.       MaskPromptString       "Threshold:|Sampling time:"
  2346.       MaskStyleString       "edit,edit"
  2347.       MaskTunableValueString  "on,on"
  2348.       MaskCallbackString      "|"
  2349.       MaskEnableString       "on,on"
  2350.       MaskVisibilityString    "on,on"
  2351.       MaskToolTipString       "on,on"
  2352.       MaskVarAliasString      ","
  2353.       MaskInitialization      "thld=@1;ts=@2;"
  2354.       MaskDisplay       "disp('Edge\nDetector')"
  2355.       MaskIconFrame       on
  2356.       MaskIconOpaque       on
  2357.       MaskIconRotate       "none"
  2358.       MaskIconUnits       "autoscale"
  2359.       MaskValueString       "thr|ts"
  2360.       System {
  2361. Name "discretenRising edgendetector"
  2362. Location [419, 521, 808, 713]
  2363. Open off
  2364. ModelBrowserVisibility off
  2365. ModelBrowserWidth 200
  2366. ScreenColor "white"
  2367. PaperOrientation "landscape"
  2368. PaperPositionMode "auto"
  2369. PaperType "usletter"
  2370. PaperUnits "inches"
  2371. ZoomFactor "100"
  2372. Block {
  2373.   BlockType   Inport
  2374.   Name   "in_1"
  2375.   Position   [10, 15, 30, 35]
  2376. }
  2377. Block {
  2378.   BlockType   RelationalOperator
  2379.   Name   "RelationalnOperator"
  2380.   Position   [135, 18, 165, 42]
  2381. }
  2382. Block {
  2383.   BlockType   RelationalOperator
  2384.   Name   "RelationalnOperator1"
  2385.   Position   [200, 88, 230, 112]
  2386. }
  2387. Block {
  2388.   BlockType   RelationalOperator
  2389.   Name   "RelationalnOperator2"
  2390.   Position   [265, 23, 295, 47]
  2391.   Operator   ">"
  2392. }
  2393. Block {
  2394.   BlockType   UnitDelay
  2395.   Name   "Unit Delay"
  2396.   Position   [120, 87, 170, 103]
  2397.   SampleTime   "ts"
  2398. }
  2399. Block {
  2400.   BlockType   Constant
  2401.   Name   "one1"
  2402.   Position   [30, 135, 60, 155]
  2403.   Value   "thld"
  2404. }
  2405. Block {
  2406.   BlockType   Outport
  2407.   Name   "out_1"
  2408.   Position   [340, 25, 360, 45]
  2409. }
  2410. Line {
  2411.   SrcBlock   "in_1"
  2412.   SrcPort   1
  2413.   Points   [10, 0]
  2414.   Branch {
  2415.     DstBlock     "RelationalnOperator"
  2416.     DstPort     1
  2417.   }
  2418.   Branch {
  2419.     Points     [0, 70]
  2420.     DstBlock     "Unit Delay"
  2421.     DstPort     1
  2422.   }
  2423. }
  2424. Line {
  2425.   SrcBlock   "Unit Delay"
  2426.   SrcPort   1
  2427.   DstBlock   "RelationalnOperator1"
  2428.   DstPort   1
  2429. }
  2430. Line {
  2431.   SrcBlock   "one1"
  2432.   SrcPort   1
  2433.   Points   [35, 0]
  2434.   Branch {
  2435.     Points     [0, -110]
  2436.     DstBlock     "RelationalnOperator"
  2437.     DstPort     2
  2438.   }
  2439.   Branch {
  2440.     Points     [80, 0; 0, -40]
  2441.     DstBlock     "RelationalnOperator1"
  2442.     DstPort     2
  2443.   }
  2444. }
  2445. Line {
  2446.   SrcBlock   "RelationalnOperator"
  2447.   SrcPort   1
  2448.   DstBlock   "RelationalnOperator2"
  2449.   DstPort   1
  2450. }
  2451. Line {
  2452.   SrcBlock   "RelationalnOperator1"
  2453.   SrcPort   1
  2454.   Points   [5, 0; 0, -60]
  2455.   DstBlock   "RelationalnOperator2"
  2456.   DstPort   2
  2457. }
  2458. Line {
  2459.   SrcBlock   "RelationalnOperator2"
  2460.   SrcPort   1
  2461.   DstBlock   "out_1"
  2462.   DstPort   1
  2463. }
  2464.       }
  2465.     }
  2466.     Block {
  2467.       BlockType       Outport
  2468.       Name       "out_1"
  2469.       Position       [355, 130, 375, 150]
  2470.     }
  2471.     Line {
  2472.       SrcBlock       "in_2"
  2473.       SrcPort       1
  2474.       DstBlock       "discretenRising edgendetector"
  2475.       DstPort       1
  2476.     }
  2477.     Line {
  2478.       SrcBlock       "discretenRising edgendetector"
  2479.       SrcPort       1
  2480.       Points       [5, 0; 0, 55]
  2481.       DstBlock       "Product"
  2482.       DstPort       1
  2483.     }
  2484.     Line {
  2485.       SrcBlock       "Constant"
  2486.       SrcPort       1
  2487.       Points       [15, 0; 0, -25]
  2488.       DstBlock       "Switch"
  2489.       DstPort       2
  2490.     }
  2491.     Line {
  2492.       SrcBlock       "Switch"
  2493.       SrcPort       1
  2494.       DstBlock       "out_1"
  2495.       DstPort       1
  2496.     }
  2497.     Line {
  2498.       SrcBlock       "in_1"
  2499.       SrcPort       1
  2500.       Points       [35, 0]
  2501.       Branch {
  2502. Points [185, 0]
  2503. DstBlock "Switch"
  2504. DstPort 3
  2505.       }
  2506.       Branch {
  2507. Points [0, -90]
  2508. DstBlock "Product"
  2509. DstPort 2
  2510.       }
  2511.     }
  2512.     Line {
  2513.       SrcBlock       "Product"
  2514.       SrcPort       1
  2515.       DstBlock       "Zero-OrdernHold"
  2516.       DstPort       1
  2517.     }
  2518.     Line {
  2519.       SrcBlock       "Zero-OrdernHold"
  2520.       SrcPort       1
  2521.       Points       [15, 0; 0, 30]
  2522.       DstBlock       "Switch"
  2523.       DstPort       1
  2524.     }
  2525.   }
  2526. }
  2527. Block {
  2528.   BlockType   SubSystem
  2529.   Name   "Pulses deividensame sample time1"
  2530.   Ports   [0, 1]
  2531.   Position   [35, 71, 95, 109]
  2532.   ShowPortLabels   off
  2533.   TreatAsAtomicUnit   off
  2534.   MaskType   "Pulse generator"
  2535.   MaskDescription   "Vector pulses with sample rate of each puls"
  2536. "e as Sample_time ./Divider. "
  2537.   MaskHelp   "This block generator a vector pulses. The o"
  2538. "utput length is the same as the vector defined in "Divider". The ith elemen"
  2539. "t of the output has the sample time Sample_time/Divider(i). All elements in "
  2540. ""Divider" must be integers."
  2541.   MaskPromptString   "Sample time (scalar, sec):|Divider (integer"
  2542. " vector):|Offset (have same dimension as Divider:"
  2543.   MaskStyleString   "edit,edit,edit"
  2544.   MaskTunableValueString  "on,on,on"
  2545.   MaskCallbackString   "||"
  2546.   MaskEnableString   "on,on,on"
  2547.   MaskVisibilityString   "on,on,on"
  2548.   MaskToolTipString   "on,on,on"
  2549.   MaskVarAliasString   ",,"
  2550.   MaskInitialization   "samp_time=@1;out_divid=@2;offset=@3;"
  2551.   MaskDisplay   "disp('Vector\nPulse')"
  2552.   MaskIconFrame   on
  2553.   MaskIconOpaque   on
  2554.   MaskIconRotate   "none"
  2555.   MaskIconUnits   "autoscale"
  2556.   MaskValueString   "td|1|off"
  2557.   System {
  2558.     Name     "Pulses deividensame sample time1"
  2559.     Location     [55, 192, 283, 286]
  2560.     Open     off
  2561.     ModelBrowserVisibility  off
  2562.     ModelBrowserWidth     200
  2563.     ScreenColor     "white"
  2564.     PaperOrientation     "landscape"
  2565.     PaperPositionMode     "auto"
  2566.     PaperType     "usletter"
  2567.     PaperUnits     "inches"
  2568.     ZoomFactor     "100"
  2569.     Block {
  2570.       BlockType       "S-Function"
  2571.       Name       "S-function1"
  2572.       Ports       [0, 1]
  2573.       Position       [40, 31, 105, 59]
  2574.       FunctionName       "homopuls"
  2575.       Parameters       "samp_time, out_divid, offset"
  2576.     }
  2577.     Block {
  2578.       BlockType       Outport
  2579.       Name       "Outport"
  2580.       Position       [160, 35, 180, 55]
  2581.     }
  2582.     Line {
  2583.       SrcBlock       "S-function1"
  2584.       SrcPort       1
  2585.       DstBlock       "Outport"
  2586.       DstPort       1
  2587.     }
  2588.   }
  2589. }
  2590. Block {
  2591.   BlockType   Outport
  2592.   Name   "out_1"
  2593.   Position   [330, 40, 350, 60]
  2594. }
  2595. Line {
  2596.   SrcBlock   "Filter"
  2597.   SrcPort   1
  2598.   DstBlock   "out_1"
  2599.   DstPort   1
  2600. }
  2601. Line {
  2602.   SrcBlock   "in_1"
  2603.   SrcPort   1
  2604.   DstBlock   "Memory Impulse"
  2605.   DstPort   1
  2606. }
  2607. Line {
  2608.   SrcBlock   "Memory Impulse"
  2609.   SrcPort   1
  2610.   DstBlock   "Filter"
  2611.   DstPort   1
  2612. }
  2613. Line {
  2614.   SrcBlock   "Pulses deividensame sample time1"
  2615.   SrcPort   1
  2616.   Points   [15, 0; 0, -30]
  2617.   DstBlock   "Memory Impulse"
  2618.   DstPort   2
  2619. }
  2620.       }
  2621.     }
  2622.     Block {
  2623.       BlockType       Scope
  2624.       Name       "a(t)"
  2625.       Ports       [1]
  2626.       Position       [120, 225, 150, 255]
  2627.       NamePlacement       "alternate"
  2628.       Location       [224, 436, 1147, 536]
  2629.       Open       off
  2630.       NumInputPorts       "1"
  2631.       List {
  2632. ListType AxesTitles
  2633. axes1 "%<SignalLabel>"
  2634.       }
  2635.       TimeRange       "25.000000"
  2636.       YMin       "-3"
  2637.       YMax       "3"
  2638.       DataFormat       "Array"
  2639.     }
  2640.     Block {
  2641.       BlockType       Scope
  2642.       Name       "binaryndata"
  2643.       Ports       [1]
  2644.       Position       [175, 20, 205, 50]
  2645.       Location       [224, 337, 1147, 437]
  2646.       Open       off
  2647.       NumInputPorts       "1"
  2648.       List {
  2649. ListType AxesTitles
  2650. axes1 "%<SignalLabel>"
  2651.       }
  2652.       TimeRange       "25.000000"
  2653.       YMin       "-3"
  2654.       YMax       "3"
  2655.       DataFormat       "Array"
  2656.     }
  2657.     Block {
  2658.       BlockType       SubSystem
  2659.       Name       "constellation"
  2660.       Ports       []
  2661.       Position       [15, 29, 100, 66]
  2662.       BackgroundColor       "lightBlue"
  2663.       ShowName       off
  2664.       OpenFcn       "cplotask(4)"
  2665.       ShowPortLabels       off
  2666.       TreatAsAtomicUnit       off
  2667.       MaskType       "constellation"
  2668.       MaskDisplay       "disp('Signal Space \n Constellation')"
  2669.       MaskIconFrame       on
  2670.       MaskIconOpaque       on
  2671.       MaskIconRotate       "none"
  2672.       MaskIconUnits       "autoscale"
  2673.       System {
  2674. Name "constellation"
  2675. Location [74, 73, 1338, 1015]
  2676. Open off
  2677. ModelBrowserVisibility off
  2678. ModelBrowserWidth 200
  2679. ScreenColor "cyan"
  2680. PaperOrientation "landscape"
  2681. PaperPositionMode "auto"
  2682. PaperType "usletter"
  2683. PaperUnits "inches"
  2684. ZoomFactor "100"
  2685.       }
  2686.     }
  2687.     Block {
  2688.       BlockType       SubSystem
  2689.       Name       "noise variance"
  2690.       Ports       []
  2691.       Position       [459, 80, 565, 104]
  2692.       BackgroundColor       "lightBlue"
  2693.       ShowName       off
  2694.       OpenFcn       "setnoise"
  2695.       FontSize       12
  2696.       FontAngle       "italic"
  2697.       ShowPortLabels       off
  2698.       TreatAsAtomicUnit       off
  2699.       MaskType       "noise"
  2700.       MaskDisplay       "disp('Noise variance')"
  2701.       MaskIconFrame       on
  2702.       MaskIconOpaque       on
  2703.       MaskIconRotate       "none"
  2704.       MaskIconUnits       "autoscale"
  2705.       System {
  2706. Name "noise variance"
  2707. Location [136, 230, 381, 439]
  2708. Open off
  2709. ModelBrowserVisibility off
  2710. ModelBrowserWidth 200
  2711. ScreenColor "cyan"
  2712. PaperOrientation "landscape"
  2713. PaperPositionMode "auto"
  2714. PaperType "usletter"
  2715. PaperUnits "inches"
  2716. ZoomFactor "100"
  2717.       }
  2718.     }
  2719.     Block {
  2720.       BlockType       Scope
  2721.       Name       "received signal r(t)"
  2722.       Ports       [1]
  2723.       Position       [575, 225, 605, 255]
  2724.       Orientation       "down"
  2725.       Location       [223, 729, 1147, 829]
  2726.       Open       off
  2727.       NumInputPorts       "1"
  2728.       List {
  2729. ListType AxesTitles
  2730. axes1 "%<SignalLabel>"
  2731.       }
  2732.       TimeRange       "25.000000"
  2733.       YMin       "-1.5"
  2734.       YMax       "1.5"
  2735.       DataFormat       "Array"
  2736.     }
  2737.     Block {
  2738.       BlockType       SubSystem
  2739.       Name       "receiverndiagrams"
  2740.       Ports       [1]
  2741.       Position       [865, 15, 920, 55]
  2742.       ShowPortLabels       off
  2743.       TreatAsAtomicUnit       off
  2744.       MaskType       "Diagrams"
  2745.       MaskDescription       "Eye pattern, signal space trajectory and scatte"
  2746. "r plot."
  2747.       MaskPromptString       "Plot start time:|Samples per time slot (2*T):|D"
  2748. "ecision offset:"
  2749.       MaskStyleString       "edit,edit,edit"
  2750.       MaskTunableValueString  "on,on,on"
  2751.       MaskCallbackString      "||"
  2752.       MaskEnableString       "on,on,on"
  2753.       MaskVisibilityString    "on,on,on"
  2754.       MaskToolTipString       "on,on,on"
  2755.       MaskVarAliasString      ",,"
  2756.       MaskVariables       "starttime=@1;anzahl=@2;offset=@3;"
  2757.       MaskInitialization      " [x, y] = srcsicon(10);"
  2758.       MaskDisplay       "plot(0,0,100,100,x,y)"
  2759.       MaskIconFrame       on
  2760.       MaskIconOpaque       on
  2761.       MaskIconRotate       "none"
  2762.       MaskIconUnits       "autoscale"
  2763.       MaskValueString       "12|40|0"
  2764.       System {
  2765. Name "receiverndiagrams"
  2766. Location [638, 564, 1007, 805]
  2767. Open off
  2768. ModelBrowserVisibility off
  2769. ModelBrowserWidth 200
  2770. ScreenColor "white"
  2771. PaperOrientation "landscape"
  2772. PaperPositionMode "auto"
  2773. PaperType "usletter"
  2774. PaperUnits "inches"
  2775. ZoomFactor "100"
  2776. Block {
  2777.   BlockType   Inport
  2778.   Name   "in_1"
  2779.   Position   [35, 40, 55, 60]
  2780. }
  2781. Block {
  2782.   BlockType   Constant
  2783.   Name   "Constant"
  2784.   Position   [35, 130, 55, 150]
  2785.   Value   "Inf"
  2786. }
  2787. Block {
  2788.   BlockType   Constant
  2789.   Name   "Constant1"
  2790.   Position   [130, 130, 150, 150]
  2791.   Value   "0"
  2792. }
  2793. Block {
  2794.   BlockType   SubSystem
  2795.   Name   "Eye patternnreceiver"
  2796.   Ports   [1]
  2797.   Position   [275, 37, 330, 73]
  2798.   CopyFcn   "eyesampl([],[],[],'CopyBlock')"
  2799.   DeleteFcn   "eyesampl([],[],[],'DeleteBlock')"
  2800.   LoadFcn   "eyesampl([],[],[],'LoadBlock')"
  2801.   StartFcn   "eyesampl([],[],[],'Start')"
  2802.   StopFcn   "eyesampl([],[],[],'Stop')"
  2803.   NameChangeFcn   "eyesampl([],[],[],'NameChange')"
  2804.   ShowPortLabels   off
  2805.   TreatAsAtomicUnit   off
  2806.   MaskType   "Eye-diagram/scatter plot"
  2807.   MaskDescription   "Produce eye-pattern diagram and/or scatter "
  2808. "plot."
  2809.   MaskHelp   "This plot opens one, or two plots by assign"
  2810. "ing the line type parameters. The scatter plot point is selected by the decis"
  2811. "ion point in the first parameter entry. A decision line is drawn in the eye-p"
  2812. "attern diagram. The plot is updated at the plot update sample time point."
  2813.   MaskPromptString   "[Symbol interval, plot offset, decision poi"
  2814. "nt offset]:|Lower and upper bound of in-coming signal (1x2 vector):|Number of"
  2815. " saved traces:|Line-type for eye-pattern diagram (0 for no plot):|Line-type f"
  2816. "or scatter plot (0 for no plot):|Plot update sample time:"
  2817.   MaskStyleString   "edit,edit,edit,edit,edit,edit"
  2818.   MaskTunableValueString  "on,on,on,on,on,on"
  2819.   MaskCallbackString   "|||||"
  2820.   MaskEnableString   "on,on,on,on,on,on"
  2821.   MaskVisibilityString   "on,on,on,on,on,on"
  2822.   MaskToolTipString   "on,on,on,on,on,on"
  2823.   MaskVarAliasString   ",,,,,"
  2824.   MaskInitialization   "time_range=@1;boundary=@2;kept_length=@3;ey"
  2825. "e_line=@4;scatter_line=@5;two_d_line=@6;[x,y]=srcsicon(10);"
  2826.   MaskDisplay   "plot(0,0,100,100,x,y);"
  2827.   MaskIconFrame   on
  2828.   MaskIconOpaque   on
  2829.   MaskIconRotate   "none"
  2830.   MaskIconUnits   "autoscale"
  2831.   MaskValueString   "[2 0 1+offset]|[-1.5 1.5]|0|'w-/r-'|0|2/anz"
  2832. "ahl"
  2833.   System {
  2834.     Name     "Eye patternnreceiver"
  2835.     Location     [121, 409, 416, 595]
  2836.     Open     off
  2837.     ModelBrowserVisibility  off
  2838.     ModelBrowserWidth     200
  2839.     ScreenColor     "white"
  2840.     PaperOrientation     "landscape"
  2841.     PaperPositionMode     "auto"
  2842.     PaperType     "usletter"
  2843.     PaperUnits     "inches"
  2844.     ZoomFactor     "100"
  2845.     Block {
  2846.       BlockType       Inport
  2847.       Name       "in_1"
  2848.       Position       [75, 80, 95, 100]
  2849.     }
  2850.     Block {
  2851.       BlockType       "S-Function"
  2852.       Name       "Plot1"
  2853.       Ports       [1]
  2854.       Position       [130, 70, 200, 110]
  2855.       FunctionName       "eyesampl"
  2856.       Parameters       "time_range, boundary, kept_length, eye_"
  2857. "line, scatter_line, two_d_line"
  2858.     }
  2859.     Line {
  2860.       SrcBlock       "in_1"
  2861.       SrcPort       1
  2862.       DstBlock       "Plot1"
  2863.       DstPort       1
  2864.     }
  2865.   }
  2866. }
  2867. Block {
  2868.   BlockType   Mux
  2869.   Name   "Mux"
  2870.   Ports   [2, 1]
  2871.   Position   [185, 36, 220, 69]
  2872.   Inputs   "2"
  2873. }
  2874. Block {
  2875.   BlockType   Mux
  2876.   Name   "Mux1"
  2877.   Ports   [2, 1]
  2878.   Position   [185, 96, 220, 129]
  2879.   Inputs   "2"
  2880. }
  2881. Block {
  2882.   BlockType   SubSystem
  2883.   Name   "Scatter plotnreceiver"
  2884.   Ports   [1]
  2885.   Position   [275, 173, 330, 207]
  2886.   CopyFcn   "eyesampl([],[],[],'CopyBlock')"
  2887.   DeleteFcn   "eyesampl([],[],[],'DeleteBlock')"
  2888.   LoadFcn   "eyesampl([],[],[],'LoadBlock')"
  2889.   StartFcn   "eyesampl([],[],[],'Start')"
  2890.   StopFcn   "eyesampl([],[],[],'Stop')"
  2891.   NameChangeFcn   "eyesampl([],[],[],'NameChange')"
  2892.   ShowPortLabels   off
  2893.   TreatAsAtomicUnit   off
  2894.   MaskType   "Eye-diagram/scatter plot"
  2895.   MaskDescription   "Produce eye-pattern diagram and/or scatter "
  2896. "plot."
  2897.   MaskHelp   "This plot opens one, or two plots by assign"
  2898. "ing the line type parameters. The scatter plot point is selected by the decis"
  2899. "ion point in the first parameter entry. A decision line is drawn in the eye-p"
  2900. "attern diagram. The plot is updated at the plot update sample time point."
  2901.   MaskPromptString   "[Symbol interval, plot offset, decision poi"
  2902. "nt offset]:|Lower and upper bound of in-coming signal (1x2 vector):|Number of"
  2903. " saved traces:|Line-type for eye-pattern diagram (0 for no plot):|Line-type f"
  2904. "or scatter plot (0 for no plot):|Plot update sample time:"
  2905.   MaskStyleString   "edit,edit,edit,edit,edit,edit"
  2906.   MaskTunableValueString  "on,on,on,on,on,on"
  2907.   MaskCallbackString   "|||||"
  2908.   MaskEnableString   "on,on,on,on,on,on"
  2909.   MaskVisibilityString   "on,on,on,on,on,on"
  2910.   MaskToolTipString   "on,on,on,on,on,on"
  2911.   MaskVarAliasString   ",,,,,"
  2912.   MaskInitialization   "time_range=@1;boundary=@2;kept_length=@3;ey"
  2913. "e_line=@4;scatter_line=@5;two_d_line=@6;[x,y]=srcsicon(10);"
  2914.   MaskDisplay   "plot(0,0,100,100,x,y);"
  2915.   MaskIconFrame   on
  2916.   MaskIconOpaque   on
  2917.   MaskIconRotate   "none"
  2918.   MaskIconUnits   "autoscale"
  2919.   MaskValueString   "[1 .5 .999]|[-1.5 1.5]|0|0|'b.'|[.5 offset]"
  2920.   System {
  2921.     Name     "Scatter plotnreceiver"
  2922.     Location     [165, 242, 460, 428]
  2923.     Open     off
  2924.     ModelBrowserVisibility  off
  2925.     ModelBrowserWidth     200
  2926.     ScreenColor     "white"
  2927.     PaperOrientation     "landscape"
  2928.     PaperPositionMode     "auto"
  2929.     PaperType     "usletter"
  2930.     PaperUnits     "inches"
  2931.     ZoomFactor     "100"
  2932.     Block {
  2933.       BlockType       Inport
  2934.       Name       "in_1"
  2935.       Position       [75, 80, 95, 100]
  2936.     }
  2937.     Block {
  2938.       BlockType       "S-Function"
  2939.       Name       "Plot1"
  2940.       Ports       [1]
  2941.       Position       [130, 70, 200, 110]
  2942.       FunctionName       "eyesampl"
  2943.       Parameters       "time_range, boundary, kept_length, eye_"
  2944. "line, scatter_line, two_d_line"
  2945.     }
  2946.     Line {
  2947.       SrcBlock       "in_1"
  2948.       SrcPort       1
  2949.       DstBlock       "Plot1"
  2950.       DstPort       1
  2951.     }
  2952.   }
  2953. }
  2954. Block {
  2955.   BlockType   Step
  2956.   Name   "Step input"
  2957.   Position   [35, 85, 55, 105]
  2958.   Time   "starttime"
  2959.   SampleTime   "1"
  2960. }
  2961. Block {
  2962.   BlockType   Switch
  2963.   Name   "Switch"
  2964.   Position   [110, 44, 135, 76]
  2965.   Threshold   "1"
  2966. }
  2967. Block {
  2968.   BlockType   SubSystem
  2969.   Name   "Trajectorynreceiver"
  2970.   Ports   [1]
  2971.   Position   [275, 107, 330, 143]
  2972.   CopyFcn   "eyediasi([],[],[],'CopyBlock')"
  2973.   DeleteFcn   "eyediasi([],[],[],'DeleteBlock')"
  2974.   LoadFcn   "eyediasi([],[],[],'LoadBlock')"
  2975.   StartFcn   "eyediasi([],[],[],'Start')"
  2976.   StopFcn   "eyediasi([],[],[],'Stop')"
  2977.   NameChangeFcn   "eyediasi([],[],[],'NameChange')"
  2978.   ShowPortLabels   off
  2979.   TreatAsAtomicUnit   off
  2980.   MaskType   "Eye-diagram/scatter plot"
  2981.   MaskDescription   "Produce eye-pattern diagram/scatternplot/x"
  2982. "-y plot with the rising edge of the second input as the decision line."
  2983.   MaskHelp   "This plot opens one, two, or three plots by"
  2984. " assigning the line type parameters. The scatter plot point is selected by th"
  2985. "e rising edge of a trigger signal. A decision line is drawn at the rising edg"
  2986. "e of the trigger signal."
  2987.   MaskPromptString   "Eye-pattern plot time frame:|Lower and uppe"
  2988. "r bound of in-coming signal (1x2 vector):|Number of saved traces:|Line-type f"
  2989. "or eye-pattern diagram (0 for no plot):|Line-type for scatter plot (0 for no "
  2990. "plot):|Line-type for x-y plot (0 for no plot):"
  2991.   MaskStyleString   "edit,edit,edit,edit,edit,edit"
  2992.   MaskTunableValueString  "on,on,on,on,on,on"
  2993.   MaskCallbackString   "|||||"
  2994.   MaskEnableString   "on,on,on,on,on,on"
  2995.   MaskVisibilityString   "on,on,on,on,on,on"
  2996.   MaskToolTipString   "on,on,on,on,on,on"
  2997.   MaskVarAliasString   ",,,,,"
  2998.   MaskInitialization   "time_range=@1;boundary=@2;kept_length=@3;ey"
  2999. "e_line=@4;scatter_line=@5;two_d_line=@6;[x,y]=srcsicon(10);[v,w]=trigicon(0,2"
  3000. "5,get_param(gcb,'orientation'),2);"
  3001.   MaskDisplay   "plot(0,0,100,100,x,y,v,w);"
  3002.   MaskIconFrame   on
  3003.   MaskIconOpaque   on
  3004.   MaskIconRotate   "none"
  3005.   MaskIconUnits   "autoscale"
  3006.   MaskValueString   "[2 0 1]|[-1.5 1.5]|0|0|0|'g-'"
  3007.   System {
  3008.     Name     "Trajectorynreceiver"
  3009.     Location     [165, 242, 460, 428]
  3010.     Open     off
  3011.     ModelBrowserVisibility  off
  3012.     ModelBrowserWidth     200
  3013.     ScreenColor     "white"
  3014.     PaperOrientation     "landscape"
  3015.     PaperPositionMode     "auto"
  3016.     PaperType     "usletter"
  3017.     PaperUnits     "inches"
  3018.     ZoomFactor     "100"
  3019.     Block {
  3020.       BlockType       Inport
  3021.       Name       "in_1"
  3022.       Position       [15, 55, 35, 75]
  3023.     }
  3024.     Block {
  3025.       BlockType       Constant
  3026.       Name       "Constant"
  3027.       Position       [15, 110, 45, 140]
  3028.       Value       "0"
  3029.     }
  3030.     Block {
  3031.       BlockType       Mux
  3032.       Name       "Mux"
  3033.       Ports       [2, 1]
  3034.       Position       [65, 70, 100, 105]
  3035.       Inputs       "2"
  3036.     }
  3037.     Block {
  3038.       BlockType       "S-Function"
  3039.       Name       "Plot1"
  3040.       Ports       [1]
  3041.       Position       [130, 70, 200, 110]
  3042.       FunctionName       "eyediasi"
  3043.       Parameters       "time_range, boundary, kept_length, eye_"
  3044. "line, scatter_line, two_d_line"
  3045.     }
  3046.     Line {
  3047.       SrcBlock       "Mux"
  3048.       SrcPort       1
  3049.       DstBlock       "Plot1"
  3050.       DstPort       1
  3051.     }
  3052.     Line {
  3053.       SrcBlock       "Constant"
  3054.       SrcPort       1
  3055.       DstBlock       "Mux"
  3056.       DstPort       2
  3057.     }
  3058.     Line {
  3059.       SrcBlock       "in_1"
  3060.       SrcPort       1
  3061.       Points       [5, 0; 0, 15]
  3062.       DstBlock       "Mux"
  3063.       DstPort       1
  3064.     }
  3065.   }
  3066. }
  3067. Line {
  3068.   SrcBlock   "Mux"
  3069.   SrcPort   1
  3070.   DstBlock   "Eye patternnreceiver"
  3071.   DstPort   1
  3072. }
  3073. Line {
  3074.   SrcBlock   "in_1"
  3075.   SrcPort   1
  3076.   DstBlock   "Switch"
  3077.   DstPort   1
  3078. }
  3079. Line {
  3080.   SrcBlock   "Step input"
  3081.   SrcPort   1
  3082.   Points   [15, 0; 0, -35]
  3083.   DstBlock   "Switch"
  3084.   DstPort   2
  3085. }
  3086. Line {
  3087.   SrcBlock   "Constant"
  3088.   SrcPort   1
  3089.   Points   [35, 0]
  3090.   DstBlock   "Switch"
  3091.   DstPort   3
  3092. }
  3093. Line {
  3094.   SrcBlock   "Mux1"
  3095.   SrcPort   1
  3096.   Points   [25, 0]
  3097.   Branch {
  3098.     Points     [10, 0]
  3099.     DstBlock     "Trajectorynreceiver"
  3100.     DstPort     1
  3101.   }
  3102.   Branch {
  3103.     Points     [0, 75]
  3104.     DstBlock     "Scatter plotnreceiver"
  3105.     DstPort     1
  3106.   }
  3107. }
  3108. Line {
  3109.   SrcBlock   "Constant1"
  3110.   SrcPort   1
  3111.   Points   [10, 0; 0, -20]
  3112.   Branch {
  3113.     Points     [0, -75]
  3114.     DstBlock     "Mux"
  3115.     DstPort     1
  3116.   }
  3117.   Branch {
  3118.     DstBlock     "Mux1"
  3119.     DstPort     2
  3120.   }
  3121. }
  3122. Line {
  3123.   SrcBlock   "Switch"
  3124.   SrcPort   1
  3125.   Points   [10, 0]
  3126.   Branch {
  3127.     DstBlock     "Mux"
  3128.     DstPort     2
  3129.   }
  3130.   Branch {
  3131.     Points     [0, 45]
  3132.     DstBlock     "Mux1"
  3133.     DstPort     1
  3134.   }
  3135. }
  3136.       }
  3137.     }
  3138.     Block {
  3139.       BlockType       Scope
  3140.       Name       "s(t)"
  3141.       Ports       [1]
  3142.       Position       [340, 170, 370, 200]
  3143.       Orientation       "down"
  3144.       NamePlacement       "alternate"
  3145.       Location       [224, 533, 1147, 633]
  3146.       Open       off
  3147.       NumInputPorts       "1"
  3148.       List {
  3149. ListType AxesTitles
  3150. axes1 "%<SignalLabel>"
  3151.       }
  3152.       TimeRange       "25.000000"
  3153.       YMin       "-1.5"
  3154.       YMax       "1.5"
  3155.       DataFormat       "Array"
  3156.     }
  3157.     Block {
  3158.       BlockType       Scope
  3159.       Name       "s_r(t)"
  3160.       Ports       [1]
  3161.       Position       [825, 185, 855, 215]
  3162.       Orientation       "down"
  3163.       Location       [223, 794, 1147, 894]
  3164.       Open       off
  3165.       NumInputPorts       "1"
  3166.       List {
  3167. ListType AxesTitles
  3168. axes1 "%<SignalLabel>"
  3169.       }
  3170.       TimeRange       "25.000000"
  3171.       YMin       "-1.5"
  3172.       YMax       "1.5"
  3173.       DataFormat       "Array"
  3174.     }
  3175.     Block {
  3176.       BlockType       Scope
  3177.       Name       "sink signal v(t)"
  3178.       Ports       [1]
  3179.       Position       [995, 115, 1025, 145]
  3180.       Location       [223, 794, 1147, 894]
  3181.       Open       off
  3182.       NumInputPorts       "1"
  3183.       List {
  3184. ListType AxesTitles
  3185. axes1 "%<SignalLabel>"
  3186.       }
  3187.       TimeRange       "25.000000"
  3188.       YMin       "-3"
  3189.       YMax       "3"
  3190.       DataFormat       "Array"
  3191.     }
  3192.     Block {
  3193.       BlockType       Scope
  3194.       Name       "transmitted signal u(t)"
  3195.       Ports       [1]
  3196.       Position       [425, 225, 455, 255]
  3197.       Orientation       "down"
  3198.       Location       [224, 631, 1147, 731]
  3199.       Open       off
  3200.       NumInputPorts       "1"
  3201.       List {
  3202. ListType AxesTitles
  3203. axes1 "%<SignalLabel>"
  3204.       }
  3205.       TimeRange       "25.000000"
  3206.       YMin       "-1.5"
  3207.       YMax       "1.5"
  3208.       DataFormat       "Array"
  3209.     }
  3210.     Block {
  3211.       BlockType       SubSystem
  3212.       Name       "transmitterndiagrams"
  3213.       Ports       [1]
  3214.       Position       [380, 15, 435, 55]
  3215.       ShowPortLabels       off
  3216.       TreatAsAtomicUnit       off
  3217.       MaskType       "Diagrams"
  3218.       MaskDescription       "Eye pattern,  signal-space trajectory and scatt"
  3219. "er plot"
  3220.       MaskPromptString       "Plot start time:|samples per time slot|decision"
  3221. " offset"
  3222.       MaskStyleString       "edit,edit,edit"
  3223.       MaskTunableValueString  "on,on,on"
  3224.       MaskCallbackString      "||"
  3225.       MaskEnableString       "on,on,on"
  3226.       MaskVisibilityString    "on,on,on"
  3227.       MaskToolTipString       "on,on,on"
  3228.       MaskVarAliasString      ",,"
  3229.       MaskVariables       "starttime=@1;anzahl=@2;offset=@3;"
  3230.       MaskInitialization      " [x, y] = srcsicon(10);"
  3231.       MaskDisplay       "plot(0,0,100,100,x,y)"
  3232.       MaskIconFrame       on
  3233.       MaskIconOpaque       on
  3234.       MaskIconRotate       "none"
  3235.       MaskIconUnits       "autoscale"
  3236.       MaskValueString       "6|40|0"
  3237.       System {
  3238. Name "transmitterndiagrams"
  3239. Location [475, 310, 844, 551]
  3240. Open off
  3241. ModelBrowserVisibility off
  3242. ModelBrowserWidth 200
  3243. ScreenColor "white"
  3244. PaperOrientation "landscape"
  3245. PaperPositionMode "auto"
  3246. PaperType "usletter"
  3247. PaperUnits "inches"
  3248. ZoomFactor "100"
  3249. Block {
  3250.   BlockType   Inport
  3251.   Name   "in_1"
  3252.   Position   [35, 40, 55, 60]
  3253. }
  3254. Block {
  3255.   BlockType   Constant
  3256.   Name   "Constant"
  3257.   Position   [35, 130, 55, 150]
  3258.   Value   "Inf"
  3259. }
  3260. Block {
  3261.   BlockType   Constant
  3262.   Name   "Constant1"
  3263.   Position   [130, 130, 150, 150]
  3264.   Value   "0"
  3265. }
  3266. Block {
  3267.   BlockType   SubSystem
  3268.   Name   "Eye pattern ntransmitter"
  3269.   Ports   [1]
  3270.   Position   [275, 37, 330, 73]
  3271.   CopyFcn   "eyesampl([],[],[],'CopyBlock')"
  3272.   DeleteFcn   "eyesampl([],[],[],'DeleteBlock')"
  3273.   LoadFcn   "eyesampl([],[],[],'LoadBlock')"
  3274.   StartFcn   "eyesampl([],[],[],'Start')"
  3275.   StopFcn   "eyesampl([],[],[],'Stop')"
  3276.   NameChangeFcn   "eyesampl([],[],[],'NameChange')"
  3277.   ShowPortLabels   off
  3278.   TreatAsAtomicUnit   off
  3279.   MaskType   "Eye-diagram/scatter plot"
  3280.   MaskDescription   "Produce eye-pattern diagram and/or scatter "
  3281. "plot."
  3282.   MaskHelp   "This plot opens one, or two plots by assign"
  3283. "ing the line type parameters. The scatter plot point is selected by the decis"
  3284. "ion point in the first parameter entry. A decision line is drawn in the eye-p"
  3285. "attern diagram. The plot is updated at the plot update sample time point."
  3286.   MaskPromptString   "[Symbol interval, plot offset, decision poi"
  3287. "nt offset]:|Lower and upper bound of in-coming signal (1x2 vector):|Number of"
  3288. " saved traces:|Line-type for eye-pattern diagram (0 for no plot):|Line-type f"
  3289. "or scatter plot (0 for no plot):|Plot update sample time:"
  3290.   MaskStyleString   "edit,edit,edit,edit,edit,edit"
  3291.   MaskTunableValueString  "on,on,on,on,on,on"
  3292.   MaskCallbackString   "|||||"
  3293.   MaskEnableString   "on,on,on,on,on,on"
  3294.   MaskVisibilityString   "on,on,on,on,on,on"
  3295.   MaskToolTipString   "on,on,on,on,on,on"
  3296.   MaskVarAliasString   ",,,,,"
  3297.   MaskInitialization   "time_range=@1;boundary=@2;kept_length=@3;ey"
  3298. "e_line=@4;scatter_line=@5;two_d_line=@6;[x,y]=srcsicon(10);"
  3299.   MaskDisplay   "plot(0,0,100,100,x,y);"
  3300.   MaskIconFrame   on
  3301.   MaskIconOpaque   on
  3302.   MaskIconRotate   "none"
  3303.   MaskIconUnits   "autoscale"
  3304.   MaskValueString   "[2 0 1+offset]|[-1.5 1.5]|0|'w-/r-'|0|2/anz"
  3305. "ahl"
  3306.   System {
  3307.     Name     "Eye pattern ntransmitter"
  3308.     Location     [121, 409, 416, 595]
  3309.     Open     off
  3310.     ModelBrowserVisibility  off
  3311.     ModelBrowserWidth     200
  3312.     ScreenColor     "white"
  3313.     PaperOrientation     "landscape"
  3314.     PaperPositionMode     "auto"
  3315.     PaperType     "usletter"
  3316.     PaperUnits     "inches"
  3317.     ZoomFactor     "100"
  3318.     Block {
  3319.       BlockType       Inport
  3320.       Name       "in_1"
  3321.       Position       [75, 80, 95, 100]
  3322.     }
  3323.     Block {
  3324.       BlockType       "S-Function"
  3325.       Name       "Plot1"
  3326.       Ports       [1]
  3327.       Position       [130, 70, 200, 110]
  3328.       FunctionName       "eyesampl"
  3329.       Parameters       "time_range, boundary, kept_length, eye_"
  3330. "line, scatter_line, two_d_line"
  3331.     }
  3332.     Line {
  3333.       SrcBlock       "in_1"
  3334.       SrcPort       1
  3335.       DstBlock       "Plot1"
  3336.       DstPort       1
  3337.     }
  3338.   }
  3339. }
  3340. Block {
  3341.   BlockType   Mux
  3342.   Name   "Mux"
  3343.   Ports   [2, 1]
  3344.   Position   [185, 36, 220, 69]
  3345.   Inputs   "2"
  3346. }
  3347. Block {
  3348.   BlockType   Mux
  3349.   Name   "Mux1"
  3350.   Ports   [2, 1]
  3351.   Position   [185, 96, 220, 129]
  3352.   Inputs   "2"
  3353. }
  3354. Block {
  3355.   BlockType   SubSystem
  3356.   Name   "Scatter plotntransmitter"
  3357.   Ports   [1]
  3358.   Position   [275, 173, 330, 207]
  3359.   CopyFcn   "eyesampl([],[],[],'CopyBlock')"
  3360.   DeleteFcn   "eyesampl([],[],[],'DeleteBlock')"
  3361.   LoadFcn   "eyesampl([],[],[],'LoadBlock')"
  3362.   StartFcn   "eyesampl([],[],[],'Start')"
  3363.   StopFcn   "eyesampl([],[],[],'Stop')"
  3364.   NameChangeFcn   "eyesampl([],[],[],'NameChange')"
  3365.   ShowPortLabels   off
  3366.   TreatAsAtomicUnit   off
  3367.   MaskType   "Eye-diagram/scatter plot"
  3368.   MaskDescription   "Produce eye-pattern diagram and/or scatter "
  3369. "plot."
  3370.   MaskHelp   "This plot opens one, or two plots by assign"
  3371. "ing the line type parameters. The scatter plot point is selected by the decis"
  3372. "ion point in the first parameter entry. A decision line is drawn in the eye-p"
  3373. "attern diagram. The plot is updated at the plot update sample time point."
  3374.   MaskPromptString   "[Symbol interval, plot offset, decision poi"
  3375. "nt offset]:|Lower and upper bound of in-coming signal (1x2 vector):|Number of"
  3376. " saved traces:|Line-type for eye-pattern diagram (0 for no plot):|Line-type f"
  3377. "or scatter plot (0 for no plot):|Plot update sample time:"
  3378.   MaskStyleString   "edit,edit,edit,edit,edit,edit"
  3379.   MaskTunableValueString  "on,on,on,on,on,on"
  3380.   MaskCallbackString   "|||||"
  3381.   MaskEnableString   "on,on,on,on,on,on"
  3382.   MaskVisibilityString   "on,on,on,on,on,on"
  3383.   MaskToolTipString   "on,on,on,on,on,on"
  3384.   MaskVarAliasString   ",,,,,"
  3385.   MaskInitialization   "time_range=@1;boundary=@2;kept_length=@3;ey"
  3386. "e_line=@4;scatter_line=@5;two_d_line=@6;[x,y]=srcsicon(10);"
  3387.   MaskDisplay   "plot(0,0,100,100,x,y);"
  3388.   MaskIconFrame   on
  3389.   MaskIconOpaque   on
  3390.   MaskIconRotate   "none"
  3391.   MaskIconUnits   "autoscale"
  3392.   MaskValueString   "[1 .5 .999]|[-1.5 1.5]|0|0|'b.'|[.5 offset]"
  3393.   System {
  3394.     Name     "Scatter plotntransmitter"
  3395.     Location     [165, 242, 460, 428]
  3396.     Open     off
  3397.     ModelBrowserVisibility  off
  3398.     ModelBrowserWidth     200
  3399.     ScreenColor     "white"
  3400.     PaperOrientation     "landscape"
  3401.     PaperPositionMode     "auto"
  3402.     PaperType     "usletter"
  3403.     PaperUnits     "inches"
  3404.     ZoomFactor     "100"
  3405.     Block {
  3406.       BlockType       Inport
  3407.       Name       "in_1"
  3408.       Position       [75, 80, 95, 100]
  3409.     }
  3410.     Block {
  3411.       BlockType       "S-Function"
  3412.       Name       "Plot1"
  3413.       Ports       [1]
  3414.       Position       [130, 70, 200, 110]
  3415.       FunctionName       "eyesampl"
  3416.       Parameters       "time_range, boundary, kept_length, eye_"
  3417. "line, scatter_line, two_d_line"
  3418.     }
  3419.     Line {
  3420.       SrcBlock       "in_1"
  3421.       SrcPort       1
  3422.       DstBlock       "Plot1"
  3423.       DstPort       1
  3424.     }
  3425.   }
  3426. }
  3427. Block {
  3428.   BlockType   Step
  3429.   Name   "Step input"
  3430.   Position   [35, 85, 55, 105]
  3431.   Time   "starttime"
  3432.   SampleTime   "1"
  3433. }
  3434. Block {
  3435.   BlockType   Switch
  3436.   Name   "Switch"
  3437.   Position   [110, 44, 135, 76]
  3438.   Threshold   "1"
  3439. }
  3440. Block {
  3441.   BlockType   SubSystem
  3442.   Name   "Trajectoryntransmitter"
  3443.   Ports   [1]
  3444.   Position   [275, 107, 330, 143]
  3445.   CopyFcn   "eyediasi([],[],[],'CopyBlock')"
  3446.   DeleteFcn   "eyediasi([],[],[],'DeleteBlock')"
  3447.   LoadFcn   "eyediasi([],[],[],'LoadBlock')"
  3448.   StartFcn   "eyediasi([],[],[],'Start')"
  3449.   StopFcn   "eyediasi([],[],[],'Stop')"
  3450.   NameChangeFcn   "eyediasi([],[],[],'NameChange')"
  3451.   ShowPortLabels   off
  3452.   TreatAsAtomicUnit   off
  3453.   MaskType   "Eye-diagram/scatter plot"
  3454.   MaskDescription   "Produce eye-pattern diagram/scatternplot/x"
  3455. "-y plot with the rising edge of the second input as the decision line."
  3456.   MaskHelp   "This plot opens one, two, or three plots by"
  3457. " assigning the line type parameters. The scatter plot point is selected by th"
  3458. "e rising edge of a trigger signal. A decision line is drawn at the rising edg"
  3459. "e of the trigger signal."
  3460.   MaskPromptString   "Eye-pattern plot time frame:|Lower and uppe"
  3461. "r bound of in-coming signal (1x2 vector):|Number of saved traces:|Line-type f"
  3462. "or eye-pattern diagram (0 for no plot):|Line-type for scatter plot (0 for no "
  3463. "plot):|Line-type for x-y plot (0 for no plot):"
  3464.   MaskStyleString   "edit,edit,edit,edit,edit,edit"
  3465.   MaskTunableValueString  "on,on,on,on,on,on"
  3466.   MaskCallbackString   "|||||"
  3467.   MaskEnableString   "on,on,on,on,on,on"
  3468.   MaskVisibilityString   "on,on,on,on,on,on"
  3469.   MaskToolTipString   "on,on,on,on,on,on"
  3470.   MaskVarAliasString   ",,,,,"
  3471.   MaskInitialization   "time_range=@1;boundary=@2;kept_length=@3;ey"
  3472. "e_line=@4;scatter_line=@5;two_d_line=@6;[x,y]=srcsicon(10);[v,w]=trigicon(0,2"
  3473. "5,get_param(gcb,'orientation'),2);"
  3474.   MaskDisplay   "plot(0,0,100,100,x,y,v,w);"
  3475.   MaskIconFrame   on
  3476.   MaskIconOpaque   on
  3477.   MaskIconRotate   "none"
  3478.   MaskIconUnits   "autoscale"
  3479.   MaskValueString   "[2 0 1]|[-1.5 1.5]|0|0|0|'g-'"
  3480.   System {
  3481.     Name     "Trajectoryntransmitter"
  3482.     Location     [165, 242, 460, 428]
  3483.     Open     off
  3484.     ModelBrowserVisibility  off
  3485.     ModelBrowserWidth     200
  3486.     ScreenColor     "white"
  3487.     PaperOrientation     "landscape"
  3488.     PaperPositionMode     "auto"
  3489.     PaperType     "usletter"
  3490.     PaperUnits     "inches"
  3491.     ZoomFactor     "100"
  3492.     Block {
  3493.       BlockType       Inport
  3494.       Name       "in_1"
  3495.       Position       [15, 55, 35, 75]
  3496.     }
  3497.     Block {
  3498.       BlockType       Constant
  3499.       Name       "Constant"
  3500.       Position       [15, 110, 45, 140]
  3501.       Value       "0"
  3502.     }
  3503.     Block {
  3504.       BlockType       Mux
  3505.       Name       "Mux"
  3506.       Ports       [2, 1]
  3507.       Position       [65, 70, 100, 105]
  3508.       Inputs       "2"
  3509.     }
  3510.     Block {
  3511.       BlockType       "S-Function"
  3512.       Name       "Plot1"
  3513.       Ports       [1]
  3514.       Position       [130, 70, 200, 110]
  3515.       FunctionName       "eyediasi"
  3516.       Parameters       "time_range, boundary, kept_length, eye_"
  3517. "line, scatter_line, two_d_line"
  3518.     }
  3519.     Line {
  3520.       SrcBlock       "in_1"
  3521.       SrcPort       1
  3522.       Points       [5, 0; 0, 15]
  3523.       DstBlock       "Mux"
  3524.       DstPort       1
  3525.     }
  3526.     Line {
  3527.       SrcBlock       "Constant"
  3528.       SrcPort       1
  3529.       DstBlock       "Mux"
  3530.       DstPort       2
  3531.     }
  3532.     Line {
  3533.       SrcBlock       "Mux"
  3534.       SrcPort       1
  3535.       DstBlock       "Plot1"
  3536.       DstPort       1
  3537.     }
  3538.   }
  3539. }
  3540. Line {
  3541.   SrcBlock   "Switch"
  3542.   SrcPort   1
  3543.   Points   [10, 0]
  3544.   Branch {
  3545.     DstBlock     "Mux"
  3546.     DstPort     2
  3547.   }
  3548.   Branch {
  3549.     Points     [0, 45]
  3550.     DstBlock     "Mux1"
  3551.     DstPort     1
  3552.   }
  3553. }
  3554. Line {
  3555.   SrcBlock   "Constant1"
  3556.   SrcPort   1
  3557.   Points   [10, 0; 0, -20]
  3558.   Branch {
  3559.     Points     [0, -75]
  3560.     DstBlock     "Mux"
  3561.     DstPort     1
  3562.   }
  3563.   Branch {
  3564.     DstBlock     "Mux1"
  3565.     DstPort     2
  3566.   }
  3567. }
  3568. Line {
  3569.   SrcBlock   "Mux1"
  3570.   SrcPort   1
  3571.   Points   [25, 0]
  3572.   Branch {
  3573.     Points     [10, 0]
  3574.     DstBlock     "Trajectoryntransmitter"
  3575.     DstPort     1
  3576.   }
  3577.   Branch {
  3578.     Points     [0, 75]
  3579.     DstBlock     "Scatter plotntransmitter"
  3580.     DstPort     1
  3581.   }
  3582. }
  3583. Line {
  3584.   SrcBlock   "Constant"
  3585.   SrcPort   1
  3586.   Points   [35, 0]
  3587.   DstBlock   "Switch"
  3588.   DstPort   3
  3589. }
  3590. Line {
  3591.   SrcBlock   "Step input"
  3592.   SrcPort   1
  3593.   Points   [15, 0; 0, -35]
  3594.   DstBlock   "Switch"
  3595.   DstPort   2
  3596. }
  3597. Line {
  3598.   SrcBlock   "in_1"
  3599.   SrcPort   1
  3600.   DstBlock   "Switch"
  3601.   DstPort   1
  3602. }
  3603. Line {
  3604.   SrcBlock   "Mux"
  3605.   SrcPort   1
  3606.   DstBlock   "Eye pattern ntransmitter"
  3607.   DstPort   1
  3608. }
  3609.       }
  3610.     }
  3611.     Line {
  3612.       SrcBlock       "Clock"
  3613.       SrcPort       1
  3614.       DstBlock       "Fcn"
  3615.       DstPort       1
  3616.     }
  3617.     Line {
  3618.       SrcBlock       "Product"
  3619.       SrcPort       1
  3620.       Points       [0, 0]
  3621.       Branch {
  3622. Points [5, 0]
  3623. DstBlock "transmitted signal u(t)"
  3624. DstPort 1
  3625.       }
  3626.       Branch {
  3627. DstBlock "Channel"
  3628. DstPort 1
  3629.       }
  3630.     }
  3631.     Line {
  3632.       SrcBlock       "4-ASK demap"
  3633.       SrcPort       1
  3634.       Points       [25, 0]
  3635.       Branch {
  3636. DstBlock "sink signal v(t)"
  3637. DstPort 1
  3638.       }
  3639.       Branch {
  3640. DstBlock "Error rate"
  3641. DstPort 2
  3642.       }
  3643.     }
  3644.     Line {
  3645.       SrcBlock       "Fcn"
  3646.       SrcPort       1
  3647.       DstBlock       "Product"
  3648.       DstPort       2
  3649.     }
  3650.     Line {
  3651.       SrcBlock       "4-ary source"
  3652.       SrcPort       2
  3653.       Points       [0, -15; 25, 0]
  3654.       Branch {
  3655. DstBlock "4-ASK"
  3656. DstPort 1
  3657.       }
  3658.       Branch {
  3659. Points [0, 115]
  3660. Branch {
  3661.   Points   [0, 25; 800, 0; 0, -55]
  3662.   DstBlock   "Error rate"
  3663.   DstPort   1
  3664. }
  3665. Branch {
  3666.   DstBlock   "a(t)"
  3667.   DstPort   1
  3668. }
  3669.       }
  3670.     }
  3671.     Line {
  3672.       SrcBlock       "Clock1"
  3673.       SrcPort       1
  3674.       DstBlock       "Fcn1"
  3675.       DstPort       1
  3676.     }
  3677.     Line {
  3678.       SrcBlock       "Gain"
  3679.       SrcPort       1
  3680.       Points       [15, 0]
  3681.       Branch {
  3682. DstBlock "4-ASK demap"
  3683. DstPort 1
  3684.       }
  3685.       Branch {
  3686. Points [0, -95]
  3687. DstBlock "receiverndiagrams"
  3688. DstPort 1
  3689.       }
  3690.       Branch {
  3691. DstBlock "s_r(t)"
  3692. DstPort 1
  3693.       }
  3694.     }
  3695.     Line {
  3696.       SrcBlock       "Channel"
  3697.       SrcPort       1
  3698.       Points       [30, 0]
  3699.       Branch {
  3700. DstBlock "Product1"
  3701. DstPort 2
  3702.       }
  3703.       Branch {
  3704. DstBlock "received signal r(t)"
  3705. DstPort 1
  3706.       }
  3707.     }
  3708.     Line {
  3709.       SrcBlock       "Fcn1"
  3710.       SrcPort       1
  3711.       Points       [5, 0; 0, 90]
  3712.       DstBlock       "Product1"
  3713.       DstPort       1
  3714.     }
  3715.     Line {
  3716.       SrcBlock       "4-ary source"
  3717.       SrcPort       1
  3718.       Points       [40, 0; 0, -80]
  3719.       DstBlock       "binaryndata"
  3720.       DstPort       1
  3721.     }
  3722.     Line {
  3723.       SrcBlock       "4-ASK"
  3724.       SrcPort       1
  3725.       DstBlock       "Root-RCntransmit filter"
  3726.       DstPort       1
  3727.     }
  3728.     Line {
  3729.       SrcBlock       "Product1"
  3730.       SrcPort       1
  3731.       DstBlock       "Root-RCnreceive filter"
  3732.       DstPort       1
  3733.     }
  3734.     Line {
  3735.       SrcBlock       "Root-RCnreceive filter"
  3736.       SrcPort       1
  3737.       DstBlock       "Gain"
  3738.       DstPort       1
  3739.     }
  3740.     Line {
  3741.       SrcBlock       "Root-RCntransmit filter"
  3742.       SrcPort       1
  3743.       DstBlock       "Gain1"
  3744.       DstPort       1
  3745.     }
  3746.     Line {
  3747.       SrcBlock       "Gain1"
  3748.       SrcPort       1
  3749.       Points       [15, 0]
  3750.       Branch {
  3751. DstBlock "Product"
  3752. DstPort 1
  3753.       }
  3754.       Branch {
  3755. DstBlock "s(t)"
  3756. DstPort 1
  3757.       }
  3758.       Branch {
  3759. Points [0, -90]
  3760. DstBlock "transmitterndiagrams"
  3761. DstPort 1
  3762.       }
  3763.     }
  3764.   }
  3765. }