扩频通信实验及完整代码.docx

上传人:b****6 文档编号:4067768 上传时间:2022-11-27 格式:DOCX 页数:17 大小:139.62KB
下载 相关 举报
扩频通信实验及完整代码.docx_第1页
第1页 / 共17页
扩频通信实验及完整代码.docx_第2页
第2页 / 共17页
扩频通信实验及完整代码.docx_第3页
第3页 / 共17页
扩频通信实验及完整代码.docx_第4页
第4页 / 共17页
扩频通信实验及完整代码.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

扩频通信实验及完整代码.docx

《扩频通信实验及完整代码.docx》由会员分享,可在线阅读,更多相关《扩频通信实验及完整代码.docx(17页珍藏版)》请在冰豆网上搜索。

扩频通信实验及完整代码.docx

扩频通信实验及完整代码

 

《扩频通信》实验报告

 

题目:

扩频通信系统仿真

指导教师:

学号:

姓名:

专业:

 

一、跳频通信系统原理介绍

跳频扩频系统是用伪随机码序列构成跳频指令来控制频率合成器,在多个频率中进行有选择的频移键控。

及直扩系统相比,调频系统中的伪随机序列并不是直接传输,而是用来选择信道。

调频系统的组成框图如下图所示:

图中,扩频调制器是一个上变频器,扩频解调器是一个下变频器。

频率合成器A和频率合成器B分别为上变频器和下变频器提供本振信号,他们的输出信号在调频码的控制下按照统一规律跳变。

二、实验目的

学习扩频通信系统技术理论基础及调频序列扩频系统基本原理,并设计出跳频扩频通信系统模型。

此通信系统具体包括信源模块、信息调制模块、扩频码产生模块、扩频模块、信道模块、解扩模块、信息解调模块。

三、程序设计流程图

四、仿真环境

本次扩频通信系统的仿真是用MATLABR2012a模拟实现的,用MATLAB编程来实现对扩频通信系统的仿真。

五、模块源代码及仿真波形

本系统主要包括信源发出的基带信号、发送端产生的扩频码(PN码)、频率合成器产生待调制的载频信号、FSK调制、接收端产生的扩频码、频率合成器产生和发送端相同的载频信号、FSK解调,其中频率合成器产生的载频信号频率受到扩频码的控制,本系统中由频率合成器产生1000Hz、1050Hz、1150Hz三种频率的载频。

(1)调频系统调制模块

A)%%产生信源输出的信息序列(双极性不归零码)

Tm=0.25;fm=1/Tm;%码率

[u,time]=gensig('square',2*Tm,EndTime,Ts);

y=2*(u-0.5);

figure

(1)

plot(time,y);

title('信源输出的信息序列');

xlabel('time(seconds)');

axis([02-22]);

B)%%FSK调制及频谱

T0=0.1;f0=1/T0;

T1=0.2;f1=1/T1;

[u0,time]=gensig('sin',T0,EndTime,Ts);

[u1,time]=gensig('sin',T1,EndTime,Ts);

y0=u0.*sign(-y+1);

y1=u1.*sign(y+1);

SignalFSK=y0+y1;%FSK信号

%%FSK调制的频谱

nfft=fs+1;

Y=fft(SignalFSK,nfft);

PSignalFSK=Y.*conj(Y)/nfft;

f=fs*(0:

nfft/2)/nfft;

figure

(2)

plot(f,PSignalFSK(1:

nfft/2+1));

title('FSK调制后的频谱');

xlabel('frequency(Hz)');

axis([0100-infinf]);

C)%%FSK调制后,低通滤波

cof_low=fir1(64,25/fs);

SignalFSK_1=filter(cof_low,1,SignalFSK);

figure(3)

plot(time,SignalFSK_1);

title('FSK调制后经过低通滤波器的波形');

xlabel('time(seconds)');

axis([02-22]);

YSignalFSK_1=fft(SignalFSK_1,nfft);

PSignalFSK_1=YSignalFSK_1.*conj(YSignalFSK_1)/nfft;

f=fs*(0:

nfft/2)/nfft;

figure(4);

plot(f,PSignalFSK_1(1:

nfft/2+1));

title('FSK调制后经过低通滤波的频谱');

xlabel('frequency(Hz)');

axis([0100-infinf]);

 

(2)混频模块

%%

%混频1

fc1=1000;Tc=1/fc1;%频点:

1000

[Carrier,time]=gensig('sin',Tc,EndTime,Ts);%产生扩频载波1

MixSignal1=SignalFSK_1.*Carrier;

%混频2

fc2=1050;Tc=1/fc2;%频点:

1050

[Carrier,time]=gensig('sin',Tc,EndTime,Ts);%产生扩频载波2

