继续给出视频课程对应的源程序。
视频课程网址:
http://www.fangzhenxiu.com/course_detail.html?id=67213
虽然收费(平台也要生存,请大家理解!),但肯定物超所值。里面有两堂课是免费的,大家可以去听。
我将实际调试的过程都在视频里面演示了。虽然我处于生病中,但这种传播技艺的事情还是让我有动力坚持。
该上程序干货了。上次课给出了不同信噪比下的误码率测试程序,也就是视频中提到的BPSK_modem_sim1_6。
今天给出BPSK_modem_sim1_8程序。加入了循环比对误码语句。为什么这么改写?请观看视频。里面进行了详细讲解。小小提示一下:tic和toc能起什么作用呢?
%% BPSK调制解调器误码性能仿真程序 %
%%% BPSK_modem_sim1.m %%
%% date: 2019-04-25 author: 算法工匠 %%
%%%%% 程序说明
% 完成BPSK调制解调器的仿真,
% 比较不同信噪比下的误码性能。
% 通信体制具体内容如下:
% 调制方式:BPSK 编码方式:无
% 滚降因子:0.5
% 解调方式:相干解调 译码方式:无
% 噪声:加性高斯白噪声
% 中频信号仿真
%%% 仿真环境
% 软件版本:matlab 2015
% 有些函数已经不用,但依旧可以使用。
%%% sim系列说明之处
% 1_7:明确了Es/N0(dB)=10log10(0.5*Tsym/Tsamp)+SNR(dB)
% for 实信号
% :使用randi函数
% 1_8:使用循环测试误码性能,比较运行时间;
clear all;
close all;
format long;
%%******* 程序主体 *****%%
tic;
%%% 系统参数 %%%
bit_rate = 1000;
symbol_rate = 1000;
fre_sample = 16000;
symbol_sample_rate = 16;
% 一个符号内的采样倍数
fre_carrier = 4000;
%%%%% 信源 %%%%%%
%%% 随机信号
% msg_source = randint(1,1000);
msg_source = [ones(1,20) zeros(1,20) randi([0 1],1,960)];
% 给出标志性的帧头,方便调试。
% 通常帧头会采用扩频序列,为了方便调试,可以采用全1和全0。
%%%%% 发射机 %%%%%%
%%%% 编码器
% bchcode % BCH编码
%%%% 调制器
%%% 双极性变换
bipolar_msg_source = 2*msg_source - 1;
%%% 滤波器
% rcosflt 滚降成型滤波
rcos_msg_source = rcosflt(bipolar_msg_source,1000,16000);
% 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; % 调试断点
下堂课接着讲程序!
20190427记录:
在仿真秀APP里面开设了网课,持续更新,帮助那些真正想学的学生们!很多人到了研究生或者工作以后,才会展现出对知识的渴望,我愿意帮助这样的人群。在我这个二本学校,想改变学习现状,真的太难了!!!