m基于可见光通信系统的RFID接口过程以及ALOHA防碰撞算法的matlab仿真

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: m基于可见光通信系统的RFID接口过程以及ALOHA防碰撞算法的matlab仿真

1.算法描述

   射频识别技术(Radio Frequency Identification,RFID)是一种非接触式自动识别技术,与传统的识别方式相比,它无需直接接触、无需光学可视、无需人工干预即可完成信息输入和处理,具有操作方便快捷、存储数据量大、保密性好、反应时间短、对环境适应性强等优点,现在已广泛应用于工业自动化、商业自动化和交通运输管理等领域,成为当前IT业研究的热点技术之一。

  典型的RFID系统主要包括三个部分:电子标签(tag)、读写器(Read)和应用系统(如图1)。电子标签放置在被识别的对象上,是RFID系统真正的数据载体。通常电子标签处于休眠状态,一旦进入读写器作用范围内就会被激活,并与读写器进行无线射频方式的非接触式双向数据通信,以达到识别并交换数据的目的。此外,许多读写器还都有附加的通信接口,以便将所获的数据传给应用系统进行进一步的处理。

    对具有多个上传信道可同时上传ID信息的RFID 系统的空中接口过程进行仿真, 探讨系统识别标签的速率与信道数的关系,并与现有标准ISO,18000-6C的识别速率进行对比RFID 系统的空中接口过程, 当多个上传信道同时上传ID的时候,那么必然会涉及到多个信道之间的干扰,那么信道数目越多,这种相互干扰的就越严重,从而影响对不同上传ID识别速率,所以我们需要研究多信道和识别速度的关系。根据上面内容,需要研究两个方面的东西,一个接口过程,一个防碰撞算法。   

   RFID的接口过程满足如下的结构框图:

1.png

关于防碰撞算法:

     进行多种算法的对比:设置不同的ID数量,然后分别仿真其对应的识别时间,即速率,然后做出仿真图。包括二进制搜索算法。标准ISO,18000-6C用的是ALOHA算法。

    “Aloha算法是一种非常简单的TDMA算法,该算法被广泛应用在RFID系统中。这种算法多采取“标签先发言”的方式,即标签一进入读写器的阅读区域就自动向读写器发送其自身的ID,随即标签和读写器间开始通信。

   ALOHA算法是随机接入算法的一种,当标签要发送数据信息时,它可以在任意时间段随机发送,把它称为纯ALOHA算法。

2.matlab算法仿真效果
matlab2022a仿真结果如下:
2.png
3.png
4.png
5.png

3.MATLAB核心程序

%参数定义
%信息码长度
SNR           = [10:1:17];
TDL           = [500,400,300,200,100,50,20,10];
ERR           = zeros(1,length(SNR));
 
for jj = 1:length(SNR)
    jj
    Num = 0;
    Ber = 0;
    while Ber <= TDL(jj); 
    Num = Num + 1;
    Ber
 
    Frame_length  = 10*64;    
    %信息码速率为10KHz
    Rates         = 10e3; 
    %发送带宽20KHz
    Bwidth        = 2*Rates;     
    %发送信号功率2W
    Tpower        = 2;                        
    %载波频率70MHz
    fc            = 70e6;      
    %采样频率280MHz,满足四倍采样
    fs            = fc*4;        
    %20KHz方波
    Swave1        = 20e3;            
    %40KHz方波
    Swave2        = 40e3;             
    %采样点数
    M             = fs/(2*Swave2);   
    %信息码采样点
    L             = fs/Rates; 
    %2ASK调制的调制度
    ma            = 0.5;     
    %alpha值
    alpha         = 2*ma/(1-ma);                         
 
 
    %%
    %随机信息码产生
    data_code0 = zeros(1,Frame_length);
    %随机产生信息码
    data_code0 =(randn(1,Frame_length)>=0.5);
 
    %%
    %CRC校验
    data_code  = func_CRC(data_code0);
 
    %%
    %数据采样化
    data_code_sample = func_samples(data_code,Frame_length,L);
 
    %%
    %编码
    data_code_sample = func_encode(data_code_sample,data_code,Frame_length,L,M);
 
    %%
    %调制发送
    %FIR低通滤波器设计
    data_sample_fir  = func_filter(data_code_sample,fs,fc);
    T                = Frame_length*L*(1/fs);
    t                = [0:1/fs:T-(1/fs)];
    Carriers         = cos(2*pi*fc*t);
    %ASK调制
    RFID_ASK         =((2*Tpower).^0.5)*(1+alpha*data_sample_fir).*Carriers;
    %ASK调制信号加正弦波干扰
    RFID_ASK_sin     = RFID_ASK + 10*cos(2*pi*fc*t+pi/6); 
 
 
    %高斯信道
    snr                = SNR(jj);                                  
    RFID_ASK_sin_N     = awgn(RFID_ASK_sin,snr,'measured');
 
 
    figure(1);
    subplot(221)
    plot(RFID_ASK(100:1000));
    title('2ASK调制信号');
    axis([0,1000,-10,10]);
 
    subplot(222)
    plot(RFID_ASK_sin(100:1000));
    grid on;
    title('ASK调制信号加正弦波干扰');
    axis([0,1000,-30,30]);
 
    subplot(223)
    plot(RFID_ASK_sin_N(100:1000));
    grid on;
    title('过信道之后信号');
    axis([0,1000,-30,30]);
 
 
    %限幅
    AMP                = 10;
    RFID_ASK_sin_N_amp = func_amp_limit(RFID_ASK_sin_N,AMP);
 
 
    %ASK解调
    [RFID_deASK_filter,amp]=func_AKS_Demod(RFID_ASK_sin_N_amp,Carriers,fc,fs);
 
 
    subplot(224)
    plot(RFID_deASK_filter(100:end));
    grid on;
    title('2ASK解调信号');
    axis([0 L*Frame_length -5 20]);
 
 
    %判决门限
    RFID_deASK10  = func_unsamples(amp,Frame_length,M);
 
    %解码
    data_code_rec = func_decode(RFID_deASK10,Frame_length);
 
    %统计误码率
    Err_rate      = func_err(data_code_rec,data_code,Frame_length);
    Ber           = Ber + Err_rate*Frame_length;
    end
    ERR(jj) = Ber/(Num*Frame_length);
end
 
figure;
semilogy(SNR,ERR,'b-o');
xlabel('SNR');
ylabel('BER');
grid on;
 01_094_m
相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
12天前
|
算法 数据安全/隐私保护 索引
OFDM系统PAPR算法的MATLAB仿真,对比SLM,PTS以及CAF,对比不同傅里叶变换长度
本项目展示了在MATLAB 2022a环境下,通过选择映射(SLM)与相位截断星座图(PTS)技术有效降低OFDM系统中PAPR的算法实现。包括无水印的算法运行效果预览、核心程序及详尽的中文注释,附带操作步骤视频,适合研究与教学使用。
|
20天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
21天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
21天前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
|
21天前
|
机器学习/深度学习 算法 5G
基于MIMO系统的SDR-AltMin混合预编码算法matlab性能仿真
基于MIMO系统的SDR-AltMin混合预编码算法通过结合半定松弛和交替最小化技术,优化大规模MIMO系统的预编码矩阵,提高信号质量。Matlab 2022a仿真结果显示,该算法能有效提升系统性能并降低计算复杂度。核心程序包括预编码和接收矩阵的设计,以及不同信噪比下的性能评估。
41 3
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
205 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
131 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
95 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)