通信原理实验报告姓名:王梓骅 学号:PB16001824一、实验目的①掌握数字频带传输系统调制解调的仿真过程 掌握数字频带传输系统误码率仿真分析方法② 掌握二维平面图形的绘制方法,能够使用这些方法进行常用的数据可视化处理二、实验原理数字频带信号通常也称为数字调制信号,其信号频谱通常是带通型的,适合于在带通型信道中传输。
数字调制是将基带数字信号变换成适合带通型信道传输的一种信号处理方式。
以 BPSK 为例,仿真说明数字频带传输的整个过程假定:信道为加性高斯白噪声信道,其均值为0、方差为,采用矩形成形;发射端BPSK 调制信号为:s (t )=A cos(2p f c t )b k ="1"-A cos(2p f c t )b k ="0"kT £t <(k +1)T ìíïîï经信道传输,接收端输入信号为:经相干解调,匹配滤波,定时恢复后输出:x k =A +n k b k ="1"-A +n k b k ="0"ìíïîï2σ()()()d y t s t n t =+当1,0独立等概出现时,BPSK 系统的最佳判决门限电平。
故判决规则为在取样时刻的判决值大于0,判1,小于0,判0。
QPSK 信号可以看作两个载波正交2PSK 信号的合成。
用调相法产生QPSK 调制器框图如图12所示,QPSK 的调制器可以看作是由两个BPSK 调制器构成,输入的串行二进制信息序列经过串并变换,变成两路速率减半的序列,电平发生器分别产生双极性的二电平信号I (t )和Q (t ),然后对cosAtω和sinAtω进行调制,相加后即可得到QPSK 信号。
由于QPSK 信号可以看作是两正交2PSK 信号的叠加,故用两路正交的相干载波去解调,这样能够很容易地分离出这两路正交的2PSK 信号。
相干解调后的两路并行码元a 和b 经过“并/串”转换后成为串行数据输出。
三、实验内容1) 分别编写 BPSK 与 QPSK 调制解调系统的 Matlab 仿真程序,要求:① 发送滤波器与接收滤波器均为根升余弦滚降滤波器;② 信道噪声为加性高斯白噪声2) 绘制 BPSK 与 QPSK 调制下的误码率与信噪比曲线图,并与理论曲线进行对比四、实验数据①BPSK 调制解调调制信号的波形:(Ber=0.006) *0d UQPSK调制解调调制信号的波形:(Ber=0.0072)结果分析:BPSK调制信号电平有1和-1两种,分别对应相位为0和pi,平均值为0,调制信号波形图像显示信号的幅度大概在0附近浮动,与理论预期是相符的。
QPSK 调制从图像中可以看到,幅度的浮动范围稍大于BPSK,且均值与BPSK是一样的,浮动中心都在0附近。
②BPSK调制解调系统误差概率和信噪比(dB)的函数关系曲线图:QPSK调制解调系统误差概率和信噪比(dB)的函数关系曲线图:结果分析:可以看到,图中显示的误码率在信噪比为-10dB到10dB之间的函数关系图,蓝色曲线为实际图像,红色曲线为理论图像,可以看到实际曲线和理论曲线吻合得很好,误码率随信噪比的上升时单调下降的。
比较BPSK和QPSK可以看到,在相同的信噪比下,QPSK误码率的误差要比BPSK 要大,说明BPSK的性能更优。
另外,可以把N作为一个变量,当N=1000时,BPSK误差概率和信噪比(dB)的函数关系曲线图如下:(原程序里N=100000)可以看出,N越大时,实际曲线和理论曲线吻合越好。
五、附录:①BPSK调制解调调制信号:clear;Snr=5;fs=16;fc=100;N=10000;Ts=1;fd=1;ts=1/fs;t=0:ts:N*Ts-ts;t=t.';N_sample=Ts*fs;B=randi([0,1],1,N);sym=[-1;1];A=sym(B+1);H=rcosine(fd,fs,'sqrt'); %#ok<DRCOSINE> S1=upsample([A], fs/fd);S=filter(H, 1, S1);X1=S.*cos(2*pi*fc*t);figure(1);plot(t(1:200),X1(1:200));X=awgn(X1,Snr-10*log10(fs/(2*fd)),'measured'); r=X.*cos(2*pi*fc*t);S2=filter(H, 1, r);S3=S2(5/fd*fs+1:end);Sr=zeros(N-5,1);for k=1:(N-5)M=S3(k*Ts*fs);if(M>0)Sr(k)=1;elseSr(k)=-1;endendA2=A(1:end-5);biterror=sum(A2~=Sr)/(N-5);Ber=biterror②QPSK调制解调调制信号:clear;fc=2;snr=5;fs=16;N=10000;Ts=1;fd=1;ts=1/fs;t=0:ts:N*Ts-ts;N_sample=Ts*fs;B=randi([1 4],1,N);f=sqrt(2)/2;sc=[1,-1,-1,1]*f;ss=[-1,-1,1,1]*f;A1=sc(B);A2=ss(B);S1=upsample(A1,N_sample);S2=upsample(A2,N_sample);H=rcosine(fd, fs, 'sqrt'); %#ok<DRCOSINE>C1=filter(H,1,S1);C2=filter(H,1,S2);sinv=sin(2*pi*fc*t);X1=C1.*cos(2*pi*fc*t)+C2.*sin(2*pi*fc*t);X=awgn(X1,snr-10*log10(fs/(4*fd)),'measured'); %SNR=Eb/N0=(S/R)*(2fs/fd)figure(1);plot(t(1 :200),X1(1 :200));r1=X.*cos(2*pi*fc*t);Sr1=filter(H,1,r1);Sr1=Sr1(5/fd*fs+1:end);r2=X.*sin(2*pi*fc*t);Sr2=filter(H,1,r2);Sr2=Sr2(5/fd*fs+1:end);ber1=zeros(1,N-5);ber2=zeros(1,N-5);for k=1:(N-5)M=Sr1(k*Ts*fs);if (M>0)ber1(k)=1;elseber1(k)=0;endM=Sr2(k*Ts*fs);if (M>0)ber2(k)=1;elseber2(k)=0;endendD=[2,1,3,4];ber=D(ber1+ber2*2+1);B1=B(1:end-5);biterror=sum(B1~=ber)/(N-5)/2;Ber=biterror;③B PSK调制解调系统误差概率和信噪比(dB)的函数关系:clear;fc=2;fs=16;N=100000;Ts=1;fd=1;ts=1/fs;t=0:ts:N*Ts-ts;t=t.';N_sample=Ts*fs;snr=-10:0.4:12;Ber=size(snr);ber0=size(snr);for j=1:length(snr)B=randi([0,1],1,N);sym=[-1;1];A=sym(B+1);Snr=snr(j);H=rcosine(fd,fs,'sqrt');S1=upsample([A],fs/fd);S=filter(H,1,S1);X1=S.*cos(2*pi*fc*t);X=awgn(X1,Snr-10*log10(fs/(2*fd)),'measured'); r=X.*cos(2*pi*fc*t);S2=filter(H,1,r);S3=S2(5/fd*fs+1:end);Sr=zeros(N-5,1);for k=1:(N-5)M=S3(k*Ts*fs);if (M>0)Sr(k)=1;elseSr(k)=-1;endendA2=A(1:end-5);ber=sum(A2~=Sr)/(N-5);Ber(j)=ber;ber0(j)=1/2*erfc(sqrt(10^(Snr/10)));endfigure(1);semilogy(snr,Ber);hold on;semilogy(snr,ber0,'r');④QPSK调制解调系统误差概率和信噪比(dB)的函数关系:clear all;fc=2;snr=-10:0.4:12;fs=16;N=100000;Ts=1;fd=1;ts=1/fs;t=0:ts:N*Ts-ts;N_sample=Ts*fs;Ber=size(snr);pe=size(snr);for j=1:length(snr)Snr=snr(j);B=randi([1 4],1,N);f=sqrt(2)/2;sc=[1,-1,-1,1]*f;ss=[-1,-1,1,1]*f;A1=sc(B);A2=ss(B);S1=upsample(A1,N_sample);S2=upsample(A2,N_sample);H=rcosine(fd, fs, 'sqrt');C1=filter(H,1,S1);C2=filter(H,1,S2);X1=C1.*cos(2*pi*fc*t)+C2.*sin(2*pi*fc*t);X=awgn(X1,Snr-10*log10(fs/(4*fd)),'measured'); r1=X.*cos(2*pi*fc*t);Sr1=filter(H,1,r1);Sr1=Sr1(5/fd*fs+1:end);r2=X.*sin(2*pi*fc*t);Sr2=filter(H,1,r2);Sr2=Sr2(5/fd*fs+1:end);ber1=zeros(1,N-5);ber2=zeros(1,N-5);for k=1:(N-5)M=Sr1(k*Ts*fs);if (M>0)ber1(k)=1;elseber1(k)=0;endM=Sr2(k*Ts*fs);if (M>0)ber2(k)=1;elseber2(k)=0;endendD=[2,1,3,4];ber=D(ber1+ber2*2+1);B1=B(1:end-5);biterror=sum(B1~=ber)/(N-5)/2;Ber(j)=biterror;ber0(j)=1/2*erfc(sqrt(10^(Snr/10)));endfigure(1);semilogy(snr,Ber);hold on;semilogy(snr,ber0,'r');。