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

继续讲解!什么是ebno呢?通信专业的学生必须要了解这个概念,以后会时不时的接触它!先看看百度怎么讲这个概念的?eb表示单位比特的能量,单位是焦耳(joules)。no表示功率谱密度,单位是瓦特/赫兹(watts/hz)。
为什么仿真要用ebno而不用snr呢?因为用ebno可以直观的看到系统性能,比如采用qpsk,那么误码率ber达到千分之一时,ebno大约为7db。如果采用了信道编码又进行了均衡,也采用qpsk星座映射,但ebno为7db时,ber为百分之一,那就证明系统设计有问题或者仿真出错了。因为snr和ebno是线性关系,所以用snr为参数看ber只能看到大概的趋势,不能知晓系统性能到底如何。
snr与eb/no的关系用公式来表达可以是这样的:snr=10*log10(eb/no) 。10*log10(eb/no)是在计算用db做单位衡量的eb/no。
接着上堂课的程序继续讲解。
来到了接收机部分!
%%%%    接收机   %%%%      
%%%% 解调器
%%% 载波恢复
% 生成本地载波
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
% 滤波
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);
% 涉及三个滤波器,固含有三个滤波器延迟累加。
figure(9)
plot(rcos_msg_source_mf_option,'-*')
title('时域波形')
%%% 判决
msg_source_mf_option_sign = sign(rcos_msg_source_mf_option);
aaa = 1; % 调试断点
%%%%%% 译码器
%%% 帧信息送入译码器
msg_source_frame = msg_source_mf_option_sign(41:40+15*100); 
% 取中间一段进行译码
aaa = 1; % 调试断点
%%% 数据类型转换
msg_source_frame_bi = (msg_source_frame + 1)/2;  
% 二进制转换
msg_source_reshape = reshape(msg_source_frame_bi,15,length(msg_source_frame_bi)/15);
msg_source_frame_gf = gf(msg_source_reshape');   
% 转换为伽罗华域
%%% bch译码
msg_source_decode = bchdec(msg_source_frame_gf, bch_n, bch_k);
aaa = 1;  % 调试断点
%%% 并串转换
msg_source_decode_s = reshape( msg_source_decode', 1, []);
%%% 伽罗华域转换为十进制数
msg_source_decode_dec = ones(1,length(msg_source_decode_s));
for i=1:length(msg_source_decode_s)
    if msg_source_decode_s(i)==0
        msg_source_decode_dec(i) = 0;
    else
        msg_source_decode_dec(i) = 1;
    end
end
%%%%%         信宿      %%%%%%  
%%% 误码性能比对
% [err_number,bit_err_ratio] = biterr(x,y)  %   函数示例
% 无编解码状态下误码性能比对
% [err_number1,bit_err_ratio1] = biterr();
% 编解码状态下误码性能比对
[err_number2,bit_err_ratio2] = biterr(msg_source(1:length(msg_source_decode_dec)),msg_source_decode_dec);
aaa = 1;  % 调试断点
%%%%     仿真结果      %%%%%
%%% 误码性能数据
%%% 图形显示
% semilogy
%%%%%    结论   %%%%% 
% 完成了bpsk编码调制解调器的仿真,程序仿真结果正确。
% 注意shape函数的用法,按列进行数据排序。
% 所以需要进行多次矩阵转置。
% 2017-1-9
% 优化程序语句。进行有无编解码状态下误码性能比对。
% 2017-1-13
未完,待续!
20181107记录:
最近越来越感到需要在微信里面做“减法”。因为和很多人进行微信交流,发现非常的不通畅。很多人经常不回你的微信(包括学生、朋友)。遇到这种现象会让人觉得交流很困难。与其交流困难,那么就不交流吧。避免双方都烦恼。早年在企业担任领导职务的时候,总是在回到老家的时候到一位初中同学那买烟。从来没有要过发票。也算是一种帮忙吧。结果人家赞赏我文章一块钱还要在微信里面给我特地留言:我赞赏了哦。以前每年回家都是我组织同学聚会,至少请大家吃好喝好,但别人不领你的情,自然也就很难交往了。这样类似的初高中同学有好几个。既然不同路,那就散了。还有个初中同学李某某更搞笑,带着情人来南京买车,没钱找我借。我认为初中同学怎么会骗我呢?而且他说第二天就还。于是我用信用卡帮他付了四万块。结果鸟无音讯了。那几日把我给郁闷的不行。他来南京,我好吃好喝的招待,结果人家这么对你。这就是所谓的同学情?还好隔了一个月把钱还给我了,但搞得我信用卡逾期。这样的同学少见,但确实有。请擦亮你的眼!!!
社会就是这么千姿百态,同学们进入社会请多留一份心眼。坏人脸上不会写坏字。其实大学校园里面也有类似的学生,我在课堂上就遇到好几个,怎么办?只能采用不理睬策略,也没办法管。
坚持教学,不断努力传播知识!
其他事莫问!问了也没用!
修订记录
20181109 完成初稿;
20221202 修订内容v2;
原文标题:计算机通信与网络v2 实验课程(18)
文章出处:【微信公众号:通信工程师专辑】欢迎添加关注!文章转载请注明出处。

俄罗斯正式敞开大门 准备迎基因编辑入户
基于CPCI总线的智能A/D,D/A模块设计
防止量子计算机被攻击,我们该做些什么
远翔-LED驱动芯片-FP7208XR-G1
人工智能会让人力资本更值钱
计算机通信与网络v2 实验课程(18)
Arduino IoT Cloud开始与ChatGPT联机运作
Ampere Altra系列处理器的锁和内存序
车视野3D 360全景GQ2330解码一体机进行实测
2021蓝莓大赏落幕,YESOUL野小兽荣获“最佳线上直播课”奖
基于SCA的软件无线电在FPGA上设计与实现
智能离子风机风棒联网监控静电消除器
Autotalks宣布立即推出ZooZ 2安全设备
Pixel音频失真谷歌已承认是属于硬件问题
探析丰田第二代TSS实际测试成绩
关于霍尼韦尔Granit3800i工业级一维影像扫描器的性能分析和应用
广东省委书记黄坤明调研德赛西威惠南工业园
技术分享 | 验证入门黄金组合:数字仿真器与调试系统
中国芯片制造商中芯国际将通过在上海发行股票筹集65.5亿美元
多种多样的便携式充电器