0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

通信工程师专辑 来源:未知 2022-11-30 00:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

继续讲解!本人非常重视实践教学,在本科阶段就要把同学们的知识夯实。那么各种仿真就是最好的夯实工具。继续讲解扩频通信的知识。很多同学总结写的挺好,就是缺少实践。比如15级王美女的总结。

波形的仿真开发步骤:
要先完成该基带波形的性能仿真,然后通过比较来决定是否采用。
其次,在基带性能仿真程序的基础上结合专项仿真的结果进行相关模块的补充。
然后,在进行波形在实际系统实现过程中的细节仿真。要考虑实现过程中受到系统环境的影响。
最后,再不断的优化程序的不足。算法很重要,要通过阅读扩充知识,通过文档总结知识,才能不断提高自己。
总结的很到位,但自己实践了吗?关键是要实践!说到这,我就必须再讲讲BPSK程序了。这个程序掌握不了是肯定写不好扩频程序的。先看看BPSK的源代码吧!

%%% BPSK调制解调器误码性能仿真程序 %%

%%% BPSK_modem_sim2.m %%%%

%% date: 2016-12-26 author: 算法工匠 %%


%%%%% 程序说明

% 完成BPSK调制解调器的仿真,比较不同信噪比下的误码性能。

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

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

% 滚降因子:0.5

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

% 噪声:加性高斯白噪声

% 中频信号仿真


%%% 仿真环境

% 软件版本:matlab 2015b


%%% sim系列说明之处

% sim2:增加了不同信噪比下的误码性能仿真,

% 注释掉图形语句,节约仿真时间;


clear all;

close all;

format long;

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


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

bit_rate = 1000;

symbol_rate = 1000;

fre_sample = 16000;

symbol_sample_rate = 16;

% 一个符号内的采样倍数

fre_carrier = 4000;

% 生成低通滤波器

LPF_fir128 = fir1(128,0.2);

% 生成匹配滤波器

rolloff_factor = 0.5; % 滚降因子

rcos_fir = rcosdesign(rolloff_factor, 6, symbol_sample_rate);

% 生成匹配滤波器 a square-root raised cosine FIR filter with rolloff factor


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

%%% 随机信号

% msg_source = randint(1,1000);

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

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

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

% 2022年,randint函数已经不用了,需要更换为randi函数了,如何更换呢?


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

%%%%% 编码器

% 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; % 调试断点


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

% 设置信噪比

snr = -41 ;


for i = 1:length(snr)

%%% 高斯白噪声信道

rcos_msg_source_carrier_noise = awgn(rcos_msg_source_carrier,snr(i),'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);


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

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('频域波形')


% 滤波 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,bit_err_ratio] = biterr(msg_source(1:length(rcos_msg_source_MF_option)), (msg_source_MF_option_sign + 1)/2)


end

%%% 仿真结果 %%%

% snr ber

% -4 0.0114

% -3.5 0.0071

% -3 0.0046

% -2.5 0.0040

% -2.0 0.0019

% -1.5 0.0012

% -1.0 8.50e-04

% -0.5 6.00e-04

% 0 2.00e-04

% 0.5 1.00e-04

% 1 5.00e-04

% 注意:snr和信号的比特信噪比EbNo存在等效关系!

% EbNo = SNR + 10*lg(0.5*16)-10*lg(2)

% 比如 EbNo = 6dB

% berawgn(6,'psk',2,'nondiff') = 0.0024

% berawgn(5,'psk',2,'nondiff') = 0.0059

% 该误码率和snr为-3.8dB时的误码结果基本一致。

% 5 = -3.8 + 10*log10(0.5*16)

% 仿真表明该关系正确!

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

% 完成了BPSK调制解调器在不同误码率下的仿真。

% 仿真结果正确。

% 使用awgn函数需要了解函数中参数snr和比特信噪比之间的换算关系。

% 没有包含编译码内容。

% 2017-1-5

这种代码可是真正的干货!请认真消化!那滚降成型滤波器到底如何使用呢?什么是EbNo呢?这些问题可以先找度娘哦!

2022年,本专题系列的阅读量已经破万!

加油!我会一直努力!

由浅入深!

建议学通信相关专业的人士赶紧去看!


未完,待续!

20181105记录:

前段时间女儿写了一篇作文《歪脖子的爸爸》。这三个月我被强迫症折磨的要死要活的。从最开始的抖动到头往一边偏,真的很痛苦。膏药持续的贴以缓解肌肉酸痛,直到皮肤都破了。就这样,我还坚持拯救红包单车。但看到那些单车管理员都那么粗暴的对待单车,这个社会要能承受共享事物还需太长的素质之路要走。最近还建群抢红包推广文章,居然被一个以前的前台服务员说了一句:谁让你拉我进群的啊。我当时说了对不起,但是我拉你你可以拒绝啊,再说你是拿了所有的运气红包才说这句话的。这位曹姓女士的素质可见一斑,之前是由于她帮我定富建酒店的客房才加她为好友的(就是为了方便订客房),没想到她居然是这样的人。哎,早点分辨出来能避免更多的麻烦!社会上什么人都有,想做营销的同学们做好心里准备了吗?

修订记录

20181106 完成初稿;

