⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds_uwb200msys.mdl

📁 DS-UWB的仿真框图
💻 MDL
📖 第 1 页 / 共 4 页
字号:
	  Position		  [285, 86, 330, 119]
	  InputSameDT		  off
	}
	Block {
	  BlockType		  Reference
	  Name			  "Signal From\nWorkspace1"
	  Ports			  [0, 1]
	  Position		  [130, 28, 215, 62]
	  ShowName		  off
	  SourceBlock		  "dspsrcs4/Signal From\nWorkspace"
	  SourceType		  "Signal From Workspace"
	  X			  "[(1:N)*0+1]"
	  Ts			  "xtcs.Tb"
	  nsamps		  "1"
	  OutputAfterFinalValue	  "Setting to zero"
	}
	Block {
	  BlockType		  Reference
	  Name			  "Unipolar to\nBipolar\nConverter"
	  Ports			  [1, 1]
	  Position		  [150, 86, 230, 134]
	  ShowName		  off
	  SourceBlock		  "commutil2/Unipolar to\nBipolar\nConverter"
	  SourceType		  "Unipolar to Bipolar Converter"
	  M			  "2"
	  polarity		  "Positive"
	}
	Block {
	  BlockType		  Outport
	  Name			  "BiPloar"
	  Position		  [380, 98, 410, 112]
	}
	Block {
	  BlockType		  Outport
	  Name			  "Single"
	  Position		  [385, 153, 415, 167]
	  Port			  "2"
	}
	Line {
	  SrcBlock		  "Signal From\nWorkspace1"
	  SrcPort		  1
	  Points		  [35, 0; 0, 50]
	  DstBlock		  "Product"
	  DstPort		  1
	}
	Line {
	  SrcBlock		  "Product"
	  SrcPort		  1
	  DstBlock		  "BiPloar"
	  DstPort		  1
	}
	Line {
	  SrcBlock		  "Bernoulli Binary\nGenerator"
	  SrcPort		  1
	  Points		  [15, 0]
	  Branch {
	    DstBlock		    "Unipolar to\nBipolar\nConverter"
	    DstPort		    1
	  }
	  Branch {
	    Points		    [0, 50]
	    DstBlock		    "Single"
	    DstPort		    1
	  }
	}
	Line {
	  SrcBlock		  "Unipolar to\nBipolar\nConverter"
	  SrcPort		  1
	  DstBlock		  "Product"
	  DstPort		  2
	}
      }
    }
    Block {
      BlockType		      SubSystem
      Name		      "3脉冲触发"
      Ports		      [0, 1]
      Position		      [235, 17, 315, 63]
      ShowName		      off
      FontSize		      12
      TreatAsAtomicUnit	      off
      MaskType		      "UWB基本脉冲产生器"
      MaskDescription	      "要输入的参数有:\n脉宽参数Tp=pi*tao一般设定脉冲"
"总宽度Tp*2=Tc(码片宽度)\n抽样精度参数K*Ts是和UWB信道滤波精度(时间分辨率)的整"
"倍数\nPlus.Signal输出到工作区间先进行单脉冲能量归一化/norm(Signal)\n波形触发"
"输出时又做了扩频波形能量归一化/扩频码长\n若幅度参数A定义为modulation.Amp,则仿"
"真结果为Q函数\n"
      MaskPromptString	      "脉冲类型|波形幅度因子A,使触发波形=A*Modulation"
".Amp*Plus.Signal|高斯波形采样精度k*Ts|单脉冲持续时间"
      MaskStyleString	      "popup(Gaus5),edit,edit,edit"
      MaskTunableValueString  "on,on,on,on"
      MaskCallbackString      "|||"
      MaskEnableString	      "on,on,on,on"
      MaskVisibilityString    "on,on,on,on"
      MaskToolTipString	      "on,on,on,on"
      MaskVarAliasString      ",,,"
      MaskVariables	      "pulstype=@1;A=@2;KTs=@3;Tc=@4;"
      MaskInitialization      "Pn=evalin('base','Pn');\nPlus.A=A;\nPlus.t=0:KT"
"s:Tc-KTs;\n%Plus.Signal= Gmonopuls(Plus.t-Tp,1/Tp);\nsigma=0.0528;\ntsgm=(Plu"
"s.t-Tc/2)/sigma;\nPlus.Signal=(-15.*tsgm+10.*tsgm.^3-tsgm.^5).*exp(-tsgm.^2./"
"2);\nPlus.Signallen=length(Plus.Signal);\nPlus.Signal=Plus.Signal/norm(Plus.S"
"ignal);\nfor i=1:length(Pn.Code)\n    Plus.PnWave(((i-1)*length(Plus.Signal)+"
"1):(i*length(Plus.Signal)))=Plus.Signal*Pn.Code(i);\nend\nPlus.PnWave=Plus.Pn"
"Wave/sqrt(length(Pn.Code));\nassignin('base', 'Plus', Plus);\n"
      MaskDisplay	      "disp('UWB\\n脉冲产生器');"
      MaskIconFrame	      on
      MaskIconOpaque	      on
      MaskIconRotate	      "none"
      MaskIconUnits	      "autoscale"
      MaskValueString	      "Gaus5|1|xtcs.Ts|xtcs.Tc"
      System {
	Name			"3脉冲触发"
	Location		[176, 323, 988, 572]
	Open			off
	ModelBrowserVisibility	on
	ModelBrowserWidth	200
	ScreenColor		"white"
	PaperOrientation	"landscape"
	PaperPositionMode	"auto"
	PaperType		"A4"
	PaperUnits		"centimeters"
	ZoomFactor		"100"
	Block {
	  BlockType		  Gain
	  Name			  "Gain1"
	  Position		  [335, 125, 370, 155]
	  Gain			  "A"
	}
	Block {
	  BlockType		  Reference
	  Name			  "Signal From\nWorkspace"
	  Ports			  [0, 1]
	  Position		  [165, 121, 270, 159]
	  SourceBlock		  "dspsrcs4/Signal From\nWorkspace"
	  SourceType		  "Signal From Workspace"
	  X			  "Plus.PnWave"
	  Ts			  "KTs"
	  nsamps		  "1"
	  OutputAfterFinalValue	  "Cyclic repetition"
	}
	Block {
	  BlockType		  Outport
	  Name			  "outWave"
	  Position		  [450, 133, 480, 147]
	}
	Line {
	  SrcBlock		  "Gain1"
	  SrcPort		  1
	  DstBlock		  "outWave"
	  DstPort		  1
	}
	Line {
	  SrcBlock		  "Signal From\nWorkspace"
	  SrcPort		  1
	  DstBlock		  "Gain1"
	  DstPort		  1
	}
      }
    }
    Block {
      BlockType		      SubSystem
      Name		      "4数据调制"
      Ports		      [2, 1]
      Position		      [385, 26, 445, 84]
      NamePlacement	      "alternate"
      ShowName		      off
      FontName		      "Arial"
      FontSize		      12
      TreatAsAtomicUnit	      off
      MaskType		      "数据调制方式"
      MaskDescription	      "输入到工作区的参数有:\n1、Modulation.Cross 确"
"定判决门限的参数  BPSK:0  OOK:0.5\n二元信号检测错误只有WAGN时系统的误码率: \n"
"     Q{ sqrt [Amp^2  *0.5*(1+k)* 0.5*(1-rou) * 1/sigma] }\n2、Modulation.Amp "
"  若归一化触发发送波形的幅度为Amp且:\n      Amp^2  *0.5*(1+k)* 0.5*(1-rou)=1"
",此时只经过WAGN信道,则误码仪输出为Q函数Q(SNR),其中rou取值BPSK:-1;OOK:0,k的"
"取值BPSK:1;OOk:0;其中SNR为WGAN信道中的信噪比参数SNR\n理解相同的误码性能BPSK"
"平均功率是OOK方式的1/2\n"
      MaskPromptString	      "数据调制方式method"
      MaskStyleString	      "popup(OOK|BPSK)"
      MaskTunableValueString  "on"
      MaskEnableString	      "on"
      MaskVisibilityString    "on"
      MaskToolTipString	      "on"
      MaskVariables	      "method=@1;"
      MaskInitialization      "if method==1\n	Modulation.Cross=.5;%判决"
"门限参数\n	Modulation.A=2;\nelse\n    Modulation.Cross=0;\n	Mod"
"ulation.A=1;\nend\nassignin('base','Modulation',Modulation);"
      MaskDisplay	      "disp( '数据调制\\n方式选择')"
      MaskIconFrame	      on
      MaskIconOpaque	      on
      MaskIconRotate	      "none"
      MaskIconUnits	      "autoscale"
      MaskValueString	      "BPSK"
      System {
	Name			"4数据调制"
	Location		[202, 82, 1014, 743]
	Open			off
	ModelBrowserVisibility	on
	ModelBrowserWidth	113
	ScreenColor		"white"
	PaperOrientation	"landscape"
	PaperPositionMode	"auto"
	PaperType		"A4"
	PaperUnits		"centimeters"
	ZoomFactor		"100"
	Block {
	  BlockType		  Inport
	  Name			  "In1"
	  Position		  [20, 63, 50, 77]
	}
	Block {
	  BlockType		  Inport
	  Name			  "In3"
	  Position		  [20, 213, 50, 227]
	  Port			  "2"
	}
	Block {
	  BlockType		  Constant
	  Name			  "Constant"
	  Position		  [80, 131, 120, 169]
	  ShowName		  off
	  Value			  "method"
	}
	Block {
	  BlockType		  Gain
	  Name			  "Gain"
	  Position		  [510, 135, 540, 165]
	  Gain			  "Modulation.A"
	}
	Block {
	  BlockType		  Ground
	  Name			  "Ground1"
	  Position		  [330, 255, 350, 275]
	  Orientation		  "up"
	  NamePlacement		  "alternate"
	  ShowName		  off
	}
	Block {
	  BlockType		  Product
	  Name			  "Product"
	  Ports			  [2, 1]
	  Position		  [320, 61, 365, 94]
	  InputSameDT		  off
	}
	Block {
	  BlockType		  Switch
	  Name			  "Switch1"
	  Position		  [450, 135, 480, 165]
	  Criteria		  "u2 > Threshold"
	  Threshold		  "1.5"
	  InputSameDT		  off
	}
	Block {
	  BlockType		  Switch
	  Name			  "Switch2"
	  Position		  [385, 205, 415, 235]
	  Criteria		  "u2 > Threshold"
	  InputSameDT		  off
	}
	Block {
	  BlockType		  Outport
	  Name			  "Out1"
	  Position		  [565, 143, 595, 157]
	}
	Line {
	  SrcBlock		  "In3"
	  SrcPort		  1
	  Points		  [150, 0]
	  Branch {
	    DstBlock		    "Switch2"
	    DstPort		    2
	  }
	  Branch {
	    Points		    [0, -135]
	    DstBlock		    "Product"
	    DstPort		    2
	  }
	}
	Line {
	  SrcBlock		  "Constant"
	  SrcPort		  1
	  DstBlock		  "Switch1"
	  DstPort		  2
	}
	Line {
	  SrcBlock		  "Switch2"
	  SrcPort		  1
	  Points		  [0, -60]
	  DstBlock		  "Switch1"
	  DstPort		  3
	}
	Line {
	  SrcBlock		  "Ground1"
	  SrcPort		  1
	  Points		  [0, -20]
	  DstBlock		  "Switch2"
	  DstPort		  3
	}
	Line {
	  SrcBlock		  "Gain"
	  SrcPort		  1
	  DstBlock		  "Out1"
	  DstPort		  1
	}
	Line {
	  SrcBlock		  "In1"
	  SrcPort		  1
	  Points		  [195, 0]
	  Branch {
	    Points		    [0, 140]
	    DstBlock		    "Switch2"
	    DstPort		    1
	  }
	  Branch {
	    DstBlock		    "Product"
	    DstPort		    1
	  }
	}
	Line {
	  SrcBlock		  "Switch1"
	  SrcPort		  1
	  DstBlock		  "Gain"
	  DstPort		  1
	}
	Line {
	  SrcBlock		  "Product"
	  SrcPort		  1
	  Points		  [50, 0; 0, 60]
	  DstBlock		  "Switch1"
	  DstPort		  1
	}
      }
    }
    Block {
      BlockType		      SubSystem
      Name		      "5UWB信道"
      Ports		      [1, 1]
      Position		      [495, 140, 555, 190]
      Orientation	      "down"
      NamePlacement	      "alternate"
      ShowName		      off
      Priority		      "2"
      AncestorBlock	      "UWBlib/UWB Channel"
      FontSize		      12
      TreatAsAtomicUnit	      off
      MaskType		      "UWB Channel"
      MaskDescription	      " IEEE 802.15.3a channel model.  \n此处噪声输出"
"是相对于信号能量是1的情况,即\nSNR=10*log10(1/sigma),发送波形幅度为Modulatoin"
".Amp时,对应的误码率为\nQ{sqrt [1*1/sigma] }=Q{sqrt(dbinv(SNR))\n故发送波形幅"
"度为A*Modulatoin.Amp时,对应误码率为 Q{sqrt [A^2*1*1/sigma] }=Q{sqrt(dbinv[20"
"*log10(K)+0+SNR)])}\n即这里的参数设置成SNR=SNR'-20*log10(Plus.A)时,对应误码"
"仪的输出是Q(SNR'),如SNR'=1.2753,误码仪输出Q(sqrt(dbinv(SNR')))=0.1234,SNR'=7"
".3335,输出为0.01\n理解为噪声增大了相同的功率,误码率不变\n"
      MaskPromptString	      "Channel model:|Channel index (1 to 100):|WAGN|"
"归一化白噪声信噪比|时变信道仿真"
      MaskStyleString	      "popup(CM1|CM2|CM3|CM4|IdeaChan),edit,checkbox,e"
"dit,checkbox"
      MaskTunableValueString  "on,on,on,on,on"
      MaskCallbackString      "||||"
      MaskEnableString	      "on,on,on,on,on"
      MaskVisibilityString    "on,on,on,on,on"
      MaskToolTipString	      "on,on,on,on,on"
      MaskVarAliasString      ",,,,"
      MaskVariables	      "m=@1;ch_idx=@2;WAGN=@3;SNR=@4;Timevariability=@"
"5;"
      MaskInitialization      "Plus=evalin('base','Plus');\nxtcs=evalin('base'"
",'xtcs');\n%%load b.mat;%(信道估计测试码如:Bonulliseed=24680长度为512)\n%load"
" bpn.mat;\n%b=bpn;\nb=2*randint(512,1)-1;\nChannel.WAGN=WAGN;\nChannel.SNR=SN"
"R;\n\nif m~=5\n%读入cm_x信道文件\nload(strcat('hNcm',char(m+48),'_imr'));\n%"
"设定第一簇的到达时间为0(理解这里并不是假定第一能量多径时延为0)\ni=1:length(id"
"x);    h(idx(i)-min(idx)+1)=hK(i);\nChannel.h = h';\n%function ChanEstimation"
"=(b,h)\n%按64/5ns过抽样精度进行信道估计,输入参数b是测试PN序列、列向量\n%参数p"
"是Tb的抽样精度p=64,测试Pn码长度PnLen=512,Taps是RAKE捕获的多径数,均衡器抽头数="
"2*2+1=5\nE.PnLen=length(b);\nE.p=64;\n%E.Taps=10;\n%E.eq=5;\nE.Taps=xtcs.Taps"
";\nE.eq=xtcs.Equas;\n%数据调制,输出TxWave\nfor i=1:E.PnLen;\nTxWave(((i-1)*E"
".p+1):(i*E.p))=Plus.PnWave*b(i);\nend\n%TxWave经UWB信道多径信道、WAGN高斯信道"
",输出r\nr=conv(TxWave,Channel.h);\nif Channel.WAGN==1\nsigma=sqrt(10^(-0.1*C"
"hannel.SNR));\nr=r+normrnd(0,sigma,1,length(r));\nend;\n%根据r求解能量响应y\n"
"y=conv(r,fliplr(Plus.PnWave));\n%信道估计的时间为(Mlen-512)*5ns即(Mlen-512)*6"
"4个响应值\n%估值响应矩阵H为k*p矩阵,输出的是单个脉冲的能量响应估值rh;\nMlen=fl"
"oor(length(y)/E.p);\nk=Mlen-E.PnLen;\n%y写成Mlen*p的矩阵Y形式\nfor i=1:Mlen;"
"\nfor j=1:E.p\n    Y(i,j)=y((i-1)*E.p+j);\nend\nend\n%将测试码写成矩阵的形式M"
"len*k的形式\nb((E.PnLen+1):Mlen)=0;\nfor i=1:k;\nfor j=i:Mlen\n    B(i,j)=b(j"
"-i+1);\nend\nend\nb((E.PnLen+1):end)=[];\n%得到k*p能量响应矩阵H,求出其向量形"
"式\n%H=inv(B*B')*(B*Y)/E.PnLen;\nH=B*Y/E.PnLen;\nfor i=1:k\nfor j=1:E.p\n    "
" rh((i-1)*E.p+j,1)=H(i,j);\nend\nend\n%找到响应中的各极值点,输出为顺序的时间"
"索引SigPath\n%(理解在过采样精度太高时滤波器输出rh也有一定连续性,不取极值点的"
"结果可能多径捕获在同一径的连续采样点上)\n%我们需要适中的采样精度,这需要从相"
"关器的输出结果在连续抽样点的连续情况来观察,没有必要连续但又不能丢掉信息\n% %"
"对所在极值点的能量响应幅度值排序,取Taps=10个最大值对应的时间\nabsrh=abs(rh);"
"\n%absrh=rh;%这句话是只捕获正的多径\nk=1;\nfor i=length(Plus.PnWave):length(r"
"h)-1\n    if (absrh(i)>absrh(i-1))&&(absrh(i)>absrh(i+1))\n    SigPath(k)=i;"
"\n    k=k+1;\n    end         \nend\nSigAmp=rh(SigPath)';\n[sort_tmp,sort_ix]"
" = sort(abs(SigAmp));   % sort in ascending time order\nSigPath = SigPath(sor"
"t_ix((end-E.Taps+1):end));\n%捕获的多径按到达时间排序\n[sort_tmp,sort_ix] = s"
"ort(SigPath);   % sort in ascending time order\nSigPath = sort_tmp;\nSigAmp=r"
"h(SigPath);\n%利用y和最大参量点索引SigPath,估计RAKE各径权重,输出结果为CoffMMS"
"E\n%并利用估计的权重计算出多径合成的估值(序列码的RAKE值输出),输出为bRakeMMSE"
"和bRakeMR\nfor i=1:E.PnLen;\n    for j=1:E.Taps\n     Y1(i,j)=y((i-1)*E.p+Sig"
"Path(j));\n    end\nend\nCoffMMSE=inv(Y1'*Y1)*(Y1'*b);\n%求解反转扩波形长度为"
"E.p的延时相关序列输出为flipcorr\nhFlipCorr=conv(Plus.PnWave,fliplr(Plus.PnWav"
"e));\ni=1:E.p;\nFlipCorr(i)=hFlipCorr(E.p-i+1);\n%求解捕获多径之间的噪声相关"
"矩阵FlipR\nfor i=1:E.Taps\n    for j=i:E.Taps\n        k=abs(SigPath(j)-SigPa"
"th(i))+1;    \n        if k<=E.p\n        FlipR(i,j)=FlipCorr(k);\n        Fl"
"ipR(j,i)=FlipR(i,j);\n        end\n    end\nend\n%求解CoffWSMR\nCoffWSMR=inv("
"SigAmp'*inv(FlipR)*SigAmp)*SigAmp'*inv(FlipR);\nCoffWSMR=CoffWSMR';\n%求解Cof"
"fEG\nCoffEG=(-(SigAmp<0)+(SigAmp>0));\n%%Rake输出\nbRakeEG=Y1*CoffEG;\nbRakeM"
"R=Y1*SigAmp;%RAKE_MR输出\nbRakeMMSE=Y1*CoffMMSE;%RAKE_MMSE输出\nbRakeWSMR=Y1*"
"CoffWSMR;\n%利用估值的Zb与实际码元的衰减误差来确定均衡系数输出为EquaCoffMMSE"
"和EquaCoffMR\n%并利用估值计算均衡器输出bEquaMMSE和bEquaMR\nZbEG=[zeros(floor("
"E.eq/2),1);bRakeEG;zeros(floor(E.eq/2),1)];\nZbMR=[zeros(floor(E.eq/2),1);bRa"
"keMR;zeros(floor(E.eq/2),1)];\nZbMMSE=[zeros(floor(E.eq/2),1);bRakeMMSE;zeros"
"(floor(E.eq/2),1)];\nZbWSMR=[zeros(floor(E.eq/2),1);bRakeWSMR;zeros(floor(E.e"
"q/2),1)];\nfor i=1:E.PnLen\n    for j=1:E.eq\n   ZEG(i,j)=ZbEG(i+j-1);\n   ZM"
"R(i,j)=ZbMR(i+j-1);	\n   ZMMSE(i,j)=ZbMMSE(i+j-1);\n   ZWSMR(i,j)=ZbWS"
"MR(i+j-1);\n   end\nend\nEquaCoffEG=inv(ZEG'*ZEG)*(ZEG'*b);\nEquaCoffMR=inv(Z"
"MR'*ZMR)*(ZMR'*b);\nEquaCoffMMSE=inv(ZMMSE'*ZMMSE)*(ZMMSE'*b);\nEquaCoffWSMR="
"inv(ZWSMR'*ZWSMR)*(ZWSMR'*b);\n\n%结果输出ChanEsti结构\nChannel.SigPath=SigPa"
"th;\nChannel.CoffEG=CoffEG;\nChannel.CoffMR=SigAmp;\nChannel.CoffMMSE=CoffMMS"
"E;\nChannel.CoffWSMR=CoffWSMR;\nChannel.EquaCoffEG=EquaCoffEG;\nChannel.EquaC"
"offMR=EquaCoffMR;\nChannel.EquaCoffMMSE=EquaCoffMMSE;\nChannel.EquaCoffWSMR=E"
"quaCoffWSMR;\nChannel.SNR=SNR-10*log10(mean(Channel.CoffMR.^2));\nend\n\nif m"
"==5\n	Channel.h=1;\n	Channel.SigPath=(1:10)*0+length(Plus.PnWav"
"e);\n	Channel.CoffEG=(1:10)*0+1;\n	Channel.CoffMR=(1:10)*0+1;\n"
"	Channel.EquaCoffEG=[0,0,1,0,0];\n    Channel.SNR=SNR;\nend\n\n%10*log"
"10(norm(Channel.CoffMR)^2/xtcs.Taps);\nassignin('base','Channel',Channel);\n"
      MaskDisplay	      "disp('UWB\\nChannel');"
      MaskIconFrame	      on
      MaskIconOpaque	      on
      MaskIconRotate	      "none"
      MaskIconUnits	      "autoscale"
      MaskValueString	      "CM1|1|on|7.3335|off"
      System {
	Name			"5UWB信道"
	Location		[80, 82, 892, 743]
	Open			off
	ModelBrowserVisibility	on
	ModelBrowserWidth	200
	ScreenColor		"white"
	PaperOrientation	"landscape"
	PaperPositionMode	"auto"
	PaperType		"A4"
	PaperUnits		"centimeters"
	ZoomFactor		"100"
	Block {
	  BlockType		  Inport
	  Name			  "In1"
	  Position		  [45, 143, 75, 157]
	}
	Block {
	  BlockType		  Reference
	  Name			  "AWGN\nChannel"
	  Ports			  [2, 1]
	  Position		  [345, 142, 405, 178]
	  ShowName		  off
	  SourceBlock		  "commchan2/AWGN\nChannel"
	  SourceType		  "AWGN Channel"
	  seed			  "74867"
	  noiseMode		  "Variance from port"
	  EsNodB		  "1"
	  SNRdB			  "snr"
	  Ps			  "1"
	  Tsym			  "3.125e-7/990"
	  variance		  "1"
	}
	Block {
	  BlockType		  Constant
	  Name			  "Constant"
	  Position		  [170, 266, 210, 304]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -