simulink中的mux与的demux

Question

对Mux与demux的好奇。

1. 代码与仿真图

source.m中输出两个信号:xd=cos(t);与 yd=sin(t);,Source.m文件代码如下:

%function [sys,x0,str,ts] = spacemodel(t,x,u,flag)
function [sys,x0,str,ts] = Source(t,x,u,flag)
switch flag,
case 0,
    [sys,x0,str,ts]=mdlInitializeSizes;
case 3,
    sys=mdlOutputs(t,x,u);
case {1,2,4,9}
    sys=[];
otherwise
    error(['Unhandled flag = ',num2str(flag)]);
end

function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;

sizes.NumOutputs     = 2;
sizes.NumInputs      = 0;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0  = [];
str = [];
ts  = [0 0];

function sys=mdlOutputs(t,x,u)
 xd=cos(t);
 yd=sin(t);

sys(1)=xd;
sys(2)=yd;
%sys(3)=xd;
% sys(4)=yd;

仿真构建如图:
在这里插入图片描述

2 demux

运行上述仿真,得到波形如图(从左到右分别为scope1,scope2,scope3):
在这里插入图片描述
现象:
scope1中为xd,yd的波形;
scope2中为xd的波形;
scope3中为yd的波形。
结论:
demux可以将信号按照先后顺序分离(具体顺序为:在m函数中先出现的信号在第一位,后出现的为第二位,以此类推)。

3 mux

构建仿真图如下:
在这里插入图片描述
运行仿真,得到scope4波形吐下:
在这里插入图片描述
结论:scope4波形同scope1,则mux具有将信号组合起来的作用。

3.1 mux的使用顺序问题

构建仿真如图
在这里插入图片描述
scope4波形如图:
在这里插入图片描述
此时,已经无法从scope4中看到顺序问题,先从scope4-To Workspace中看。回到matlab工作区,观察到出现scope4变量如图:
在这里插入图片描述
查看scope4的具体内容:
在这里插入图片描述
观察到scope4的顺序为:
xd;yd;xd;yd()从左往右看)与仿真中,从上到下的顺序相同。

4 总结

  1. demux 按顺序将信号分离。
  2. mux 按顺序将信号束在一起(数据不发生耦合,像是一根电缆内部包含了许许多多的信号线)。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值