MixSignal2=SignalFSK_1.*Carrier;

%混频3

fc3=1150;Tc=1/fc3;%频点:

1150

[Carrier,time]=gensig('sin',Tc,EndTime,Ts);%产生扩频载波3

MixSignal3=SignalFSK_1.*Carrier;

figure(5)

plot(time,MixSignal1,time,MixSignal2,'r',time,MixSignal3,'k');

title('混频后的波形');

xlabel('time(seconds)');

axis([02-22]);

 

(3)带通滤波

cof_band=fir1(64,[fc1-12.5,fc1+12.5]/fs);

yMixSignal=filter(cof_band,1,MixSignal1);

cof_band=fir1(64,[fc2-12.5,fc2+12.5]/fs);

yMixSignal2=filter(cof_band,1,MixSignal2);

cod_band=fir1(64,[fc3-12.5,fc3+12.5]/fs);

yMixSignal3=filter(cof_band,1,MixSignal3);

figure(6)

plot(time,yMixSignal,time,yMixSignal2,'r',time,yMixSignal3,'k');

title('经过带通滤波的混频信号');

xlabel('time(seconds)');

axis([02-22]);

(4)解扩模块

A)%%接收端解扩

fc=1000;Tc=1/fc;

[Carrier,time]=gensig('sin',Tc,EndTime,Ts);%产生扩频载波

Sign_rec=Sign_send;

ySign_rec=Sign_rec.*Carrier;

figure(8);

plot(time,ySign_rec);

title('解扩后的信号');

xlabel('time(second)');

axis([02-11]);

B)%%低通滤波,取下边频

yrr=ySign_rec;

cof_low=fir1(64,25/fs);

Sign_rec_1=filter(cof_low,1,ySign_rec);

figure(9);

plot(time,Sign_rec_1);

title('解扩后的下边频的信号');

xlabel('time(seconds)');

axis([02-11]);

YSign_rec_1=fft(Sign_rec_1,nfft);

PSign_rec_1=YSign_rec_1.*conj(YSign_rec_1)/nfft;

f=fs*(0:

nfft/2)/nfft;

figure(10);

plot(f,PSign_rec_1(1:

nfft/2+1));

title('解扩后的下边频频谱');

xlabel('frequency(Hz)');

axis([0100-infinf]);

C)%%FSK解码

cof_f0=fir1(64,[f0-0.25,f0+0.25]/fs);

cof_f1=fir1(64,[f1-0.25,f1+0.25]/fs);

DeFSK0=filter(cof_f0,1,Sign_rec_1);

DeFSK1=filter(cof_f1,1,Sign_rec_1);

rDeFSK0=DeFSK0.*u0;

rDeFSK1=DeFSK1.*u1;

rDeFSK=rDeFSK0-rDeFSK1;

figure(11);

plot(time,rDeFSK);

title('抽样判决前的信号');

xlabel('time(seconds)');

axis([02-22]);

D)%%抽样判决

Sampletime=0.25/Ts;

Message=[];

Num=0;

while(Num<2/Ts)

if(mod(Num,Sampletime)==0)

Message=[Messageones(1,Sampletime+1)*sign(sum(rDeFSK(Num+1):

(Num+Sampletime)))];

end

Num=Num+Sampletime;

end

figure(12);

plot((1:

length(Message))/fs,Message);

title('输出端恢复的信息');

xlabel('time(seconds)');

axis([02-22]);

 

六、附录(完整源代码)

clc

clearall

%调频通信过程

%给出三个频点,滤波后仅对第一个频点进行解扩

%初始化

Ts=0.00001;

fs=1/Ts;

EndTime=2-Ts;%2s

%%产生信源输出的信息序列(双极性不归零码)

Tm=0.25;fm=1/Tm;%码率

[u,time]=gensig('square',2*Tm,EndTime,Ts);

y=2*(u-0.5);

figure

(1)

plot(time,y);

title('信源输出的信息序列');

xlabel('time(seconds)');

axis([02-22]);

%%FSK调制

T0=0.1;f0=1/T0;

T1=0.2;f1=1/T1;

[u0,time]=gensig('sin',T0,EndTime,Ts);

[u1,time]=gensig('sin',T1,EndTime,Ts);

y0=u0.*sign(-y+1);

y1=u1.*sign(y+1);

SignalFSK=y0+y1;%FSK信号

%%FSK调制的频谱

nfft=fs+1;

Y=fft(SignalFSK,nfft);

PSignalFSK=Y.*conj(Y)/nfft;

f=fs*(0:

nfft/2)/nfft;

figure

(2)

plot(f,PSignalFSK(1:

nfft/2+1));