20221129 修订内容v2;


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

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

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

    关注

    22

    文章

    2113

    浏览量

    54462

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    计算机专业408考研科目

    ”模型。 在这个阶段,不要急于背诵数据结构的代码或操作系统的算法,而是要理解计算机是如何“思考”的。你需要将数据结构视为信息的组织方式,将组成原理视为信息的物理载体,将操作系统视为资源的管理者,将网络视为
    发表于 04-11 16:44

    AA Boost Module V2:便捷的电源解决方案

    AA Boost Module V2:便捷的电源解决方案 在电子设计中,电源供应是一个关键问题。今天要给大家介绍的是DFRobot的独家产品——AA Boost Module V2(SKU
    的头像 发表于 03-27 12:50 199次阅读

    RDMA设计37:RoCE v2 子系统模型设计

    仿真模型。在 RoCE v2 协议中,本地主机与远程主机之间往往需要进行复杂的指令、信息、数据交互,使得在进行仿真验证时如何模拟复杂网络环境成为一个急需解决的问题。 因此,本IP设计了一个RoCE v2
    发表于 02-06 16:19

    十进制计算机硬件体系结构及“独值”量化逻辑运算革命(一)

    采用“独值”量化逻辑理论设计十进制数字计算机,十进制网络计算机,十进制模拟计算机,十进制模糊计算机,实现
    的头像 发表于 01-29 09:13 1117次阅读
    十进制<b class='flag-5'>计算机</b>硬件体系结构及“独值”量化逻辑运算革命(一)

    香蕉派 BPI-2K3000 工业计算机开发板采用龙芯2K3000芯片设计

    BPI-2K3000 工业计算机 []() Banana Pi BPI-2K3000工业计算机开发平台,基于龙芯最新一代2K3000(3B6
    发表于 11-15 11:43

    龙架构计算机系统能力核心课程教学研讨会圆满举行

    2025年11月8日,由教育部计算机类专业系统能力课程群虚拟教研室指导、北京航空航天大学计算机学院主办的龙架构计算机系统能力核心课程教学研讨
    的头像 发表于 11-14 13:52 784次阅读

    【作品合集】赛昉科技VisionFive 2单板计算机开发板测评

    赛昉科技VisionFive 2单板计算机开发板测评作品合集 产品介绍: 昉·星光 2是全球首款集成了3D GPU的高性能量产RISC-V单板计算机
    发表于 09-04 09:08

    2025年地方高校计算机类专业核心课程暑期师资培训成功举办

    近日,2025年地方高校计算机类专业核心课程暑期师资培训在昆明成功举办。培训由“中西部高校关键计算技术人才培养共同体”“计算机类专业系统能力课程
    的头像 发表于 08-20 11:29 1418次阅读

    工业计算机的重要性

    工业计算机对某些行业至关重要。我们将在下面详细解释这些行业中的工业计算机应用。1.制造与工业自动化工业级计算机非常适合制造工厂,特别是那些想要自动化装配过程的工厂。在这样的环境中,工业计算机
    的头像 发表于 07-28 16:07 726次阅读
    工业<b class='flag-5'>计算机</b>的重要性

    自动化计算机经过加固后有什么好处?

    -40℃的寒冷环境中运行⁰C和温度达到85℃的灼热环境,这要归功于此类系统中使用的宽温度组件和被动冷却技术。2.抗冲击和振动自动化计算机是工业级计算机,其设计和制造可
    的头像 发表于 07-21 16:44 757次阅读
    自动化<b class='flag-5'>计算机</b>经过加固后有什么好处?

    【VisionFive 2单板计算机试用体验】环境搭建与点灯实验

    一、概况 昉·星光 2是全球首款集成了GPU的高性能RISC-V单板计算机。与昉·星光相比,昉·星光 2全面升级,在处理器速度、多媒体处理能力、可扩展性等方面均有显著提升。性能卓越,价
    发表于 07-20 22:55

    自动化计算机的功能与用途

    工业自动化是指利用自动化计算机来控制工业环境中的流程、机器人和机械,以制造产品或其部件。工业自动化的目的是提高生产率、增加灵活性,并提升制造过程的质量。工业自动化在汽车制造中体现得最为明显,其中许多
    的头像 发表于 07-15 16:32 899次阅读
    自动化<b class='flag-5'>计算机</b>的功能与用途

    工业计算机与商用计算机的区别有哪些

    工业计算机是一种专为工厂和工业环境设计的计算系统,具有高可靠性和稳定性,能够应对恶劣环境下的自动化、制造和机器人操作。其特点包括无风扇散热技术、无电缆连接和防尘防水设计,使其在各种工业自动化场景中
    的头像 发表于 07-10 16:36 916次阅读
    工业<b class='flag-5'>计算机</b>与商用<b class='flag-5'>计算机</b>的区别有哪些

    权威评测:Orange Pi RV2等5 款 RISC-V 单板计算机测试-性能、基准测试、功能和见解

    如果计算的未来不是被锁定在专有架构上,那会怎样?想象一下,在这个世界上,开发人员和业余爱好者都可以利用开源硬件的强大功能自由构建、创新和实验。进入RISC-V单板计算机(SBC)领域—
    的头像 发表于 06-30 13:35 1392次阅读
    权威评测:Orange Pi RV<b class='flag-5'>2</b>等5 款 RISC-<b class='flag-5'>V</b> 单板<b class='flag-5'>计算机</b>测试-性能、基准测试、功能和见解

    【VisionFive 2单板计算机试用体验】 + 开箱体验

    在x86与ARM架构主导的单板计算机市场,中国团队打造的VisionFive 2(防星光2)如同一颗新星,凭借开源开放的RISC-V架构和成熟的桌面体验,为开发者与极客提供了全新的选择
    发表于 06-27 09:06