文档详情

bpsk的matlab仿真原理加源代码.doc

发布:2019-09-06约3.61千字共5页下载文档
文本预览下载声明
BPSK误码率的Matlab仿真实验 作者:黄准 南京航空航天大学,江苏省 南京市 430062 摘要:对于刚刚从事通信领域研究性工作的研究生来说,很有必要通过Matlab强大的仿真功能来强化理解通信信号处理的过程。本文正是通过对BPSK的Matlab仿真来提供一个比较好的实例。 关键词:BPSK,高斯白噪声,带通滤波器,载波,抽样判决 1 BPSK的理论分析 1.1 基本原理加法器 加法器 s(t) 相乘器 BPF 相乘器 LPF 抽样判决 A(t) WGN 定时脉冲 A(t) 图1.1 BPSK相干解调原理框图 输入信号A(t)可表示为: (1.1-1) 式中为矩形波,而表达式如下: 对A(t)进行傅里叶变换,得到A(t)的功率谱密度(式中Ts为码元时间长度): 得到A(t)的频谱图如1.2所示(图中Tb为码元时间长度) 图1.2 矩形基带信号频谱 A(t)与载波相乘: 其频谱图如图1.3所示: 图1.3 图中fc为载波频率,fs=1/Tb=Rb(码速率),故带通滤波器的中心频率为fc,带宽至少为2fs。 经过带通滤波器的高斯白噪声变成了窄带高斯信号,可以表示为: 经过带通滤波器后的信号为y(t) y(t)=s(t)+n(t) 与载波相乘后再经过低通滤波器滤除高频分量得到x(t) 由x(t)的功率谱密度图(图1.4所示)可知,最佳判决门限为0;误码率Pe=0.5*erfc(sqrt(r));式中信噪比r=A^2/2*σ^2,σ^2为窄带高斯信号的方差,由于其均值为0,故噪声功率就是其方差。 图1.4 附录: clear all clc num = 5000; %码元数 Rb = 1000; %码速率2*Rb=fs tnum = 500; %没一个码元用tnum个点代替 fs = Rb*tnum; %采样频率fs2*(fp+Rb) fp = 100000; %载波频率 t = 0:1/fs:num/Rb-1/fs; %时间t的长度与间隙。 panjue1 = zeros(1,num); %基带传输的判决输出 panjue2 = zeros(1,num); %频带传输的判决输出 pe1 = zeros(1,15); %基带传输的误码率矩阵 pe2 = zeros(1,15); %频带传输的误码率矩阵 a = 2*(fp-2*Rb)/fs; %带通滤波器的第一截止频率 b = 2*(fp+2*Rb)/fs; %带通滤波器的第二截止频率 s = 1; %循环累加数 % [a1,b1] = butter(2,[a,b]); %采用butter滤波器,得到butter滤波器的H(z)的分子分母参数 noise = randn(1,num*tnum); %产生正态分布参数 nwgnnoise = filter(a1,b1,noise); %对WGN进行带通滤波 stdnwgn = std(nwgnnoise); %为了减少运算量。 [a2,b2] = butter(2,b); %低通滤波 [h1 w1] = freqz(a1,b1); %带通滤波器频谱 [h2 w2] = freqz(a2,b2); %低通滤波器频谱 %以上一段代码是为了防止加重计算机的计算量而从循环中提出来的。 % for SNR_db = -5:10; in = randint(1,num); in1 = 2*in-1; g = ones(1,tnum); inn = upsample(in,tnum); inn = filter(g,1,inn); in2 = inn*2-1; %以上一段代码产生基带信号 inn = in2.*sin(2*pi*fp*t); %产生频带信号 noise = randn(1,num*tnum); %产生标准正态分布的高斯白噪声信号 snr = 10^(SNR_db/10); %信噪比换算 sigma = sqrt(1/(2*snr));
显示全部
相似文档