title('FSK调制后的频谱');

xlabel('frequency(Hz)');

axis([0100-infinf]);

%%FSK调制后,低通滤波

cof_low=fir1(64,25/fs);

SignalFSK_1=filter(cof_low,1,SignalFSK);

figure(3)

plot(time,SignalFSK_1);

title('FSK调制后经过低通滤波器的波形');

xlabel('time(seconds)');

axis([02-22]);

YSignalFSK_1=fft(SignalFSK_1,nfft);

PSignalFSK_1=YSignalFSK_1.*conj(YSignalFSK_1)/nfft;

f=fs*(0:

nfft/2)/nfft;

figure(4);

plot(f,PSignalFSK_1(1:

nfft/2+1));

title('FSK调制后经过低通滤波的频谱');

xlabel('frequency(Hz)');

axis([0100-infinf]);

%%

%混频1

fc1=1000;Tc=1/fc1;%频点:

1000

[Carrier,time]=gensig('sin',Tc,EndTime,Ts);%产生扩频载波1

MixSignal1=SignalFSK_1.*Carrier;

%混频2

fc2=1050;Tc=1/fc2;%频点:

1050

[Carrier,time]=gensig('sin',Tc,EndTime,Ts);%产生扩频载波2

MixSignal2=SignalFSK_1.*Carrier;

%混频3

fc3=1150;Tc=1/fc3;%频点:

1150

[Carrier,time]=gensig('sin',Tc,EndTime,Ts);%产生扩频载波3

MixSignal3=SignalFSK_1.*Carrier;

figure(5)

plot(time,MixSignal1,time,MixSignal2,'r',time,MixSignal3,'k');

title('混频后的波形');

xlabel('time(seconds)');

axis([02-22]);

%%带通滤波

cof_band=fir1(64,[fc1-12.5,fc1+12.5]/fs);

yMixSignal=filter(cof_band,1,MixSignal1);

cof_band=fir1(64,[fc2-12.5,fc2+12.5]/fs);

yMixSignal2=filter(cof_band,1,MixSignal2);

cod_band=fir1(64,[fc3-12.5,fc3+12.5]/fs);

yMixSignal3=filter(cof_band,1,MixSignal3);

figure(6)

plot(time,yMixSignal,time,yMixSignal2,'r',time,yMixSignal3,'k');

title('经过带通滤波的混频信号');

xlabel('time(seconds)');

axis([02-22]);

%%传输信道

Sign_send=yMixSignal;

Sign_rec=Sign_send;

%%接收端解扩

fc=1000;Tc=1/fc;

[Carrier,time]=gensig('sin',Tc,EndTime,Ts);%产生扩频载波

Sign_rec=Sign_send;

ySign_rec=Sign_rec.*Carrier;

figure(8);

plot(time,ySign_rec);

title('解扩后的信号');

xlabel('time(second)');

axis([02-11]);

%%低通滤波,取下边频

yrr=ySign_rec;

cof_low=fir1(64,25/fs);

Sign_rec_1=filter(cof_low,1,ySign_rec);

figure(9);

plot(time,Sign_rec_1);

title('解扩后的下边频的信号');

xlabel('time(seconds)');

axis([02-11]);

YSign_rec_1=fft(Sign_rec_1,nfft);

PSign_rec_1=YSign_rec_1.*conj(YSign_rec_1)/nfft;

f=fs*(0:

nfft/2)/nfft;

figure(10);

plot(f,PSign_rec_1(1:

nfft/2+1));

title('解扩后的下边频频谱');

xlabel('frequency(Hz)');

axis([0100-infinf]);

%%FSK解码

cof_f0=fir1(64,[f0-0.25,f0+0.25]/fs);

cof_f1=fir1(64,[f1-0.25,f1+0.25]/fs);

DeFSK0=filter(cof_f0,1,Sign_rec_1);

DeFSK1=filter(cof_f1,1,Sign_rec_1);

rDeFSK0=DeFSK0.*u0;

rDeFSK1=DeFSK1.*u1;

rDeFSK=rDeFSK0-rDeFSK1;

figure(11);

plot(time,rDeFSK);

title('抽样判决前的信号');

xlabel('time(seconds)');

axis([02-22]);

%%抽样判决

Sampletime=0.25/Ts;

Message=[];

Num=0;

while(Num<2/Ts)

if(mod(Num,Sampletime)==0)

Message=[Messageones(1,Sampletime+1)*sign(sum(rDeFSK(Num+1):

(Num+Sampletime)))];

end

Num=Num+Sampletime;

end

figure(12);

plot((1:

length(Message))/fs,Message);

title('输出端恢复的信息');

xlabel('time(seconds)');

axis([02-22]);

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1