蒙特卡洛法仿真OOK的NRZ与RZ波形

clear all
close all
q = 1.6e-19;%电子电量
Ib = 202e-6;%平均光电流
N0 = 2*q*Ib;%单边噪声功率谱密度
R = 1;%光电探测器灵敏度
Rb = 1e6;%比特率
Tb = 1/Rb;%码元时间

sig_length = 1e5;%信号长度
nsamp = 10;%每个信号采样点数
Tsamp = Tb/nsamp;%采样间隔
EbN0 = 1:12;%信噪比
SNR = 10.^(EbN0./10);
h = waitbar(0,'计算进度');
%%
%************ simulation of probabbility of errors ****************
for i = 1:length(SNR)
    waitbar(i/length(SNR));%显示计算进度
    p_avg(i) = sqrt(N0*Rb*SNR(i)/(2*R^2));%平均传输光功率
    i_peak(i) = 2*R*p_avg(i);%峰值光电流
    Ep(i) = i_peak(i)^2*Tb;%峰值光能量
    sigma(i) = sqrt(N0/2/Tsamp);%1/Tsamp其实是带宽

    
    
    %%
    %NRZ
    pt = ones(1,nsamp)*i_peak(i);%默认每个信号的采样值都是一样的
    rt = pt;%匹配滤波器
    OOK = round(rand(1,sig_length));%生成ook信号
    Tx_signal = reshape((pt.'*OOK),1,sig_length*nsamp);%发送信号(长度为所有采样点数)
    Rx_signal = Tx_signal+sigma(i)*randn(1,sig_length*nsamp);%匹配滤波器接收信号

    MF_out = conv(Rx_signal,rt)*Tsamp;%卷积,但是为什么要乘采样间隔,或者说除以带宽  匹配滤波器输出
    MF_out_downsamp = MF_out(nsamp:nsamp:end);%nsamp开始,每隔
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值