📄 vco_phase_noise.mdl
字号:
DstBlock "RMS1"
DstPort 1
}
Branch {
Points [0, 125]
DstBlock "Spectrum Estimate"
DstPort 1
}
}
Line {
SrcBlock "Math\nFunction1"
SrcPort 1
DstBlock "Carrier Plus Noise Power (1 Ohm)"
DstPort 1
}
Line {
SrcBlock "Up for dBw\nDown for dBc /Hz"
SrcPort 1
DstBlock "dBc per Hz"
DstPort 1
}
Line {
SrcBlock "Spectrum Estimate"
SrcPort 3
Points [45, 0]
DstBlock "Total Power Watts in 1 Ohm"
DstPort 1
}
Line {
SrcBlock "Spectrum Estimate"
SrcPort 2
Points [0, 0; 60, 0]
Branch {
DstBlock "Up for dBw\nDown for dBc /Hz"
DstPort 2
}
Branch {
Points [0, 80]
DstBlock "To Workspace"
DstPort 1
}
}
Line {
SrcBlock "Spectrum Estimate"
SrcPort 1
DstBlock "Up for dBw\nDown for dBc /Hz"
DstPort 1
}
Line {
SrcBlock "RMS1"
SrcPort 1
DstBlock "Math\nFunction1"
DstPort 1
}
Annotation {
Name "cosine"
Position [47, 76]
}
Annotation {
Name "sine"
Position [46, 203]
}
}
}
Block {
BlockType SubSystem
Name "VCO"
Ports [1, 1]
Position [145, 48, 290, 102]
TreatAsAtomicUnit off
MinAlgLoopOccurrences off
RTWSystemCode "Auto"
MaskPromptString "Single Sided Noise BW (Hz)|Phase Noise Level (r"
"ms rad)|Initial Phase (rad)|Input Sensitivity (Hz/Volt)|Oscillation freq (Hz)"
"|Output amplitude (Volt)"
MaskStyleString "edit,edit,edit,edit,edit,edit"
MaskTunableValueString "on,on,on,on,on,on"
MaskCallbackString "|||||"
MaskEnableString "on,on,on,on,on,on"
MaskVisibilityString "on,on,on,on,on,on"
MaskToolTipString "on,on,on,on,on,on"
MaskVarAliasString ",,,,,"
MaskVariables "BW=@1;Nrms=@2;Ph=@3;Kc=@4;Fc=@5;Ac=@6;"
MaskInitialization "pi2=2*pi;"
MaskDisplay "disp('VCO with \\n 1/F phase noise')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
MaskValueString "2e6|.01|0|1e6|49e6|1"
MaskTabNameString ",,,,,"
System {
Name "VCO"
Location [102, 74, 701, 320]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
Block {
BlockType Inport
Name "in_1"
Position [15, 20, 35, 40]
ShowName off
Port "1"
IconDisplay "Port number"
LatchInput off
Port {
PortNumber 1
Name "control V"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
ShowSigGenPortName on
}
}
Block {
BlockType BusCreator
Name "Bus\nCreator"
Ports [2, 1]
Position [340, 31, 345, 69]
ShowName off
DialogController "Simulink.DDGSource_Bus"
Inputs "2"
DisplayOption "bar"
}
Block {
BlockType Constant
Name "Carrier\nfrequency"
Position [115, 40, 135, 60]
ShowName off
Value "Fc"
}
Block {
BlockType Constant
Name "Carrier\nfrequency1"
Position [240, 130, 260, 150]
ShowName off
Value "Ph"
}
Block {
BlockType Constant
Name "Carrier\nfrequency2"
Position [45, 114, 90, 136]
ShowName off
Value "Nrms"
}
Block {
BlockType Constant
Name "Carrier\nfrequency3"
Position [65, 155, 85, 175]
ShowName off
Value "0"
}
Block {
BlockType SubSystem
Name "Modulo\nintegrator"
Ports [1, 1]
Position [225, 18, 305, 62]
ShowName off
TreatAsAtomicUnit off
MinAlgLoopOccurrences off
RTWSystemCode "Auto"
MaskType "Modulo integrator"
MaskDescription "When the absolute value of the state exceed"
"s the modulo bound, the state is reset to be the remainder of the state divid"
"ed by the modulo bound."
MaskHelp "This block calculate the integration of the"
" input signal. The absolute value of this integrator will not exceed the spec"
"ified module bound. The state value is reset to be the remainder of the state"
" divided by the modulo bound. This block can only be used for scale value cal"
"culation. This block is a continuous-time integration block."
MaskPromptString "Modulo bound:|Initial state:"
MaskStyleString "edit,edit"
MaskTunableValueString "on,on"
MaskCallbackString "|"
MaskEnableString "on,on"
MaskVisibilityString "on,on"
MaskToolTipString "on,on"
MaskVarAliasString ","
MaskVariables "modu=@1;init=@2;"
MaskDisplay "disp('Modulo\\nintegrator')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
MaskValueString "1|0"
MaskTabNameString ","
System {
Name "Modulo\nintegrator"
Location [360, 100, 862, 224]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
Block {
BlockType Inport
Name "in_1"
Position [150, 15, 170, 35]
ShowName off
Port "1"
IconDisplay "Port number"
LatchInput off
}
Block {
BlockType Clock
Name "Clock"
Position [25, 50, 45, 70]
Decimation "10"
}
Block {
BlockType Memory
Name "Memory"
Position [310, 60, 360, 90]
Orientation "left"
ShowName off
X0 "init"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
}
Block {
BlockType Memory
Name "Memory1"
Position [75, 80, 125, 110]
NamePlacement "alternate"
ShowName off
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
}
Block {
BlockType Product
Name "Product"
Ports [2, 1]
Position [215, 20, 235, 40]
RndMeth "Floor"
}
Block {
BlockType Sum
Name "Sum"
Ports [2, 1]
Position [275, 25, 295, 45]
ShowName off
}
Block {
BlockType Sum
Name "Sum1"
Ports [2, 1]
Position [170, 55, 190, 75]
ShowName off
Inputs "+-"
}
Block {
BlockType Fcn
Name "module"
Position [315, 24, 405, 46]
ShowName off
Expr "rem(u[1],modu)"
}
Block {
BlockType Outport
Name "out_1"
Position [450, 25, 470, 45]
ShowName off
IconDisplay "Port number"
BusOutputAsStruct off
InitialOutput "0"
}
Line {
SrcBlock "Memory1"
SrcPort 1
Points [0, -25]
DstBlock "Sum1"
DstPort 2
}
Line {
SrcBlock "Clock"
SrcPort 1
Points [5, 0]
Branch {
Points [0, 35]
DstBlock "Memory1"
DstPort 1
}
Branch {
DstBlock "Sum1"
DstPort 1
}
}
Line {
SrcBlock "in_1"
SrcPort 1
DstBlock "Product"
DstPort 1
}
Line {
SrcBlock "Sum1"
SrcPort 1
Points [0, -30]
DstBlock "Product"
DstPort 2
}
Line {
SrcBlock "Memory"
SrcPort 1
Points [-45, 0]
DstBlock "Sum"
DstPort 2
}
Line {
SrcBlock "Product"
SrcPort 1
DstBlock "Sum"
DstPort 1
}
Line {
SrcBlock "Sum"
SrcPort 1
DstBlock "module"
DstPort 1
}
Line {
SrcBlock "module"
SrcPort 1
Points [10, 0]
Branch {
DstBlock "out_1"
DstPort 1
}
Branch {
Points [0, 40]
DstBlock "Memory"
DstPort 1
}
}
}
}
Block {
BlockType RelationalOperator
Name "Relational\nOperator"
Position [115, 117, 145, 148]
Operator ">"
}
Block {
BlockType Gain
Name "Sensitivity"
Position [95, 16, 135, 44]
ShowName off
Gain "Kc"
}
Block {
BlockType Sum
Name "Sum"
Ports [2, 1]
Position [170, 20, 195, 60]
ShowName off
}
Block {
BlockType Sum
Name "Sum1"
Ports [2, 1]
Position [285, 130, 310, 170]
ShowName off
}
Block {
BlockType SubSystem
Name "conditional noise gen"
Ports [0, 1, 1]
Position [195, 155, 235, 215]
TreatAsAtomicUnit on
MinAlgLoopOccurrences off
RTWSystemCode "Auto"
System {
Name "conditional noise gen"
Location [150, 251, 750, 507]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
Block {
BlockType EnablePort
Name "Enable"
Ports []
Position [430, 20, 450, 40]
}
Block {
BlockType Reference
Name "Digital Filter"
Ports [1, 1]
Position [115, 88, 200, 142]
DialogController "dspDDGCreate"
DialogControllerArgs "DataTag3"
SourceBlock "dsparch4/Digital Filter"
SourceType "Digital Filter"
TypePopup "FIR (all zeros)"
IIRFiltStruct "Direct form II transposed"
AllPoleFiltStruct "Direct form"
FIRFiltStruct "Direct form"
CoeffSource "Specify via dialog"
NumCoeffs "f_inv"
DenCoeffs "[1 0.1]"
BiQuadCoeffs "[1 0.3 0.4 1 0.1 0.2]"
LatticeCoeffs "[0.2 0.4]"
denIgnore on
FiltPerSampPopup "One filter per frame"
IC "0"
ICnum "0"
ICden "0"
additionalParams off
allowOverrides on
showCoeff off
firstCoeffMode "Same word length as input"
firstCoeffWordLength "16"
firstCoeffFracLength "15"
secondCoeffMode "Same as numerator"
secondCoeffWordLength "16"
secondCoeffFracLength "15"
thirdCoeffMode "Same as input"
thirdCoeffWordLength "16"
thirdCoeffFracLength "15"
showOut off
outputMode "Same as accumulator"
outputWordLength "16"
outputFracLength "15"
showAcc off
accumMode "Same as product output"
accumWordLength "32"
accumFracLength "30"
showMpy off
prodOutputMode "Same as input"
prodOutputWordLength "32"
prodOutputFracLength "30"
showMem off
memoryMode "Same as accumulator"
memoryWordLength "16"
memoryFracLength "15"
roundingMode "Floor"
overflowMode off
ScaleValues "1"
scaleValueFracLength "14"
tapSumMode "Same as input"
tapSumWordLength "32"
tapSumFracLength "30"
stageIOMode "Same as input"
stageIOWordLength "16"
stageInFracLength "15"
stageOutFracLength "15"
LockScale off
}
Block {
BlockType Reference
Name "RMS"
Ports [1, 1]
Position [300, 172, 375, 208]
SourceBlock "dspstat3/RMS"
SourceType "RMS"
run off
reset_popup "None"
}
Block {
BlockType Display
Name "RMS Phase Noise\nin Radians"
Ports [1]
Position [400, 175, 490, 205]
Decimation "1"
}
Block {
BlockType Reference
Name "Random\nS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -