基于MATLAB的BPSK调制仿真及性能分析

更新时间:2024-05-19 04:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

******************

实践教学

*******************

兰州理工大学

计算机与通信学院

2015年春季学期

通信系统仿真训练 课程设计

题 目:基于MATLAB的BPSK调制仿真及性能分析 专业班级:

姓 名:

学 号: 指导教师: 成

摘要

BPSK是在21世纪的现阶段,数字通信系统是现代通信系统的主流,在社会生活各个方面占据重要地位,调制与解调是一个不可或缺的环节,它大大提高了信号的传输性能和安全性。BPSK作为数字通信系统中的一种简单、基础的调制解调方法,抗干扰能力强,容易仿真实现。在了解并掌握了BPSK调制与解调原理后,学习MATLAB仿真软件的使用方法。

本次课程设计为基于MATLAB的BPSK调制仿真。本次课设着重介绍了算法的实现,并采用MATLAB程序仿真测试了BPSK过程中单极性不归零编码、脉冲成形、PSK调制、信号通过AWGN信道、载波恢复、解调、解码等过程。

关键词:BPSK、调制解调、MATLAB仿真、数字通信系统

1

目录

前言 ........................................................................... 3 一、BPSK原理 ................................................................. 4

1.1 MPSK的介绍 ........................................................... 4

1.1.1 MPSK的介绍 ...................................................... 4 1.2 BPSK 简介 ............................................................. 5

1.2.1 BPSK的概念及分类 ................................................ 5 1.3 BPSK信号的产生 ........................................................ 5 1.4 BPSK调制 .............................................................. 5

1.4.1 调制的概念 ........................................................ 5 1.4.2 调制的种类 ........................................................ 6 1.4.3 调制的作用 ........................................................ 6 1.4.4 调制方式 .......................................................... 6 1.4.5 BPSK的调制原理 .................................................. 7 1.5 BPSK的解调 ............................................................ 8 1.6 高斯噪声 ............................................................... 8

1.6.1 高斯白噪声 ........................................................ 8

二、设计思路 ................................................................... 9 三、设计仿真及分析 ............................................................ 10

3.1 设计仿真 .............................................................. 10 3.2 结果总体分析 .......................................................... 13 总结 .......................................................................... 14 参考文献 ...................................................................... 15 致谢 .......................................................................... 16

2

前言

数字通信系统使用的最基本的就是PSK,实际上由于交调的存在,大都使用PSK,由于电波主要在自由空间传播,信道参数比较稳定,信道的主要干扰是高斯白噪声,因而可视为恒参信道。理论分析指出,在恒参信道中,采用PSK的误码率最低,更有效地利用卫星频带,在接收机噪声的作用下,PSK的误码率最低。因而在实际中得到广泛的应用。特别是高数数据传输中FSK是一种很重演的调制方式。

因此本课程设计尝试对PSK中常用的BPSK的调制技术进行通信系统仿真训练的设计实践。本次课程设计为基于MATLAB的BPSK调制仿真及性能分析。本次课设着重介绍了算法的实现,并采用MATLAB程序仿真测试了BPSK过程中单极性不归零编码、脉冲成形、PSK调制、信号通过AWGN信道、载波恢复、解调、解码等过程。

本设计要求采用Matlab实现对BPSK通信系统的蒙特卡罗仿真并且绘制相关的图形,此题比较难做涉及到的方面很多,对BPSK及蒙特卡罗仿算法很不了解查阅了很多资料然而涉及的有较少,但查资料当中学到了很多不知道的东西,加深了对PSK的了解。

以二进制调相为例,取码元为\时,调制后载波与未调载波同相;取码元为\时,调制后载波与未调载波反相;\和\时调制后载波相位差180°。就模拟调制法而言,与产生2ASK信号的方法比较,只是对s(t)要求不同,因此BPSK信号可以看作是双极性基带信号作用下的DSB调幅信号。而就键控法来说,用数字基带信号s(t)控制开关电路,选择不同相位的载波输出,这时s(t)为单极性NRZ或双极性NRZ脉冲序列信号均可。

本设计分析BPSK调制和解调系统,并用BPSK软件仿真调制系统,最后建立蒙特卡洛仿真模型,统计系统误码率。该题目概括了《MATLAB技术》、《通信系统原理》等课程的主要知识点,通过该设计能够培养和提高学生综合设计能力,为今后的学习和工作积累经验。

3

一、BPSK原理

1.1 MPSK的介绍

1.1.1 MPSK的介绍

MPSK即多进制相移键控,又称为多相制。这种键控方式是多进制键控的主要方式。在M进制的相移键控信号,用M个相位不同的载波分别代表M个不同的符号。如果载波有2n个相位,它可以代表n 位二进制码元的的不同组合的码组。多进制相移键控也分为多进制绝对相移键控和多进制相对相移键控。

在MPSK信号中,载波相位 有M种可能取值,θn=2πn/M(n=1,2,…,M-1)。因此MPSK信号可表示为

