📄 viterbi_ber.mdl
字号:
BusSelectionMode off
}
Block {
BlockType Display
Format "short"
Decimation "10"
Floating off
SampleTime "-1"
}
Block {
BlockType FrameConversion
OutFrame "Frame based"
}
Block {
BlockType FromWorkspace
VariableName "simulink_input"
SampleTime "-1"
Interpolate on
ZeroCross off
OutputAfterFinalValue "Extrapolation"
}
Block {
BlockType Gain
Gain "1"
Multiplication "Element-wise(K.*u)"
ParameterDataTypeMode "Same as input"
ParameterDataType "sfix(16)"
ParameterScalingMode "Best Precision: Matrix-wise"
ParameterScaling "2^0"
OutDataTypeMode "Same as input"
OutDataType "sfix(16)"
OutScaling "2^0"
LockScale off
RndMeth "Floor"
SaturateOnIntegerOverflow on
SampleTime "-1"
}
Block {
BlockType Ground
}
Block {
BlockType Inport
UseBusObject off
BusObject "BusObject"
BusOutputAsStruct off
PortDimensions "-1"
SampleTime "-1"
DataType "auto"
OutDataType "sfix(16)"
OutScaling "2^0"
SignalType "auto"
SamplingMode "auto"
Interpolate on
}
Block {
BlockType Outport
Port "1"
UseBusObject off
BusObject "BusObject"
BusOutputAsStruct off
PortDimensions "-1"
SampleTime "-1"
DataType "auto"
OutDataType "sfix(16)"
OutScaling "2^0"
SignalType "auto"
SamplingMode "auto"
OutputWhenDisabled "held"
InitialOutput "[]"
}
Block {
BlockType RelationalOperator
Operator ">="
InputSameDT on
LogicOutDataTypeMode "Logical (see Configuration Parameters: Optimiza"
"tion)"
LogicDataType "uint(8)"
ZeroCross on
SampleTime "-1"
}
Block {
BlockType Rounding
Operator "floor"
SampleTime "-1"
}
Block {
BlockType Saturate
UpperLimit "0.5"
LowerLimit "-0.5"
LinearizeAsGain on
ZeroCross on
SampleTime "-1"
}
Block {
BlockType Scope
Floating off
ModelBased off
TickLabels "OneTimeTick"
ZoomMode "on"
Grid "on"
TimeRange "auto"
YMin "-5"
YMax "5"
SaveToWorkspace off
SaveName "ScopeData"
LimitDataPoints on
MaxDataPoints "5000"
Decimation "1"
SampleInput off
SampleTime "0"
}
Block {
BlockType "S-Function"
FunctionName "system"
SFunctionModules "''"
PortCounts "[]"
}
Block {
BlockType SubSystem
ShowPortLabels on
Permissions "ReadWrite"
PermitHierarchicalResolution "All"
SystemSampleTime "-1"
RTWFcnNameOpts "Auto"
RTWFileNameOpts "Auto"
SimViewingDevice off
DataTypeOverride "UseLocalSettings"
MinMaxOverflowLogging "UseLocalSettings"
}
Block {
BlockType Terminator
}
Block {
BlockType ToWorkspace
VariableName "simulink_output"
MaxDataPoints "1000"
Decimation "1"
SampleTime "0"
FixptAsFi off
}
}
AnnotationDefaults {
HorizontalAlignment "center"
VerticalAlignment "middle"
ForegroundColor "black"
BackgroundColor "white"
DropShadow off
FontName "Helvetica"
FontSize 10
FontWeight "normal"
FontAngle "normal"
}
LineDefaults {
FontName "Helvetica"
FontSize 9
FontWeight "normal"
FontAngle "normal"
}
System {
Name "Viterbi_BER"
Location [61, 92, 1140, 763]
Open on
ModelBrowserVisibility off
ModelBrowserWidth 212
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
ReportName "simulink-default.rpt"
Block {
BlockType Reference
Name "AWGN\nChannel"
Ports [1, 1]
Position [982, 275, 1048, 330]
Orientation "down"
DropShadow on
NamePlacement "alternate"
SourceBlock "commchan3/AWGN\nChannel"
SourceType "AWGN Channel"
ShowPortLabels on
seed "67"
noiseMode "Signal to noise ratio (Eb/No)"
EbNodB "EbNo"
EsNodB "10"
SNRdB "10"
bitsPerSym "1"
Ps "1"
Tsym "1"
variance "1"
}
Block {
BlockType Reference
Name "BPSK\nModulator\nBaseband"
Ports [1, 1]
Position [750, 96, 825, 144]
DropShadow on
SourceBlock "commdigbbndpm2/BPSK\nModulator\nBaseband"
SourceType "BPSK Modulator Baseband"
ShowPortLabels on
Ph "0"
numSamp "1"
}
Block {
BlockType SubSystem
Name "Bernoulli Random\nBinary Generator"
Ports [0, 1]
Position [25, 98, 105, 142]
DropShadow on
AncestorBlock "commrandsrc2/Bernoulli Binary\nGenerator"
TreatAsAtomicUnit off
MinAlgLoopOccurrences off
RTWSystemCode "Auto"
MaskType "Bernoulli Binary Generator"
MaskDescription "Generate a Bernoulli random binary number. \nT"
"o generate a vector output, specify the probability as a vector."
MaskHelp "helpview(commbhelp)"
MaskPromptString "Probability of a zero:|Initial seed:|Sample tim"
"e:|Frame-based outputs|Samples per frame:|Interpret vector parameters as 1-D|"
"Output data type:"
MaskStyleString "edit,edit,edit,checkbox,edit,checkbox,popup(boo"
"lean|int8|uint8|int16|uint16|int32|uint32|single|double)"
MaskTunableValueString "on,on,on,on,on,on,on"
MaskCallbackString "|||commblkbernoullisrc2(gcb,'cbFrameBased');||c"
"ommblkbernoullisrc2(gcb,'cbOrient');|commblkbernoullisrc2(gcb,'cbOutDataType'"
");"
MaskEnableString "on,on,on,on,off,on,on"
MaskVisibilityString "on,on,on,on,on,on,on"
MaskToolTipString "on,on,on,on,on,on,on"
MaskVarAliasString ",,,,,,"
MaskVariables "P=@1;seed=@2;Ts=@3;frameBased=@4;sampPerFrame=@"
"5;orient=@6;outDataType=@7;"
MaskInitialization "if (frameBased & sampPerFrame > 1)\n dsp"
"_sampFrame = sampPerFrame;\nelse\n dsp_sampFrame = 1;\nend;\n[P, seed,"
" eStr] = commblkbernoullisrc2(gcb,'init');\nif (eStr.ecode == 1)\n error(e"
"Str.emsg);\nend;"
MaskDisplay "plot(0,0,100,100,[95 5 10 10 10 reshape(([85*[0"
":1/15:1-1/15]+10; 85*[1/15:1/15:1]+10]),1,30)],[75 75 75 70 95 90 90 90 90 80"
" 80 80 80 90 90 80 80 80 80 90 90 90 90 80 80 80 80 90 90 90 90 80 80 90 90])"
"; \ndisp('\\nBernoulli\\nBinary')"
MaskSelfModifiable on
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
MaskValueString "0.5|435345|1|off|300|off|double"
MaskTabNameString ",,,,,,"
System {
Name "Bernoulli Random\nBinary Generator"
Location [87, 671, 621, 843]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
Block {
BlockType Reference
Name "DSP Constant"
Ports [0, 1]
Position [65, 105, 100, 135]
SourceBlock "dspsrcs4/DSP\nConstant"
SourceType "DSP Constant"
ShowPortLabels on
Value "P"
SampleMode "Discrete"
discreteOutput "Sample-based (interpret vectors as 1-D)"
continuousOutput "Sample-based"
sampTime "inf"
framePeriod "inf"
additionalParams off
allowOverrides on
dataType "double"
isSigned on
wordLen "16"
udDataType "sfix(16)"
fracBitsMode "Best precision"
numFracBits "15"
InterpretAs1D "on"
Ts "inf"
FramebasedOutput "off"
}
Block {
BlockType Reference
Name "Frame Status Conversion"
Ports [1, 1]
Position [240, 61, 305, 99]
ShowName off
SourceBlock "dspobslib/Frame Status\nConversion"
SourceType "Frame Status Conversion"
ShowPortLabels off
growRefPort off
outframe "Sample-based"
}
Block {
BlockType Reference
Name "Random Source"
Ports [0, 1]
Position [65, 26, 100, 64]
Diagnostics "AllowInheritedTsInSrc"
SourceBlock "dspsrcs4/Random\nSource"
SourceType "Random Source"
SrcType "Uniform"
NormMethod "Ziggurat"
CltLength "12"
MinVal "0"
MaxVal "1"
MeanVal "0"
VarVal "1"
RepMode "Specify seed"
rawSeed "seed"
IsInherit off
SampMode "Discrete"
SampTime "Ts"
SampFrame "dsp_sampFrame"
DataType "Double"
OutComplex "Real"
}
Block {
BlockType RelationalOperator
Name "Relational Operator"
Position [170, 62, 200, 93]
ShowName off
Operator ">"
LogicOutDataTypeMode "Specify via dialog"
LogicDataType "float('double')"
}
Block {
BlockType Reference
Name "Reshape"
Ports [1, 1]
Position [340, 68, 370, 92]
ShowName off
SourceBlock "simulink/Math\nOperations/Reshape"
SourceType "Reshape"
OutputDimensionality "1-D array"
OutputDimensions "[sampPerFrame,max(length(P),length(seed))]"
}
Block {
BlockType Outport
Name "Out1"
Position [405, 73, 435, 87]
ShowName off
IconDisplay "Port number"
BusOutputAsStruct off
}
Line {
SrcBlock "Random Source"
SrcPort 1
Points [50, 0]
DstBlock "Relational Operator"
DstPort 1
}
Line {
SrcBlock "DSP Constant"
SrcPort 1
Points [50, 0]
DstBlock "Relational Operator"
DstPort 2
}
Line {
SrcBlock "Relational Operator"
SrcPort 1
DstBlock "Frame Status Conversion"
DstPort 1
}
Line {
SrcBlock "Reshape"
SrcPort 1
DstBlock "Out1"
DstPort 1
}
Line {
SrcBlock "Frame Status Conversion"
SrcPort 1
DstBlock "Reshape"
DstPort 1
}
}
}
Block {
BlockType Reference
Name "Convolutional \nEncoder"
Ports [1, 1]
Position [195, 95, 290, 145]
DropShadow on
SourceBlock "commcnvcod2/Convolutional\nEncoder"
SourceType "Convolutional Encoder"
trellis "poly2trellis(7, [133 171])"
reset "None"
}
Block {
BlockType Reference
Name "Decoded_bit"
Description "Sign Binary Fractionnal"
Ports [1, 1]
Position [200, 517, 265, 533]
Orientation "left"
SourceBlock "bus_alteradspbuilder/Output"
SourceType "AltBus AlteraBlockSet"
sgn "Single Bit"
nodetype "Output Port"
bwl "1"
bwr "0"
sat off
rnd off
bp off
mask_cst "0"
LocPin "any"
cst "0"
modulename "Output"
nSgCpl "0"
}
Block {
BlockType Demux
Name "Demux"
Ports [1, 2]
Position [595, 445, 605, 525]
Orientation "left"
BackgroundColor "black"
ShowName off
Outputs "2"
DisplayOption "bar"
}
Block {
BlockType Reference
Name "Depuncture"
Ports [1, 1]
Position [770, 471, 840, 499]
Orientation "left"
DropShadow on
SourceBlock "commsequence2/Insert Zero"
SourceType "Insert Zero"
insertZeroVector "comb_CA_CB'"
}
Block {
BlockType Display
Name "Display"
Ports [1]
Position [570, 296, 665, 364]
DropShadow on
Decimation "1"
}
Block {
BlockType Reference
Name "DocBlock"
Ports []
Position [27, 570, 67, 609]
ShowName off
UserDataPersistent on
UserData "DataTag0"
SourceBlock "simulink/Model-Wide\nUtilities/DocBlock"
SourceType "DocBlock"
ShowPortLabels on
DocumentType "Text"
}
Block {
BlockType Reference
Name "Error Rate Calculation"
Ports [2, 1]
Position [290, 304, 385, 351]
DropShadow on
SourceBlock "commsink2/Error Rate\nCalculation"
SourceType "Error Rate Calculation"
N "0"
st_delay "4*tb_length + 29 + max(size(CA))"
cp_mode "Entire frame"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -