计算机通信与网络v2 实验课程(15)

描述

继续讲解!该来到直接序列扩频知识的讲解课程了。这个难度对于本科生而言,已经绰绰有余!真心希望老师们能够量力而行的给学生们布置毕业设计课题!什么是扩频通信呢?

扩展频谱通信,简称扩频通信,是一种信息传输方式,其信号所占有的频带宽度远大于所传信息必需的最小带宽。频带的扩展是通过一个独立的码序列(一般是伪随机码,比如m序列和GOLD序列)来完成,用编码及调制的方法来实现的,与所传信息数据无关。在接收端则用同样的码进行相关同步接收、解扩及恢复所传信息数据。扩展频谱通信与光纤通信、卫星通信一同被称为进入信息时代的三大高技术通信传输方式。

这么重要的技术一定要仿真一下哦。这样你能直观的了解此项技术!2022年,此项专题已经整理成多个系列!欢迎大家深入学习!

通信网络

%%%       扩频通信调制解调器误码性能仿真程序  %%%

%%%%          DS_BPSK_modem_sim1.m            %%%   

%%%       date: 2017-03-01    author:算法工匠    %%%%


%%%%%   程序说明

% 完成扩频通信系统仿真,比较不同信噪比下的误码性能。

% 参数化编程。

% 通信体制具体内容如下:

% M序列:255位

% 调制方式:BPSK   编码方式:无

% 滚降因子:0.5

% 解调方式:相干解调  译码方式:无

% 噪声:加性高斯白噪声

% 基带信号仿真


%%%        仿真环境 

% 软件版本:matlab 2015b


%%%        sim系列说明之处


clear all;close all;format long;

%%**********       程序主体       *********%%


%%%%%%     系统参数     %%%%%   

bit_rate = 1024;

symbol_rate = 1024;

fre_sample = 16*symbol_rate;

symbol_sample_rate = 16;  

% 一个符号内的采样倍数

fre_carrier = 4000;


%%%%%%      信源       %%%%%%%%      

%%% 随机信号

% msg_source = randint(1,1000);

msg_source = [ones(1,20) zeros(1,20) randint(1,60)]; 

% 给出标志性的帧头,方便调试。

% 通常帧头会采用扩频序列,为了方便调试,可以采用全1和全0。


%%%%%%     发射机      %%%%%%     

%%%% 生成m序列

%%% m序列初始状态

stg = 8;

taps= [1 8];

inidata = [1 0 1 1 1 1 0 1];  % 初始相位


m_sequence =  funct_mseq_2015(stg, taps, inidata); 

% m_sequence取值为0和1。


bi_m_sequence = 2*m_sequence - 1;


%%%%% 扩频

ds_msg_source = (2*msg_source-1)'*bi_m_sequence;

% 完成每个符号的扩频


%%% 串并转换

