孙煜二进制扩频通信系统 2.docx
- 文档编号:8871402
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:24
- 大小:189.51KB
孙煜二进制扩频通信系统 2.docx
《孙煜二进制扩频通信系统 2.docx》由会员分享,可在线阅读,更多相关《孙煜二进制扩频通信系统 2.docx(24页珍藏版)》请在冰豆网上搜索。
孙煜二进制扩频通信系统2
实验报告
课程名称数字信号处理
实验项目二进制扩频通信系统
实验环境Matlab7
学院信息与通信工程
专业电子信息工程
班级/学号
学生姓名
实验日期
成绩
指导教师
10级“数字信号处理课程设计”任务书
题目4
二进制扩频通信系统
主要
内容
学习二进制数字扩频通信系统构成原理,并用MATLAB编程实现加性噪声信道上的二进制数字扩频通信系统性能分析,加深对二进制数字扩频通信系统的理解。
设计
要求
基本要求:
基于MATLAB语言实现二进制数字扩频通信系统,并通过改变调制器映射参数M和噪声功率Pn所测出的不同差错率分别以曲线图绘出。
提高部分:
调制器输出和解调器输入乘以同一个伪随机序列,信道中再加入单频正弦噪声干扰,分析参数M对系统差错率的影响。
主要
仪器
设备
1、计算机1台,安装MATLAB软件
主要
参考
文献
[美]数字信号处理——使用MATLAB[M].西安:
西安交通大学出版社,2002.
课程设计进度计划(起止时间、工作内容)
本课程设计共安排5个题目,这是其中题目之一。
整个课程设计共24学时,分1.5周安排,具体进度如下:
4学时复习题目相关知识,掌握实现的原理;
12学时用MATLAB语言实现题目要求;
4学时进一步完善功能,现场检查、答辩;
4学时完成课程设计报告。
课程设计开始日期
2012.12.24
课程设计完成日期
2013.1.3
课程设计实验室名称
信号与信息处理实验室
地点
实验楼3-501、503
资料下载地址
http:
//59.64.74.111/实践环节/数字信号处理课程设计
目录
一.引言4
二.概述4
三.MATLAB中扩频通信系统介绍6
扩展频谱通信技术6
四.通过MATLAB编程实现二进制扩频通信系统7
(1)实现步骤7
(2)程序仿真7
1直接序列扩频通信系统仿真7
2加随机序列后序列进行扩频通信系统仿真11
(3)程序12
1.信号的扩频加噪检波以及误码率的计算12
五分析24
六结论24
七课设总结24
参考文献:
25
一.引言
扩频通信,即扩展频谱通信(SpreadSpectrumCommunication),它与光纤通信,卫星通信,一同被誉为进入信息时代的三大高技术通信传输方式。
扩频通信技术自50年代中期美国军方便开始研究,一直为军事通信所独占,广泛应用于军事通信、电子对抗以及导航、测量等各个领域。
直到80年代初才被应用于民用通信领域。
为了满足日益增长的民用通信容量的需求和有效地利用频谱资源,各国都纷纷提出在数字峰窝移动通信、卫星移动通信和未来的个人通信中采用扩频技术,扩频技术现已广泛应用于蜂窝电话、无绳电话、微波通信、无线数据通信、遥测、监控、报警等系统中。
二.概述
序列扩频系统(DS,DirectSequence)又称为序列调制系统或伪噪声系统(PN系统),简称为直扩系统,是目前应用较为广泛的一种扩展频谱系统。
直扩系统是将要发送的信息用伪随机(PN)序列扩展到一个很宽的频带上去,在接收端,用与发送端扩展用的相同的伪随机序列对接收到的扩频信号进行相关处理,恢复出原来的信息。
干扰信号由于与伪随机序列不相关,在接收端被扩展,使落入信号频带内的干扰信号功率大大降低,从而提高了系统的输出信噪(干)比,达到抗干扰的目的。
一种典型的扩展频谱系统如图1所示。
图1典型扩展频谱系统框图
它主要由原始信息、信源编译码、信道编译码(差错控制)、载波调制与解调、扩频调制与解扩频和信道六大部分组成。
信源编码的目的是去掉信息的冗余度,压缩信源的数码率,提高信道的传输效率。
差错控制的目的是增加信息在信道传输中的冗余度,使其具有检错或纠错能力,提高信道传输质量。
调制部分是为使经信道编码后的符号能在适当的频段传输,如微波频段,短波频段等。
扩频调制和解扩是为了某种目的而进行的信号频谱展宽和还原技术。
与传统通信系统不同的是,在信道中传输的是一个宽带的低谱密度的信号。
数字信号的频带传输与模拟通信相似,要使某一数字信号在带限信道中传输,就必须用数字信号对载波进行调制。
对于大多数的数字传输系统来说,由于数字基带信号往往具有丰富的低频成分,而实际的通信信道又具有带通特性,因此,必须用数字信号来调制某一较高频率的正弦或脉冲载波,使已调信号能通过带限信道传输。
这种用基带数字信号控制高频载波,把基带数字信号变换为频带数字信号的过程称为数字调制。
那么,已调信号通过信道传输到接收端,在
接受端通过解调器把频带数字信号还原成基带数字信号,这种数字信号的反变换称为数字解调。
通常,我们把数字调制与解调合起来称为数字调制,把包括调制和解调过程的传输系统叫做数字信号的频带传输系统。
三.MATLAB中扩频通信系统介绍
扩展频谱通信技术
1,理论基础
扩频通信的基本理论是根据信息论中的Shannon公式.即C=Bl092(1+S/N)
(1)式中:
c为系统的信道容量(bit/s):
B为系统信道带宽(Hz);S为信号的平均功率;N为噪声功率。
Shannon公式表明了一个系统信道无误差地传输信息的能力跟存在于信道中的信噪比(sin)以及用于传输信息的系统信道带宽(B)之间的关系。
该公式说明了两个最重要的概念:
一个是在一定的信道容量的条件下,可以用减少发送信号功率、增加信道带宽的办法达到提高信道容量的要求:
一个是可以采用减少带宽而增加信号功率的办法来达到。
扩频增益是扩频通信的重要参数,它反应了扩频通信系统抗干扰能力的强弱.其定义为接收机相关器输出信噪比和接收机相关器输入信噪比之比,即式中,S;和So分别为接收机相关器输入、输出端信号功率;N;和No分别为相关器的输入、输出端干扰功率;Rs为伪随机码的信息速率,&为基带信号的信息速率;B。
为频谱扩展后的信号带宽,Bd频谱扩展前的信号带宽。
2,实现方法
扩频通信与一般的通信系统相比,主要是在发射端增加了扩频调制。
而在接收端增加了扩频解调的过程,扩频通信按其工作方式不同主要分为直接序列扩频系统、跳频扩频系统、跳时扩频系统、线性调频系统和混合调频系统。
现以直接序列扩频系统为例说明扩万方数据仿真技术频通信的实现方法。
图1为直接序列扩频系统的原理框图
四.通过MATLAB编程实现二进制扩频通信系统
(1)实现步骤
1.编写程序生成调制器模块,将已生成的二进制数字1映射为M个连续+1的序列和将一个二进制数字0映射为M个连续-1的序列。
由此,M个连续+1代表一个矩形脉冲的采样形式。
2.编写程序生成噪声发生器,它产生一个范围在(-a,a)上均匀分布数的序列,每一个噪声样本被加到对应的信号样本上。
3.编写程序生成解调器模块,将来自信道接收到的这个M个受到噪声污损的序列+1或-1相加。
4.检测器将解调器的输出与零做比较,如果输出大于0就判决为1,如果输出小于0就判决为0。
如果检测器的输出与从发射器传送的比特不一致,就被计数器计为1个差错。
Ø提高部分
5.调制器的输出乘上一个M位的伪随机序列(用随机数发生器产生等概的±1序列),解调器输入乘以同一个伪随机序列。
传输信道受到加性噪声和一个单频正弦噪声的干扰。
假定正弦噪声幅度大于M。
6.用和不用伪随机序列执行该仿真系统,对不同M值(如M=50,100,500,1000)测量差错率,并比较不同系统的效果。
(2)程序仿真
1直接序列扩频通信系统仿真
第一步,先采用较少的码元数搭建直扩系统,编写程序生成调制器模块
设信源信息码的总长度为20,每个信息码内含50个采样点。
通过sign,rand函数,把20个(0,1)区间内的随机数变成20个只用“1”与“-1”表示的信息码,而后再通过一个循环,对每一个信息码采样50次,共生成1000个采样点,然后得
到了调制后的波形。
clc,clear,closeall%main
m=50;%信息码内含50个采样点
code_length=20;%信息码元个数
a=2;%噪声幅度
function[x,s]=modulator(m,code_length)%m为采样点数目,code_length为信息码元个数
扩频
N=1:
code_length;
rand('seed',0)
x=sign(rand(1,code_length)-0.5);%信息码%产生在-1到=+1之间的随机数
fori=1:
code_length;
s((1+(i-1)*m):
i*m)=x(i);%每个信息码元内含m个采样点
end
end
生成的信息码的波形图如图所示。
第二步,编写程序生成噪声发生器
先要产生载波,一个载波周期内含50个采样点,经过20次循环,生产1000个对载波的采样点,然后与噪声noise对应点相加,就得到了加燥后的波形。
function[tran]=noise(a,m,code_length,s)
noise=(rand(1,m*code_length)-0.5)*a*2;%a=2
tran=noise+s;%加噪后信号
end
第三步,编写程序生成解调器
解调相当于调制的逆过程,将来自信道接收到的这个M个受到噪声污损的序列+1或-1相加进行解调。
程序如下:
function[d]=modemm(m,tran,code_length)
fori=1:
code_length;
d(i)=sign(sum(tran((1+(i-1)*m):
i*m)));
end
end
第四步,检测器将解调器的输出与零做比较
如果输出大于0就判决为1,如果输出小于0就判决为0。
function[z]=comp(d,code_length)%检波函数
fori=1:
code_length
if(d(i)<0)
z(i)=0;
else
z(i)=1;
end
end
end
第五步,计算误码率
利用函数调用,进行误码率计算,如果检测器的输出与从发射器传送的比特不一致,就被计数器计为1个差错。
clc,clear,closeall%main
m=50
code_length=20
A=1:
50
forj=1:
50;
a=A(j)
[x,s]=modulator(m,code_length)%[x,s]=modulator(m,code_length)扩频
[tran]=noise(a,m,code_length,s)%function[tran,noise]=noise(a,m,code_length,s)加噪
[d]=modemm(m,tran,code_length);
[z]=comp(d,code_length)%function[z]=comp(d)检波
count=0;
fori=1:
code_length
if(x(i)~=d(i))%x原始数据,d检波后的数据,若xd不同则count+1
count=count+1;
end
end
rate(j)=count/code_length;
end
figure
stem(rate);
title('噪声幅度1—50变化后的误码率')
2加随机序列后序列进行扩频通信系统仿真
3调制与解调
(3)程序
1.信号的扩频加噪检波以及误码率的计算
clc,clear,closeall
%main
m=50;
code_length=20;%信息码元个数
a=2;%噪声幅度
[x,s]=modulator(m,code_length);%调用,[x,s]=modulator(m,code_length)
figure
(1);
stem(s);
title('调制器')
xlabel('code_length*m');ylabel('幅度');
[tran]=noise(a,m,code_length,s)%调用,function[tran]=noise(a,m,code_length,s)加噪后信号
figure
(2);
stem(tran);
title('噪声发生器')
xlabel('code_length*m');ylabel('幅度');
[d]=modemm(m,tran,code_length);
figure(3);
stem(d);
title('解码后信号')
xlabel('code_length');ylabel('幅度');
[z]=comp(d,code_length);%调用检波,function[z]=comp(d)
figure(4);
stem(z);
title('检波后信号')
xlabel('code_length');ylabel('幅度');
count=0;
fori=1:
code_length
if(x(i)~=d(i))%x原始数据,d检波后的数据,若xd不同则count+1
count=count+1;
end
end
rate=count/code_length;
figure(5)
stem(rate);
title('误码率')
————————————————————
function[z]=comp(d,code_length)%检波函数
fori=1:
code_length
if(d(i)<0)
z(i)=0;
else
z(i)=1;
end
end
end
————————————————————
function[d]=modemm(m,tran,code_length)%解码
fori=1:
code_length;
d(i)=sign(sum(tran((1+(i-1)*m):
i*m)));
end
end
————————————————————
function[x,s]=modulator(m,code_length)%m为采样点数目,code_length为信息码元个数
,扩频
N=1:
code_length;
rand('seed',0)
x=sign(rand(1,code_length)-0.5);%信息码%产生在-1到=+1之间的随机数
fori=1:
code_length;
s((1+(i-1)*m):
i*m)=x(i);%每个信息码元内含m个采样点
end
end
————————————————————
function[tran]=noise(a,m,code_length,s)%加噪后信号
noise=(rand(1,m*code_length)-0.5)*a*2;
tran=noise+s;
end
————————————————————
function[rate]=rate(code_length,X,z,j)%计算误码率
count=0;
fori=1:
code_length;
if(X(i)~=z(i));
count=count+1;
end
end
rate(j)=count/code_length;
end
————————————————————
clc,clear,closeall%main
m=50
code_length=20
A=1:
50
forj=1:
50;
a=A(j)
[x,s]=modulator(m,code_length)%[x,s]=modulator(m,code_length)扩频
[tran]=noise(a,m,code_length,s)%function[tran,noise]=noise(a,m,code_length,s)加噪
[d]=modemm(m,tran,code_length);
[z]=comp(d,code_length)%function[z]=comp(d)检波
count=0;
fori=1:
code_length
if(x(i)~=d(i))%x原始数据,d检波后的数据,若xd不同则count+1
count=count+1;
end
end
rate(j)=count/code_length;
end
figure
stem(rate);
title('噪声幅度1—50变化后的误码率')
截图:
3)信号的扩频加噪检波以及误码率的计算
clc,clear,closeall
%main
m=50;%元编码长度
code_length=40;%信号长度
a=5;%噪声幅度
[x,s]=modulator(m,code_length)%[x,s]=modulator(m,code_length)编码,调制器模块01编码
S=fft(s);%S为频域,频谱分析
X=fft(x);
figure
(1);
subplot(2,2,1)
stem(x);
title('原信号x')
xlabel('code_length');ylabel('幅度');
subplot(2,2,3)
stem(s);
title('编码后信号s')
xlabel('code_length*m');ylabel('幅度');
subplot(2,2,2)
stem(abs(X));
title('编码前信号频域X')
xlabel('code_length');ylabel('幅度');
subplot(2,2,4)
stem(abs(S));
title('编码后信号频域S')
xlabel('code_length*m');ylabel('幅度');
f0=30000000;%载波频率
fs=90000000;%抽样频率(大于2倍f0)
dt=fs/f0;
qd=16;%取点
n=(dt/qd):
(dt/qd):
dt;
zb=cos(2*pi*f0*n/fs);%载波函数
ZB=fft(zb)%载波频域
figure
(2);
subplot(2,1,1)
plot(zb);
title('载波时域')
xlabel('n=16');ylabel('幅度');
subplot(2,1,2)
stem(f0*n,ZB);
title('载波频域')
xlabel('Hz');ylabel('幅度');
fori=1:
m*code_length;%调制
ff((1+(i-1)*qd):
i*qd)=s(i);
zbh((1+(i-1)*qd):
i*qd)=ff((1+(i-1)*qd):
i*qd).*zb;
end
TT=1:
(2*fs/(m*code_length*qd)):
2*fs;
figure(3);
subplot(3,1,1)
plot(zbh(1:
1000));
title('调制后时域(取前1000点)')
xlabel('code_length*m*qd');ylabel('幅度');
ZBH=fft(zbh);
subplot(3,1,2)
plot(TT,abs(ZBH));
title('调制后信号频域(未加噪)')
xlabel('Hz');ylabel('幅度');
mqd=m*qd;%长度
[tran]=noise(a,mqd,code_length,zbh)%function[tran,noise]=noise(a,m,code_length,s)加噪
TRAN=fft(tran);
subplot(3,1,3)
plot(TT,abs(TRAN));
title('调制后信号频域(加噪)')
xlabel('Hz');ylabel('幅度');
fori=1:
m*code_length;%解调
jt((1+(i-1)*qd):
i*qd)=tran((1+(i-1)*qd):
i*qd).*zb;
end
JT=fft(jt);
figure(4);
subplot(2,1,1)
plot(abs(JT));
title('解调频域')
xlabel('Hz');ylabel('幅度');
subplot(2,1,2)
plot(jt);
title('解调时域')
xlabel('n');ylabel('幅度');
[d]=modemm(m*qd,jt,code_length)
[z]=comp(d,code_length)
figure(5);
subplot(3,1,1)
stem(x);
title('原信号')
xlabel('code_length');ylabel('幅度');
subplot(3,1,2)
stem(z)
title('解码后信号')
xlabel('code_length');ylabel('幅度');
count=0;
fori=1:
code_length
if(x(i)~=d(i))
count=count+1;
end
end
rate=count/code_length;
subplot(3,1,3)
stem(a,rate);
title('误码率')
xlabel('噪声幅度');ylabel('误码率');
截图:
五分析
六结论
七课设总结
参考文献
【1】.吴志强扩频通信的基本原理和特定农村电气化2000(9)
【2】.吴明捷,谢祖容,徐丽洁扩频系统抗干扰性能分析辽宁工程技术大学学报(自然科学版)2001(6)
【3】.吴明捷,周小正,马景兰扩展频谱通信系统处理增益的分析石油化工高等学校学报2001(9)
【4】.孙鹏勇直接序列扩频通信系统处理增益的分析辽宁工程技术大学学报20000(4)
【5】.高丙坤,阎胜玉,袁静,朴晓光,姚鹏举直接序列扩频通信系统误码率的仿真分析大庆石油学院学报2002(6)
【7】.曾兴雯,刘乃安,孙献璞《扩展频谱通信及其多址技术》西安电子科技大学出版社
【8】.王立宁,乐光新,詹菲《MATLAB与通信仿真》人民邮电大学
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 孙煜二进制扩频通信系统 二进制 通信 系统