S(t) = cos(ω0t+θn) = cos (ω0t+2πn/M) ⑴

若载波频率是基带信号速率的整数倍,则上式可改写为

S(t)=∑g(t-nTs)cos(ω0t+θn)=cosω0tΣcosθn g(t-nTs) -sinω0tΣsinθn g(t-nT)

式中g(t)是高度为1、宽度为Ts的门函数;Ts为M进制码元的持续时间。亦即k(k=log2M)比特二进制码元的持续时间;θn为第N个码元对应的相位,共有 M个不同的取值。

式表明,MPSK信号可等效为两个正交载波的MASK信号之和。所以,MPSK信号的带宽和MASK信号的带宽相同。因此,MPSK系统是一种高效率的信息传输方式。但是,当M的取值增加时,载波间的相位差也随之减少,这就使它的抗噪声性能变差。

数字通信系统模型如图2.1所示。 信息信源编码 信道编码 数信道 数字解噪声源 信道译码 信源译码 收信者 字调制 源 调 图1.1.1 数字通信系统模型

参考文献

[1] 曹志刚等编,现代通信原理[M],清华大学出版社,2008 [2] 程佩青. 数字信号处理教程[M].清华大学出版社 [3] 刘卫国. MATLAB程序设计教程[M].中国水利水电出版社

[4] 桑林,郝建军,刘丹,数字通信[M].北京邮电大学出版社,2002 [5] 苗云长等主编,现代通信原理及应用[M]。电子工业出版社,2005 [6] 吴伟铃,庞沁华,通信原理[M],北京邮电大学出版社,2005 [7] 张圣勤,MATLAB7.0实用教程[M],机器工业出版社,2006

[8] 邵玉斌,Matlab/Simulink通信原理建模与仿真实例分析[M],清华大学出版社,2008

[9]樊昌信,通信原理(第6版) [M].北京:国防工业出版社.2001.

15

致谢

通过本次计算机通信课程设计,让我在除了课本的知识之外的知识有了更好的理解,对8PSK调制解调的工作原理有了更好的理解,在设计之前,收集了很多的材料,但当真正深入设计时,却也遇到了诸多的问题,让我体会到了设计的要求在于系统性,可行性,准确性,诸多问题的出现给我们的设计带来了难度,也同时是更大的一次挑战,最终,在老师以及同学的帮助下,克服了种种困难,顺利的完成了本次通信仿真训练的课程设计,在此,首先要感谢学校安排此次课程设计,让我有机会对本次课程设计能够深入理解和设计,再次感谢老师的细心指导和改正,还有同组同学的相互团结和帮助,使我完成了本次计算机通信课程设计,使我在求学的道路上有了更多方面知识的获得。设计过程中查阅了大量的有关PSK调制解调设计的书籍,巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合的必要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。再次感谢学校,感谢老师,感谢同学。

16

附录

clear all close all clc

num=10; %码元个数 tnum=200;%码元长度

N=num*tnum;个码元整体长度

a=randint(1,num,2); %产生1行num列的矩阵,矩阵内0和1随机出现 fc=0.25; %载波频率为0.5

t=0:0.05:9.99;%t从0到9.99,间隔为0.05 s=[];c=[];

for i=1:num %i从1到10循环 if(a(i)==0)

A=zeros(1,tnum); %i=0时,产生一个码元长度为tnum(200)的0码元 else

A=ones(1,tnum); %i=1时,产生一个码元长度为tnum(200)的1码元 end

s=[s A]; %s为随机基带信号 cs=sin(2*pi*fc*t);

c=[c cs]; %c为载波信号 end

%采用模拟调制方法得到调制信号 s_NRZ=[];

for i=1:num %i从1到num(10)循环 if(a(i)==0)

A=ones(1,tnum); %i=0时,产生一个码元长度为tnum(200)的1码元 else

A=-1*ones(1,tnum); %i非0时,产生一个码元长度为tnum(200)的-1码元 end

17

s_NRZ=[s_NRZ,A]; %s_NRZ为双极性非归零码 end

e=s_NRZ.*c; %e为BPSK调制信号 figure(1); %图1

subplot(3,2,1); %图1分为3×2部分的第一部分 plot(s); %作s(基带信号)的波形图 grid on;

axis([0 N -2 2]); %横轴长度为0到N,纵轴范围为-2到+2 xlabel('基带信号s(t)'); %x轴的注释 ylabel('基带信号幅值'); %y轴的注释 subplot(323);plot(c);grid on; axis([0 N -2 2]);

xlabel('BPSK载波信号');

ylabel('BPSK载波信号幅值'); %作c(BPSK载波信号)的波形图 subplot(325);plot(e);grid on; axis([0 N -2 2]);

xlabel('BPSK调制信号');

ylabel('BPSK调制信号幅值'); %作e(BPSK调制信号)的波形图 %信号的频谱 Fs=200; %采样频率 n=length(s); %基带信号长度