bipolar_ds_msg_source = reshape(ds_msg_source',1,[]);


%%%%%% 调制器

%%% 滤波器

% rcosflt   滚降成型滤波

rcos_msg_source = rcosflt(bipolar_ds_msg_source,symbol_rate,fre_sample);

% Roll-off factor 为 0.5。


% 频域观察

fft_rcos_msg_source = abs(fft(rcos_msg_source));


% figure(1)

% plot(rcos_msg_source,'-*')

% title('时域波形')

% figure(2)

% plot(fft_rcos_msg_source)

% title('频域波形')


aaa = 1;  % 调试断点


%%% 载波发送

time =[1:length(rcos_msg_source)];

rcos_msg_source_carrier = rcos_msg_source'.*cos(2*pi*fre_carrier.*time/fre_sample);


% 频域观察

fft_rcos_msg_source_carrier = abs(fft(rcos_msg_source_carrier));


figure(3)

plot(rcos_msg_source_carrier)

title('时域波形')

figure(4)

plot(fft_rcos_msg_source_carrier)

title('频域波形')


aaa = 1;  % 调试断点


%%%%%%       信道       %%%%%%%% 

% 设置信噪比

snr = -10 ;

% 扩频下的信噪比需要换算才能得到真正的信噪比。

%    非常重要的概念!!!


%%% 高斯白噪声信道

rcos_msg_source_carrier_noise = awgn(rcos_msg_source_carrier,snr,'measured');

% rcos_msg_source_carrier_noise = awgn(rcos_msg_source_carrier,snr);


%%% 瑞利信道

% 暂无


%%%%%%      接收机      %%%%%%      


%%%%%% 解调器

%%% 载波恢复

% 生成本地载波

rcos_msg_source_noise = rcos_msg_source_carrier_noise.*cos(2*pi*fre_carrier.*time/fre_sample);


% 滤波高频,保留基带信号

LPF_fir128 = fir1(128,0.2);  

%  生成低通滤波器

rcos_msg_source_LP = filter( LPF_fir128, 1, rcos_msg_source_noise );

% 延时64个采样点输出。


figure(5)

plot(rcos_msg_source_LP)

title('时域波形')

figure(6)

plot(abs(fft(rcos_msg_source_LP)))

title('频域波形')


% 生成匹配滤波器

rolloff_factor = 0.5;  % 滚降因子


rcos_fir = rcosdesign(rolloff_factor, 6, symbol_sample_rate);         

%  生成匹配滤波器系数


% 滤波

rcos_msg_source_MF = filter( rcos_fir, 1, rcos_msg_source_LP );

% 使用filter函数


figure(7)

plot(rcos_msg_source_MF,'-*')

title('时域波形')

figure(8)

plot(abs(fft(rcos_msg_source_MF)))

title('频域波形')


%%% 最佳采样点选择

% 选取最佳采样点,一个符号取一个点进行判决

decision_site = 160; 

% (96+128+96)/2 = 160  三个滤波器延迟值

rcos_msg_source_MF_option = rcos_msg_source_MF(decision_site: symbol_sample_rate : end);

% 涉及三个滤波器,固含有三个滤波器延迟累加。


%%%%%%%% 解扩频

% 不涉及捕获过程

% 捕获会涉及信号的频率和码相位参数的获取

for i = 1:length(rcos_msg_source_MF_option)/length(bi_m_sequence)

    % 乘累加

  sum_PN(i) = sum(bi_m_sequence.*rcos_msg_source_MF_option((i-1)*length(bi_m_sequence)+1:i*length(bi_m_sequence)));

end


%%%%% 判决输出

msg_source_MF_option_sign = sign(sum_PN);


figure(9)

plot(rcos_msg_source_MF_option,'-*')

title('时域波形')


%%%%%% 解码器

% bchdecode  % BCH译码


%%%%%         信宿       %%%%%%%%  

%%% 误码性能比对

% [err_number,bit_err_ratio] = biterr(x,y) 

[err_number,bit_err_ratio] = biterr(msg_source(1:length(msg_source_MF_option_sign)), (msg_source_MF_option_sign + 1)/2)


%%%%%%%%%     仿真结果       %%%%%%%

% 给出不同信噪比下的误码性能。

通信网络

再来看一下程序的结论。有总结才能有提高!

%%%%%    结论   %%%%%%   

% 完成了扩频通信系统的仿真。

% 没有包含编译码内容。

% 同步内容没有涉及。

% 信噪比需要经过扩频因子的换算。

% 程序中在snr=-10dB时,误码为0。

% 2017-3-5

要用到之前课上学过的函数程序funct_mseq_2015。知识可是一环套一环的哦。如果不会,请阅读前面的课程。

通信网络

未完,待续!

通信网络

题外话!

倡议和提倡垃圾分类,这样能带来回收的便利。我们大学校园里面已经开始这样的环保行动了,南京市鼓楼区的小学也采用了垃圾分类箱。环保意识从孩子开始树立,真棒。日本在这方面做的很棒,虽然我不喜欢小日本,但这样的环保意识和行动还是值得称赞的。垃圾分类可以提高垃圾的资源价值和经济价值,力争物尽其用。

通信网络

作为一名大学老师,是不是管的太多了。是的,我管的很多,连学生们上卫生间不遵守规定都要管。不管不行啊,我们都是社会大家庭的一份子。这些大学生出去后要给社会注入正能量才行啊,这就需要老师在大学期间什么都要管一点。你们说,对吗?

通信网络

修订记录

20181105 完成初稿;

20221122 修订内容v2;


原文标题:计算机通信与网络v2 实验课程(15)

文章出处:【微信公众号:通信工程师专辑】欢迎添加关注!文章转载请注明出处。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分