2024年3月10日发(作者:堵开)
MATLAB源程序清单 第 1 页 共 19 页 源程序清单 这些MATLAB的M文件分为
两部分程序清单A中收录了产生PPM-TH和PAM-DS这两个信号源的所有函数程序
清单B中收录了加性高斯白噪声AWGN信道建模正交和非正交单脉冲PPM-TH接收
机结构以及反极性PAM-DS单脉冲接收机结构仿真所需的所有函数。 程序清单A 函
数1.1 FUNCTION 1.1 : quotbs0101_bitsquot 二进制信号源产生 利用函数
randNM产生二进制值这个函数产生一个N·M的矩阵其元素是均匀分布在0.11.0之间
的随机数。 function bitsbs0101_bitsnumbits bitsrand1numbitsgt0.5 函数1.2
FUNCTION 1.2 : quotbs0101_repcodequot 重复编码器 重复编码器通过下面两个
步骤引入冗余首先把输入流转换为Ns个样本的一串离散的Dirac脉冲然后将转换后
的脉冲序列与长度为Ns个抽样点的离散矩阵滤波器相卷积。 function
repbitsbs0101_repcodebitsNs numbits lengthbits temprectones1Ns
temp1zeros1numbitsNs temp11:Ns:1Nsnumbits-1bits temp2convtemp1temprect
repbitstemp21:Nsnumbits 函数1.3 FUNCTION 1.3 : quotbs0101_THquot TH编码
器 产生TH码序列首先产生一个长度为Np的矢量这个矢量是由随机选取的均匀分
布在区间0Nh-1的整数值组成的然后利用函数floorx对x的元素向下取整。 function
THcodebs0101_THNhNp MATLAB源程序清单 第 2 页 共 19 页 THcode
函数1.4 FUNCTION 1.4 : quotbs0101_2PPM_THquot 2PPM调制
器 该函数由两部分组成第一步将时域上连续的输入值转换成用于仿真的时域上的
离散值。同时为产生的输入信号分配存储空间。第二步是对输入序列的所有比特都
重复主循环。每一个输入比特函数根据TH码和PPM位移计算相应脉冲的位置。主循
环本身由三部分组成第一部分根据均匀脉冲的重复周期来确定脉冲的位置然后加上
TH码所引起的脉冲时间位移最后加上输入比特引起的PPM脉冲位移。 function
PPMTHseqTHseq bs0101_2PPM_THseqfcTcTsdPPMTHcode dt 1 ./ fc 采样周期
framesamples floorTs./dt 样本脉冲重复周期 chipsamples floor Tc./dt 样本总码
片时间 PPMsamples floor dPPM./dt PPM时间位移 THp lengthTHcode TH-编
码周期 totlength framesampleslengthseq PPMTHseqzeros1totlength
THseqzeros1totlength 函数1.5 FUNCTION 1.5 : quotbs0101_waveformquot 脉冲形
成器 该程序产生脉冲波形并计算所产生脉冲的抽样个数OVER分OVER为奇数和
偶数两种情况产生波形。fc 为采样频率Tm为脉冲持续时间tau 为脉冲形成因子。
function w0 bs0101_waveformfcTmtau dt 1 / fc 采样周期 OVER floorTm/dt 脉
冲抽样个数 e modOVER2 kbk floorOVER/2 tmp linspacedtTm/2kbk s
./tau.2. ... ./tau.2 if e OVER为奇数 for k1:lengths ykbk11
MATLAB源程序清单 第 3 页 共 19 页 ykbk1ksk ykbk1-ksk end else OVER为偶
数 for k1:lengths ykbkksk ykbk1-ksk end end E 脉冲能量 w0 y ./ E0.5
能源归一化 for k 1 : lengthseq index 1 k-1framesamples 均匀脉冲位置 kTH
THcode1modk-1THp 引入TH码所引起的脉冲时间位移 index index
kTHchipsamples THseqindex 1 index index PPMsamplesseqk 比特引起的PPM
脉冲位移 PPMTHseqindex 1 end 函数1.6 FUNCTION 1.6 :
quotbs0101_transmitter_2PPM_THquot PPM_TH发射机 该函数由三步组成。步骤
零Step Zero包含要产生的UWB信号的所有特性参数。设置参数G1可以得到图形化输
出。步骤一Step One包含仿真发射链路模块的命令行。为使所得到的信号的长度为
Ts·Ns·numbits卷积得到的超量比特要从最后的矢量中裁剪掉。步骤二Step Two包含
产生图形输出代码。 function bitsTHcodeStxrefbs0101_transmitter_2PPM_TH 步骤
零输入参数 Pow -30 平均发射功率dBm fc 50e9 信号的抽样频率 numbits 2
二进制源的比特数 Ts 3e-9 平均脉冲重复周期 Ns 5 每个比特映射的脉冲数
Tc 1e-9 码片时间 s MATLAB源程序清单 第 4 页 共 19 页 Nh 3 TH码码
元最大上限值 Np 5 TH码周期 Tm 0.5e-9 冲激脉冲响应持续时间 tau
0.25e-9 脉冲波形形成因子 dPPM 0.5e-9 PPM时移 s G 1 G0 -gt 没有图形输
出G1 -gt 得到图形化输出 步骤一模拟传送链路 bits bs0101_bitsnumbits repbits
bs0101_repcodebitsNs THcode bs0101_THNhNp PPMTHseqTHseq ...
bs0101_2PPM_THrepbitsfcTcTsdPPMTHcode 成形滤波器 power 10Pow/10/1000
平均发射功率watt Ex power Ts 每脉冲能量 w0 bs0101_waveformfcTmtau
脉冲波形能量归一化化 wtx w0 . sqrtEx 脉冲波形 Sa convPPMTHseqwtx 输
出过滤器包含调制 Sb convTHseqwtx 输出过滤器无调制 L floorTsfcNsnumbits
Stx Sa1:L ref Sb1:L 步骤二 图形化输出 if G F figure1 setFPosition32 223 951
420 tmax numbitsNsTs time linspace0tmaxlengthStx P plottimeStx setPLineWidth2
ylow-1.5absminwtx yhigh1.5maxwtx axis0 tmax ylow yhigh AXgca setAXFontSize12
MATLAB源程序清单 第 5 页 共 19 页 XxlabelTime s setXFontSize14
YylabelAmplitude V setYFontSize14 for j 1 : numbits tj j-1NsTs L1linetj tjylow
yhigh setL1Color0 0 0LineStyle ... --LineWidth2 for k 0 : Ns-1 if k gt 0 tn tj kNhTc
L2linetn tnylow yhigh setL2Color0.5 0.5 0.5LineStyle ... -.LineWidth2 end for q 1 :
Nh-1 th tj kNhTc qTc L3lineth th0.8ylow 0.8yhigh setL3Color0 0
0LineStyle ... :LineWidth1 end end end end 函数1.7 FUNCTION 1.7 :
quotbs0102_DSquot DS编码器 产生一个长度为Np的矢量其元素是双极性1和-1
且等概率随机分布的。返回矢量Dscode其中包含所产生长度为Np的DS码。 function
DScodebs0102_DSNp DScode rand1Npgt0.5.2-ones1Np 函数1.8 FUNCTION 1.8 :
quotbs0102_2PAM_DSquot MATLAB源程序清单 第 6 页 共 19 页 PAM_DS调
制器 该函数由两个步骤组成。步骤一完成从连续时间域向离散时间域的转换而且
这一步还为要产生的输出信号分配存储资源。步骤二由一个主循环组成它对输入序
列的所有比特都要重复执行。对每输入一个比特都根据DS码和PAM计算其相应脉冲
的位置和幅值。主循环本身由三部分组成第一部分中由均匀脉冲重复周期决定脉冲
的位置然后由DS码决定每个脉冲的幅度最后再应用PAM方案即如果对应比特是0脉
冲的极性就改变。 function PAMDSseqDSseq bs0102_2PAM_DSseqfcTsDScode
步骤一执行2PPMDS调制 dt 1 ./ fc 采样周期 framesamples floorTs ./ dt 样本
之间的脉冲数目 DSp lengthDScode DS码周期 totlength framesampleslengthseq
PAMDSseq zeros1totlength DSseq zeros1totlength 步骤二主循环程序引入DS和
2PAM for k 1 : lengthseq index 1 k-1framesamples 均匀脉冲位置 kDS
DScode1modk-1DSp 引入DS码 DSseqindexkDS PAMDSseqindex kDSseqk2-1
引入2PAM end 函数1.9 FUNCTION 1.9 : quotbs0102_transmitter_2PAM_DSquot
PAM_DS发射机 该函数由三步骤组成。步骤零Step Zero包含要产生的UWB信号的
所有特性参数。设置参数G1可以得到图形化输出。步骤一Step One包含仿真发射链
路模块的仿真命令。为使所得到的信号的长度为Ts·Ns·numbits卷积得到的超量比特
要从最后的矢量中裁剪掉。步骤二Step Two包含产生图形输出的程序代码。 function
bitsDScodeStxrefbs0102_transmitter_2PAM_DS 步骤零输入参数 Pow -30 平均
发射功率 dBm fc 50e9 输出信号的抽样频率 MATLAB源程序清单 第 7 页 共
19 页 numbits 2 二进制源的比特数 Ts 2e-9 平均脉冲重复周期 Ns 10 每
个比特映射的脉冲数 Np 10 DS码的周期 Tm 0.5e-9 脉冲持续时间 s tau
0.25e-9 脉冲波形形成因子 s G 1 G0 -gt 无图形化输出G1 -gt 可以得到图形化
输出 步骤一模拟传送链路 bits bs0101_bitsnumbits repbits
bs0101_repcodebitsNs DScode bs0102_DSNp PAMDSseqDSseq
bs0102_2PAM_DSrepbitsfcTsDScode 成形滤波器 power 10Pow/10/1000 平均发
射功率watt Ex power Ts 每脉冲能量 w0 bs0101_waveformfcTmtau 脉冲波
形能量归一化 wtx w0 . sqrtEx 脉冲波形 Sa convPAMDSseqwtx 输出过滤器
包含调制 Sb convDSseqwtx 输出过滤器无调制 L floorTsfcNsnumbits Stx
Sa1:L ref Sb1:L 步骤二图形化输出 if G F figure1 setFPosition32 223 951 420
tmax numbitsNsTs time linspace0tmaxlengthStx P plottimeStx setPLineWidth2
ylow-1.5maxwtx yhigh1.5maxwtx axis0 tmax ylow yhigh AXgca setAXFontSize12
MATLAB源程序清单 第 8 页 共 19 页 XxlabelTime s setXFontSize14
YylabelAmplitude V setYFontSize14 for j 1 : numbits tj j-1NsTs L1linetj tjylow
yhigh setL1Color0 0 0LineStyle-- ... LineWidth2 for k 0 : Ns-1 if k gt 0 tn tj kTs
L2linetn tn0.8ylow 0.8yhigh setL2Color0.5 0.5 0.5 ... LineStyle-.LineWidth1 end end
end end 程序清单B 函数2.1 FUNCTION 2.1 : quotbs0201_pathlossquot 路径衰耗
该函数主要由两条指令组成第一条用来计算信道增益第二条通过数组相乘对输入信
号幅度进行尺度变换。衰减输入信号tx发射机和接收机距离dgamma和c0分别表示距
离相关的功率衰减和距离为1m时的参数衰减。返回值为衰减后的信号矢量rx和信道
增益attn。 function Srxattn bs0201_pathlossStxc0dgamma attn c0/sqrtdgamma Srx
attn . Stx 函数2.2.a FUNCTION 2.1.a : quotbs0201_Gnoise1_outquot function
srx_out ... bs0201_pathloss_outSrx0 MATLAB源程序清单 第 9 页 共 19 页 该
函数用于显示信号在自由空间传播的衰减情况 srx_out Srx0 Pow -30 平均发射
功率dBm fc 50e9 信号的抽样频率 numbits 2 二进制源的比特数 Ts 3e-9
平均脉冲重复周期 Ns 1 每个比特映射的脉冲数 Tc 1e-9 码片时间 s Nh 3
TH码码元最大上限值 Np 2 TH码周期 Tm 0.5e-9 冲激脉冲响应持续时间
tau 0.25e-9 脉冲波形形成因子 dPPM 0.5e-9 PPM时移 s F figure1
setFPosition32 223 951 420 tmax numbitsNsTs rxj Srx0 time
linspace0tmaxlengthrxj P plottimerxj setPLineWidth2 AXgca setAXFontSize12
XxlabelTime s setXFontSize14 YylabelAmplitude V setYFontSize14 函数2.2
FUNCTION 2.2 : quotbs0201_Gnoise1quot 根据Eb/No产生AWGN 该函数的第一
部分根据矢量ebno中给定的Eb/No和从输入信号得到的Eb计算No值。对每个No值计
算对应噪声的标准差nstdv。第二部分代码由产生热噪声的循环组成。噪声信号由函
数randn1N产生它从均值为0、方差为1的正态分布中产生N个为随机数。在每次迭代
时要使用相应的标准差值对噪声的幅度进行尺度变换。最后将输入信号和噪声信号
相加得到输出信号。 MATLAB源程序清单 第 10 页 共 19 页 function
output1noise ... bs0201_Gnoise1Srxebnonumbits Eb 1/numbitssumSrx.2 每比特的
能量 EbNo ./10 Eb/No的线性单位 No Eb ./ EbNo 单边谱密度 nstdv
sqrtNo./2 噪声的标准偏差 for j 1 : lengthEbNo noisej: nstdvj . randn1lengthSrx
output1j: noisej: Srx end 函数2.2.a FUNCTION 2.2.a :
quotbs0201_Gnoise1_outquot function rx1rx2rx3rx4 bs0201_Gnoise1_outoutput1 该
函数用于2PPM_TH信号在AWGN信道传播情况波形的输出 rx1 output11: rx2
output12: rx3 output13: rx4 output14: Pow -30 平均发射功率dBm fc 50e9 信
号的抽样频率 numbits 2 二进制源的比特数 Ts 3e-9 平均脉冲重复周期 Ns
1 每个比特映射的脉冲数 Tc 1e-9 码片时间 s Nh 3 TH码码元最大上限值
Np 2 TH码周期 Tm 0.5e-9 冲激脉冲响应持续时间 tau 0.25e-9 脉冲波形
形成因子 dPPM 0.5e-9 PPM时移 s G 1 G0 -gt 没有图形输出G1 -gt 得到图
形化输出 power 10Pow/10/1000 平均发射功率watt Ex power Ts 每脉冲能量
w0 bs0101_waveformfcTmtau 脉冲波形能量归一化化 wtx w0 . sqrtEx 脉冲波
形 MATLAB源程序清单 第 11 页 共 19 页 if G for j 1 : 4 F figurej
setFPosition32 223 951 420 tmax numbitsNsTs rxj output1j: time
linspace0tmaxlengthrxj P plottimerxj setPLineWidth2 ylow-absminwtx/30j
yhighmaxwtx/40j axis0 tmax ylow yhigh AXgca setAXFontSize12 XxlabelTime s
setXFontSize14 YylabelAmplitude V setYFontSize14 end end 函数2.3 FUNCTION
2.3 : quotbs0201_Gnoise2quot 根据Ex/No产生AWGN 该函数是另外一个产生高
斯噪声的函数与2.2相似但它根据给定的Ex/No值而不是Eb/No值计算噪声电平其中
Ex为一个单脉冲的接收能量。在函数内部通过将测量的总能量除以发射的脉冲数目
得到Ex的值。脉冲数目由numpulses输入在码重复情况下脉冲数多于发送的比特数。
function output2noise bs0201_Gnoise2Srxexnonumpulses Ex 1/numpulsessumSrx.2
每个脉冲的能量 ExNo ./10 Eb/No的线性单位 No Ex ./ ExNo 单边谱
密度 nstdv sqrtNo./2 噪声的标准偏差 for j 1 : lengthExNo noisej: nstdvj .
randn1lengthSrx MATLAB源程序清单 第 12 页 共 19 页 output2j: noisej: Srx
end 函数2.3.a FUNCTION 2.3.a : quotbs0201_Gnoise2_outquot function
rx1rx2rx3rx4 bs0201_Gnoise2_outoutput2 该函数用于2PAM_DS信号在AWGN信
道传播情况波形的输出 rx1 output21: rx2 output22: rx3 output23: rx4 output24:
Pow -30 平均发射功率 dBm fc 50e9 输出信号的抽样频率 numbits 2 二进
制源的比特数 Ts 2e-9 平均脉冲重复周期 Ns 1 每个比特映射的脉冲数 Np
10 DS码的周期 Tm 0.5e-9 脉冲持续时间 s tau 0.25e-9 脉冲波形形成因子 s
G 1 G0 -gt 无图形化输出G1 -gt 可以得到图形化输出 power 10Pow/10/1000
平均发射功率watt Ex power Ts 每脉冲能量 w0 bs0101_waveformfcTmtau
脉冲波形能量归一化 wtx w0 . sqrtEx 脉冲波形 if G f.
2024年3月10日发(作者:堵开)
MATLAB源程序清单 第 1 页 共 19 页 源程序清单 这些MATLAB的M文件分为
两部分程序清单A中收录了产生PPM-TH和PAM-DS这两个信号源的所有函数程序
清单B中收录了加性高斯白噪声AWGN信道建模正交和非正交单脉冲PPM-TH接收
机结构以及反极性PAM-DS单脉冲接收机结构仿真所需的所有函数。 程序清单A 函
数1.1 FUNCTION 1.1 : quotbs0101_bitsquot 二进制信号源产生 利用函数
randNM产生二进制值这个函数产生一个N·M的矩阵其元素是均匀分布在0.11.0之间
的随机数。 function bitsbs0101_bitsnumbits bitsrand1numbitsgt0.5 函数1.2
FUNCTION 1.2 : quotbs0101_repcodequot 重复编码器 重复编码器通过下面两个
步骤引入冗余首先把输入流转换为Ns个样本的一串离散的Dirac脉冲然后将转换后
的脉冲序列与长度为Ns个抽样点的离散矩阵滤波器相卷积。 function
repbitsbs0101_repcodebitsNs numbits lengthbits temprectones1Ns
temp1zeros1numbitsNs temp11:Ns:1Nsnumbits-1bits temp2convtemp1temprect
repbitstemp21:Nsnumbits 函数1.3 FUNCTION 1.3 : quotbs0101_THquot TH编码
器 产生TH码序列首先产生一个长度为Np的矢量这个矢量是由随机选取的均匀分
布在区间0Nh-1的整数值组成的然后利用函数floorx对x的元素向下取整。 function
THcodebs0101_THNhNp MATLAB源程序清单 第 2 页 共 19 页 THcode
函数1.4 FUNCTION 1.4 : quotbs0101_2PPM_THquot 2PPM调制
器 该函数由两部分组成第一步将时域上连续的输入值转换成用于仿真的时域上的
离散值。同时为产生的输入信号分配存储空间。第二步是对输入序列的所有比特都
重复主循环。每一个输入比特函数根据TH码和PPM位移计算相应脉冲的位置。主循
环本身由三部分组成第一部分根据均匀脉冲的重复周期来确定脉冲的位置然后加上
TH码所引起的脉冲时间位移最后加上输入比特引起的PPM脉冲位移。 function
PPMTHseqTHseq bs0101_2PPM_THseqfcTcTsdPPMTHcode dt 1 ./ fc 采样周期
framesamples floorTs./dt 样本脉冲重复周期 chipsamples floor Tc./dt 样本总码
片时间 PPMsamples floor dPPM./dt PPM时间位移 THp lengthTHcode TH-编
码周期 totlength framesampleslengthseq PPMTHseqzeros1totlength
THseqzeros1totlength 函数1.5 FUNCTION 1.5 : quotbs0101_waveformquot 脉冲形
成器 该程序产生脉冲波形并计算所产生脉冲的抽样个数OVER分OVER为奇数和
偶数两种情况产生波形。fc 为采样频率Tm为脉冲持续时间tau 为脉冲形成因子。
function w0 bs0101_waveformfcTmtau dt 1 / fc 采样周期 OVER floorTm/dt 脉
冲抽样个数 e modOVER2 kbk floorOVER/2 tmp linspacedtTm/2kbk s
./tau.2. ... ./tau.2 if e OVER为奇数 for k1:lengths ykbk11
MATLAB源程序清单 第 3 页 共 19 页 ykbk1ksk ykbk1-ksk end else OVER为偶
数 for k1:lengths ykbkksk ykbk1-ksk end end E 脉冲能量 w0 y ./ E0.5
能源归一化 for k 1 : lengthseq index 1 k-1framesamples 均匀脉冲位置 kTH
THcode1modk-1THp 引入TH码所引起的脉冲时间位移 index index
kTHchipsamples THseqindex 1 index index PPMsamplesseqk 比特引起的PPM
脉冲位移 PPMTHseqindex 1 end 函数1.6 FUNCTION 1.6 :
quotbs0101_transmitter_2PPM_THquot PPM_TH发射机 该函数由三步组成。步骤
零Step Zero包含要产生的UWB信号的所有特性参数。设置参数G1可以得到图形化输
出。步骤一Step One包含仿真发射链路模块的命令行。为使所得到的信号的长度为
Ts·Ns·numbits卷积得到的超量比特要从最后的矢量中裁剪掉。步骤二Step Two包含
产生图形输出代码。 function bitsTHcodeStxrefbs0101_transmitter_2PPM_TH 步骤
零输入参数 Pow -30 平均发射功率dBm fc 50e9 信号的抽样频率 numbits 2
二进制源的比特数 Ts 3e-9 平均脉冲重复周期 Ns 5 每个比特映射的脉冲数
Tc 1e-9 码片时间 s MATLAB源程序清单 第 4 页 共 19 页 Nh 3 TH码码
元最大上限值 Np 5 TH码周期 Tm 0.5e-9 冲激脉冲响应持续时间 tau
0.25e-9 脉冲波形形成因子 dPPM 0.5e-9 PPM时移 s G 1 G0 -gt 没有图形输
出G1 -gt 得到图形化输出 步骤一模拟传送链路 bits bs0101_bitsnumbits repbits
bs0101_repcodebitsNs THcode bs0101_THNhNp PPMTHseqTHseq ...
bs0101_2PPM_THrepbitsfcTcTsdPPMTHcode 成形滤波器 power 10Pow/10/1000
平均发射功率watt Ex power Ts 每脉冲能量 w0 bs0101_waveformfcTmtau
脉冲波形能量归一化化 wtx w0 . sqrtEx 脉冲波形 Sa convPPMTHseqwtx 输
出过滤器包含调制 Sb convTHseqwtx 输出过滤器无调制 L floorTsfcNsnumbits
Stx Sa1:L ref Sb1:L 步骤二 图形化输出 if G F figure1 setFPosition32 223 951
420 tmax numbitsNsTs time linspace0tmaxlengthStx P plottimeStx setPLineWidth2
ylow-1.5absminwtx yhigh1.5maxwtx axis0 tmax ylow yhigh AXgca setAXFontSize12
MATLAB源程序清单 第 5 页 共 19 页 XxlabelTime s setXFontSize14
YylabelAmplitude V setYFontSize14 for j 1 : numbits tj j-1NsTs L1linetj tjylow
yhigh setL1Color0 0 0LineStyle ... --LineWidth2 for k 0 : Ns-1 if k gt 0 tn tj kNhTc
L2linetn tnylow yhigh setL2Color0.5 0.5 0.5LineStyle ... -.LineWidth2 end for q 1 :
Nh-1 th tj kNhTc qTc L3lineth th0.8ylow 0.8yhigh setL3Color0 0
0LineStyle ... :LineWidth1 end end end end 函数1.7 FUNCTION 1.7 :
quotbs0102_DSquot DS编码器 产生一个长度为Np的矢量其元素是双极性1和-1
且等概率随机分布的。返回矢量Dscode其中包含所产生长度为Np的DS码。 function
DScodebs0102_DSNp DScode rand1Npgt0.5.2-ones1Np 函数1.8 FUNCTION 1.8 :
quotbs0102_2PAM_DSquot MATLAB源程序清单 第 6 页 共 19 页 PAM_DS调
制器 该函数由两个步骤组成。步骤一完成从连续时间域向离散时间域的转换而且
这一步还为要产生的输出信号分配存储资源。步骤二由一个主循环组成它对输入序
列的所有比特都要重复执行。对每输入一个比特都根据DS码和PAM计算其相应脉冲
的位置和幅值。主循环本身由三部分组成第一部分中由均匀脉冲重复周期决定脉冲
的位置然后由DS码决定每个脉冲的幅度最后再应用PAM方案即如果对应比特是0脉
冲的极性就改变。 function PAMDSseqDSseq bs0102_2PAM_DSseqfcTsDScode
步骤一执行2PPMDS调制 dt 1 ./ fc 采样周期 framesamples floorTs ./ dt 样本
之间的脉冲数目 DSp lengthDScode DS码周期 totlength framesampleslengthseq
PAMDSseq zeros1totlength DSseq zeros1totlength 步骤二主循环程序引入DS和
2PAM for k 1 : lengthseq index 1 k-1framesamples 均匀脉冲位置 kDS
DScode1modk-1DSp 引入DS码 DSseqindexkDS PAMDSseqindex kDSseqk2-1
引入2PAM end 函数1.9 FUNCTION 1.9 : quotbs0102_transmitter_2PAM_DSquot
PAM_DS发射机 该函数由三步骤组成。步骤零Step Zero包含要产生的UWB信号的
所有特性参数。设置参数G1可以得到图形化输出。步骤一Step One包含仿真发射链
路模块的仿真命令。为使所得到的信号的长度为Ts·Ns·numbits卷积得到的超量比特
要从最后的矢量中裁剪掉。步骤二Step Two包含产生图形输出的程序代码。 function
bitsDScodeStxrefbs0102_transmitter_2PAM_DS 步骤零输入参数 Pow -30 平均
发射功率 dBm fc 50e9 输出信号的抽样频率 MATLAB源程序清单 第 7 页 共
19 页 numbits 2 二进制源的比特数 Ts 2e-9 平均脉冲重复周期 Ns 10 每
个比特映射的脉冲数 Np 10 DS码的周期 Tm 0.5e-9 脉冲持续时间 s tau
0.25e-9 脉冲波形形成因子 s G 1 G0 -gt 无图形化输出G1 -gt 可以得到图形化
输出 步骤一模拟传送链路 bits bs0101_bitsnumbits repbits
bs0101_repcodebitsNs DScode bs0102_DSNp PAMDSseqDSseq
bs0102_2PAM_DSrepbitsfcTsDScode 成形滤波器 power 10Pow/10/1000 平均发
射功率watt Ex power Ts 每脉冲能量 w0 bs0101_waveformfcTmtau 脉冲波
形能量归一化 wtx w0 . sqrtEx 脉冲波形 Sa convPAMDSseqwtx 输出过滤器
包含调制 Sb convDSseqwtx 输出过滤器无调制 L floorTsfcNsnumbits Stx
Sa1:L ref Sb1:L 步骤二图形化输出 if G F figure1 setFPosition32 223 951 420
tmax numbitsNsTs time linspace0tmaxlengthStx P plottimeStx setPLineWidth2
ylow-1.5maxwtx yhigh1.5maxwtx axis0 tmax ylow yhigh AXgca setAXFontSize12
MATLAB源程序清单 第 8 页 共 19 页 XxlabelTime s setXFontSize14
YylabelAmplitude V setYFontSize14 for j 1 : numbits tj j-1NsTs L1linetj tjylow
yhigh setL1Color0 0 0LineStyle-- ... LineWidth2 for k 0 : Ns-1 if k gt 0 tn tj kTs
L2linetn tn0.8ylow 0.8yhigh setL2Color0.5 0.5 0.5 ... LineStyle-.LineWidth1 end end
end end 程序清单B 函数2.1 FUNCTION 2.1 : quotbs0201_pathlossquot 路径衰耗
该函数主要由两条指令组成第一条用来计算信道增益第二条通过数组相乘对输入信
号幅度进行尺度变换。衰减输入信号tx发射机和接收机距离dgamma和c0分别表示距
离相关的功率衰减和距离为1m时的参数衰减。返回值为衰减后的信号矢量rx和信道
增益attn。 function Srxattn bs0201_pathlossStxc0dgamma attn c0/sqrtdgamma Srx
attn . Stx 函数2.2.a FUNCTION 2.1.a : quotbs0201_Gnoise1_outquot function
srx_out ... bs0201_pathloss_outSrx0 MATLAB源程序清单 第 9 页 共 19 页 该
函数用于显示信号在自由空间传播的衰减情况 srx_out Srx0 Pow -30 平均发射
功率dBm fc 50e9 信号的抽样频率 numbits 2 二进制源的比特数 Ts 3e-9
平均脉冲重复周期 Ns 1 每个比特映射的脉冲数 Tc 1e-9 码片时间 s Nh 3
TH码码元最大上限值 Np 2 TH码周期 Tm 0.5e-9 冲激脉冲响应持续时间
tau 0.25e-9 脉冲波形形成因子 dPPM 0.5e-9 PPM时移 s F figure1
setFPosition32 223 951 420 tmax numbitsNsTs rxj Srx0 time
linspace0tmaxlengthrxj P plottimerxj setPLineWidth2 AXgca setAXFontSize12
XxlabelTime s setXFontSize14 YylabelAmplitude V setYFontSize14 函数2.2
FUNCTION 2.2 : quotbs0201_Gnoise1quot 根据Eb/No产生AWGN 该函数的第一
部分根据矢量ebno中给定的Eb/No和从输入信号得到的Eb计算No值。对每个No值计
算对应噪声的标准差nstdv。第二部分代码由产生热噪声的循环组成。噪声信号由函
数randn1N产生它从均值为0、方差为1的正态分布中产生N个为随机数。在每次迭代
时要使用相应的标准差值对噪声的幅度进行尺度变换。最后将输入信号和噪声信号
相加得到输出信号。 MATLAB源程序清单 第 10 页 共 19 页 function
output1noise ... bs0201_Gnoise1Srxebnonumbits Eb 1/numbitssumSrx.2 每比特的
能量 EbNo ./10 Eb/No的线性单位 No Eb ./ EbNo 单边谱密度 nstdv
sqrtNo./2 噪声的标准偏差 for j 1 : lengthEbNo noisej: nstdvj . randn1lengthSrx
output1j: noisej: Srx end 函数2.2.a FUNCTION 2.2.a :
quotbs0201_Gnoise1_outquot function rx1rx2rx3rx4 bs0201_Gnoise1_outoutput1 该
函数用于2PPM_TH信号在AWGN信道传播情况波形的输出 rx1 output11: rx2
output12: rx3 output13: rx4 output14: Pow -30 平均发射功率dBm fc 50e9 信
号的抽样频率 numbits 2 二进制源的比特数 Ts 3e-9 平均脉冲重复周期 Ns
1 每个比特映射的脉冲数 Tc 1e-9 码片时间 s Nh 3 TH码码元最大上限值
Np 2 TH码周期 Tm 0.5e-9 冲激脉冲响应持续时间 tau 0.25e-9 脉冲波形
形成因子 dPPM 0.5e-9 PPM时移 s G 1 G0 -gt 没有图形输出G1 -gt 得到图
形化输出 power 10Pow/10/1000 平均发射功率watt Ex power Ts 每脉冲能量
w0 bs0101_waveformfcTmtau 脉冲波形能量归一化化 wtx w0 . sqrtEx 脉冲波
形 MATLAB源程序清单 第 11 页 共 19 页 if G for j 1 : 4 F figurej
setFPosition32 223 951 420 tmax numbitsNsTs rxj output1j: time
linspace0tmaxlengthrxj P plottimerxj setPLineWidth2 ylow-absminwtx/30j
yhighmaxwtx/40j axis0 tmax ylow yhigh AXgca setAXFontSize12 XxlabelTime s
setXFontSize14 YylabelAmplitude V setYFontSize14 end end 函数2.3 FUNCTION
2.3 : quotbs0201_Gnoise2quot 根据Ex/No产生AWGN 该函数是另外一个产生高
斯噪声的函数与2.2相似但它根据给定的Ex/No值而不是Eb/No值计算噪声电平其中
Ex为一个单脉冲的接收能量。在函数内部通过将测量的总能量除以发射的脉冲数目
得到Ex的值。脉冲数目由numpulses输入在码重复情况下脉冲数多于发送的比特数。
function output2noise bs0201_Gnoise2Srxexnonumpulses Ex 1/numpulsessumSrx.2
每个脉冲的能量 ExNo ./10 Eb/No的线性单位 No Ex ./ ExNo 单边谱
密度 nstdv sqrtNo./2 噪声的标准偏差 for j 1 : lengthExNo noisej: nstdvj .
randn1lengthSrx MATLAB源程序清单 第 12 页 共 19 页 output2j: noisej: Srx
end 函数2.3.a FUNCTION 2.3.a : quotbs0201_Gnoise2_outquot function
rx1rx2rx3rx4 bs0201_Gnoise2_outoutput2 该函数用于2PAM_DS信号在AWGN信
道传播情况波形的输出 rx1 output21: rx2 output22: rx3 output23: rx4 output24:
Pow -30 平均发射功率 dBm fc 50e9 输出信号的抽样频率 numbits 2 二进
制源的比特数 Ts 2e-9 平均脉冲重复周期 Ns 1 每个比特映射的脉冲数 Np
10 DS码的周期 Tm 0.5e-9 脉冲持续时间 s tau 0.25e-9 脉冲波形形成因子 s
G 1 G0 -gt 无图形化输出G1 -gt 可以得到图形化输出 power 10Pow/10/1000
平均发射功率watt Ex power Ts 每脉冲能量 w0 bs0101_waveformfcTmtau
脉冲波形能量归一化 wtx w0 . sqrtEx 脉冲波形 if G f.