继续讲解程序!
一天的时间就有这么多人看啊!
真想学习的人很多啊。
我加紧录制课程!
%%%% 信道 %%%%%
% 设置信噪比
snr = [-6:-1] ;
for i = 1:length(snr)
for ii = 1:5
%%% 高斯白噪声信道
rcos_msg_source_carrier_noise = awgn(rcos_msg_source_carrier,snr(i),'measured');
%%% 瑞利信道 暂不考虑
%%%%%% 接收机 %%%%%%%
%%%%% 解调器
%%% 载波恢复
% 生成本地载波
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);
% 生成匹配滤波器
% a square-root raised cosine FIR filter with rolloff factor
% 滤波
% filter
rcos_msg_source_MF = filter( rcos_fir, 1, rcos_msg_source_LP );
% 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);
% 涉及三个滤波器,固含有三个滤波器延迟累加。
%%% 判决
msg_source_MF_option_sign = sign(rcos_msg_source_MF_option);
% figure(9)
% plot(rcos_msg_source_MF_option,'-*')
% title('时域波形')
%%%% 解码器
% bchdecode % BCH译码
%%%%% 信宿 %%%%%%
%%% 误码性能比对
% [err_number,bit_err_ratio] = biterr(x,y)
[err_number(i,ii),bit_err_ratio(i,ii)] = biterr(msg_source(1:length(rcos_msg_source_MF_option)), (msg_source_MF_option_sign + 1)/2);
end % for ii
end % for i
sum_err_number = sum(err_number');
toc;
%%%%%% 仿真结果 %%%%%
%%%%%% 结论 %%%%%%%%
% 完成了BPSK调制解调器的仿真。
% 没有包含编译码内容。
% 采用循环前:Elapsed time is 1.213879 seconds.
% 采用循环后:Elapsed time is 1.142998 seconds.
% 验证了循环可以减少程序的运行时间。
% 2019-4-25
程序完结!下堂课的内容更精彩!也更注重工程实际内容。预先剧透一下:涉及到最佳采样点的内容哦!也请同学们思考一下,当下用于判决的采样点是最佳采样点吗?
文章会与视频课程同步,帮助大家课后反复学习!
未完,待续!