当前位置:
文档之家› AWGN-信道中BPSK-调制系统的BER仿真计算
AWGN-信道中BPSK-调制系统的BER仿真计算
end
i=1:2:Max_SNR;
semilogy(i,ber,'-r',i,ber_theory,'*b');
xlabel('E_b/N_0 (dB)')
ylabel('BER')
legend('Monte Carlo','Theoretic')
程序分析:
做1000次试验,每次试验取200个抽样点,求出每次试验的误比特率,然后对1000次试验的误比特率取平均值,即得仿真误比特率ber,然后将此误比特率与理论值ber_theory进行比较。
ber_m./N_trials;
ber_theory=[];
forsnr_db=1:2:Max_SNR
snr=10.^(snr_db./10);
snr_1=Qfunct(sqrt(2*snr));
ber_theory=[ber_theory,snr_1];
五.实验步骤
① 运行发生器:通过发送器将伪随机序列变成数字化的调制信号。 ② 设定信噪比:假定 SNR 为 m dB,则 Eb/N0=10,用 MATLAB 假设 SNR 单位为分贝。 ③ 确定Eb ④ 计算N0 ⑤ 计算噪声的方差σ n ⑥ 产生噪声:因为噪声具有零均值,所以其功率和方差相等。我们产 生一个和信号长度相同的噪声向量,且该向量方差为σ n 。 ⑦ 加上噪声,运行接收器 ⑧ 确定时间延迟 ⑨ 产生误差向量 ⑩ 统计错误比特:误差向量“err”中的每一个非零元素对应着一个 错误的比特。 最后计算误比特率 BER:每运行一次误比特率仿真,就需要传输和 接收固定数量的比特,然后确定接收到的比特中有多少错误的。使用 MATLAB 计算BER: ber=te/length(tx)。
n=randn(1,N)+j.*randn(1,N);%generate guass white noise
ber_v=[];
forsnr_dB=1:2:Max_SNR
snr=10.^(snr_dB./10);%snr(db)-->snr(decimal)
N0=Eb./snr;
sgma=sqrt(N0./2);
6.实验结果及分析
MATLAB程序:
%Simulation of bpskAWGN
Max_SNR=10;
N_trials=1000;
N=200;
Eb=1;
ber_m=0;
fortrial=1:1:N_trials
trial
msg=round(rand(1,N));% 1, 0 sequence
s=1-msg.*2;%0-->1, 1-->1
程序运行结果如图3所示。
图1 bpskAWGN误比特率仿真结果与理论值比较
结果分析:
由图3可知,仿真结果与理论值基本相符,只是在信噪比较大时,仿真误码率与理论值存在误差,这是因为在高信噪比情况下,误比特率会呈下降趋势,若要仿真实际的误比特率,就需要进行更多次试验,而且每次试验取的抽样点数也应该增加。
BER_v=[];%Bit error rate
forsnr_db=0:1:N_snr;
sgma=(1/2)*sqrt(10.^(-snr_db./10));
Y=Sc+sgma.*niose;
Y_r=sign(real(Y))./sqrt(2);
Y_i=sign(imag(Y))./sqrt(2);
S1=S(1:2:N_number);
S2=S(2:2:N_number);
Sc=S1+j.*S2;%generate qpsk signal
niose=randn(1,N_number/2)+j.*randn(1,N_number/2);%generate noise
SER_v=[];%Symbol error rate
序号(学号):
学生实验报告书
2014
年
4
月
27
日
实验一:AWGN信道中BPSK调制系统的BER 仿真计算
一、 实验目的
1.掌握二相BPSK 调制的工作原理
2. 掌握利用MATLAB 进行误比特率测试BER 的方法
3. 掌握AWGN信道中BPSK调制系统的BER仿真计算方法
二.实验内容
利用仿真程序在MATLAB 环境下完成AWGN信道中BPSK调制系统的BER仿真计算,得到仿真结果,写出实验小结,完成实验报告。
%Simulation of qpskAWGN
N_trials=1000;
N_number=100;
N_snr=10;
Es=1;
BER_m=0;
SER_m=0;
fortrials=1:N_trials;
trials
s10=round(rand(1,N_number));
S=(s10*2-1)./sqrt(2);
三.实验仪器:
计算机
matlab软件
四、 实验原理
在数字领域进行的最多的仿真任务是进行调制解调器的误比特 率测试,在相同的条件下 进行比较的话,接收器的误比特率性能是一个十分重要的指标。误比特率的测试需要一个发送器、一个接收器和一条信道。首先需要产生一个长的随机比特序列作为发送器的输入,发送器将这些比特调制成某种形式的信号以便传送到仿真信道,我们在传输信道上加上一定的可调制噪声,这些噪声信号会变成接收器的输入,接收器解调信号然后恢复比特序列,最后比较接收到的比特和传送的比特并计算错误。误比特率性能常能描述成二维图像。纵坐标是归一化的信噪比,即每个比特的能量除以噪声的单边功率谱密度,单位为分贝。横坐标 为误比特率,没有量纲。
y=sqrt(Eb).*s+sgma.*n;
y1=sign(real(y));
y2=(1-y1)./2;% 1, 0 sequence
error=sum(abs( msg- y2));%error bits
ber_snr=error./N;%ber
ber_v=[ber_v,ber_snr];
end%for snr
Y_bit=[];
fork=1:length(Y_r);
Y_bit=[Y_bit,[Y_r(k),Y_i(k)]];
end;
Y_symbol=Y_r+j*Y_i;
X_b=S-Y_bit;
X_s=Sc-Y_symbol;
ber_snr=0;
fork=1:N_number
ifX_b(k)~=0;
ber_snr=ber_snr+1;