f=[0:Fs/n:Fs-Fs/n]-Fs/2; %修正频率f的范围 S=fft(s); %基带信号s的快速傅里叶变换 E=fft(e); %基带信号e的快速傅里叶变换 C=fft(c); %基带信号c的快速傅里叶变换 subplot(322);

plot(f,abs(fftshift(S))); %基带信号的频谱 title('基带信号频谱');

xlabel('f/hz');ylabel('S(w)'); grid on; subplot(324);

18

plot(f,abs(fftshift(C))); %载波信号的频谱 title('载波信号频谱');

xlabel('f/hz');ylabel('C(w)'); grid on; subplot(326);

plot(f,abs(fftshift(E))); %调制信号的频谱 title('调制信号频谱');

xlabel('f/hz');ylabel('E(w)'); grid on; %加高斯噪声

am=0.7; %输入信号经信道后振幅由1衰减为0.7 SNR=5; %输入信噪比 snr=10^(SNR/10);

N0=(am*am)/2/snr; %计算噪声功率

N0_db=10*log10(N0); %将噪声功率转换为dBW ni=wgn(1,N,N0_db); % 产生1行N列的高斯噪声

yi=e+ni; %BSK已调信号中加入白噪声,输入信噪比为SNR figure(2);subplot(2,1,1);plot(yi);grid on; xlabel('加入高斯白噪声的已调信号yi(t)'); %带通滤波器

[b1,a1] = BUTTER(3,[2*pi*0.0001,2*pi*0.01]); %计算带通滤波器的H(z)系数 y=filter(b1,a1,yi); %对信号yi进行滤波,得到信号y figure(2);subplot(2,1,2);plot(y);grid on; xlabel('经带通滤波器后信号'); %与恢复载波相乘 x1=2*c.*y;

figure(3);subplot(2,1,1);plot(x1);grid on xlabel('与恢复载波相乘后的信号x1(t)'); %低通滤波器

[b2,a2]=butter(2,0.005); %计算H(z)系数 ,频率为(1/200) x=filter(b2,a2,x1); %对信号x1滤波,得到信号x figure(3);subplot(2,1,2);plot(x);grid on

19

axis([0 N -2 2]);xlabel('经低通滤波器后信号波形') %抽样判决

x=fun_panjue(x);%调用函数,进行抽样判决 figure(4);subplot(2,1,1);plot(x);grid on; xlabel('加噪后解调信号x(t)'); axis([0 N -2 2]); %消除延迟

x=fun_yanc(x); %调用函数,进行消除延迟 figure(4);subplot(2,1,2);plot(x);grid on; xlabel('加噪后去掉延迟的解调信号x(t)'); axis([0 N -2 2]); %误码率计算

Err1=length(find(x~=s)) %计算解调信号中错误码元个数 Pe_test1=Err1/N %计算实际误码率

Pe1=(1/2)*erfc(sqrt(snr)) %计算系统理论误码率 % 理论误码率曲线 Pe=[]; for SNR=1:10

am=0.7; %输入信号经信道后振幅由1衰减为0.7 E=am*am/2; snr=10^(SNR/10); N0=(am*am)/(2*snr);

no=N0/(2*200); %计算噪声功率

N0_db=10*log10(N0);%将噪声功率转换为dBW ni=wgn(1,N,N0_db);% 产生1行N列的高斯噪声

yi=e+ni; %BSK已调信号中加入白噪声,输入信噪比为SNR y=filter(b1,a1,yi);%对yi进行滤波(带通滤波器),得到信号y x1=2*c.*y; %与恢复载波相乘 xx=filter(b2,a2,x1); %经低通滤波器滤波 xx=fun_panjue(xx);%抽样判决 xx=fun_yanc(xx); %消除延迟

20

snr=10^(SNR/10);

Pe=[Pe,(1/2)*erfc(sqrt(snr))]; %计算理论误码率 end Pe; figure; SNR=1:10;

semilogy(SNR,Pe,'b--');hold on %以log10(Pe)为纵坐标画图 grid on

子程序一:抽样判决

(由于存在“倒pi”现象,故以0为基准进行判决,大于0,判为0;小于0,判为1) function w=fun_panjue(w) N=length(w); if w(100)>0

w(1:100)=0; else

w(1:100)=1; end

for i=101:N if w(i)>0; w(i)=0; else

w(i)=1; end end

子函数二:消除延迟

(由于抽样判决后会产生延迟,故认为对解调信号进行时移,以减小甚至消除延迟,便于与基带信号进行比较,计算实际误码率) function m=fun_yanc(m) N=length(m); leng=0; if m(1)==0 for i=1:N

if m(i)==1 leng=i; break; end end else

for i=1:N

if m(i)==0 leng=i;

21

break; end end end

leng1=leng-(floor(leng/200))*200; for i=1:(N-leng1)

m(i)=m(i+leng1); end

for i=(N-leng1):N

m(i)=m(N-200+10); end

22

本文来源:https://www.bwwdw.com/article/lqm7.html

Top