主要内容

使用图表对象模型的通信协议

这个例子展示了如何使用一个独立的Stateflow®图表模型帧同步和通信系统中的symbol-detection组件。独立的图表实现经典图表与MATLAB®作为行动语言语义。可以计划图通过使用MATLAB的全部功能,包括那些功能限制的代码生成模型®。金宝app有关更多信息,请参见为执行为MATLAB对象创建Stateflow图表

实现一个Symbol-Detection算法

在这个例子中,通信系统的输入由0和1的二进制信号收到每10毫秒。输入信号可以包含的任意组合:

  • 连续脉冲女士770 -(77)标记的数据帧的开始和结束,确保系统同步。

  • 连续170毫秒脉冲(17)表明一个象征。

  • 连续470毫秒脉冲(47)来表示符号B。

该文件sf_frame_search.sfx定义了一个独立的Stateflow图,实现了通信协议。图表包括两个并行分解外州。的初始化状态重置价值的本地数据象征在每个执行步骤的开始。的搜索定义symbol-detection状态包含逻辑算法。当这种状态检测到的脉冲所允许的通信协议,相应的名称存储为象征象征并显示在MATLAB命令窗口。并行分解使图表对输入数据进行预处理。有关更多信息,请参见定义独家使用状态分解和并行模式

跟踪脉冲通过几个执行步骤的长度,图表使用操作符。这个操作符可以简化图表的设计通过消除需要一个手动计数器。例如,条件(计数(脉冲)= = 17)从亚态警卫即将离任的过渡NewFrame。这种情况成为真正的数据脉冲是一个连续17执行步骤。在这种情况下,表过渡到CouldBeA亚态。如果这个转变是紧随其后的是一个输入的零,然后图表寄存器接收和转换回象征NewFrame亚态。否则,过渡到的图表SearchForB国家的条件(计数(脉冲)= = 29)搜索一个额外的29的标记符号B。

执行独立的图

在MATLAB脚本sf_frame_tester.m示例代码生成短信号组成的几个有效的脉冲和一个传输错误。错误由一个470 -脉冲女士太长代表符号和太短的代表符号。

% %符号检测算法进行测试%生成一个短信号组成的几个有效的脉冲和一个%传输错误。f = sf_frame_search(脉冲= 0);%创建表对象sendPulse (77);%帧标记sendPulse (f, 17);%的sendPulse (f, 47);% BsendPulse (f, 37);%传输错误sendPulse (f, 47);% BsendPulse (f, 17);%的sendPulse (77);%帧标记删除(f);%删除图对象函数sendPulse (f, n)% n的发送一个脉冲和一个0到图表对象f。i = 1: n步(f,脉冲= 1);printDot (1)结束printDot(0)步骤(f,脉冲= 0);函数printDot (x)持续的k如果isempty (k) k = 1;结束如果x = = 0流(“\ n”);k = 1;elseifk = = 50流(”。\ n”);k = 1;其他的流(“。”);k = k + 1;结束结束结束

运行脚本产生这些结果在MATLAB命令窗口:

.................................................. ...........................帧.................一个...............................................B .....................................错误...............................................B .................一个.................................................. ...........................框架

在仿真过程中,图表动画提供了一个视觉指示运行时行为的算法。

另请参阅

相关的话题