继续讲解!该来到直接序列扩频知识的讲解课程了。这个难度对于本科生而言,已经绰绰有余!真心希望老师们能够量力而行的给学生们布置毕业设计课题!什么是扩频通信呢?
扩展频谱通信,简称扩频通信,是一种信息传输方式,其信号所占有的频带宽度远大于所传信息必需的最小带宽。频带的扩展是通过一个独立的码序列(一般是伪随机码,比如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)
文章出处:【微信公众号:通信工程师专辑】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !