Signal routing (Mux, Demux, Switch) in Simulink - Time & Space Complexity
We want to understand how the time to route signals changes as the number of signals grows.
How does adding more signals affect the work done by Mux, Demux, and Switch blocks?
Analyze the time complexity of the following Simulink signal routing setup.
% Simulink model snippet
MuxBlock = mux(signal1, signal2, ..., signalN);
DemuxBlock = demux(MuxBlock, N);
SwitchBlock = switch(controlSignal, input1, input2);
This setup combines N signals into one vector, splits them back, and selects between two inputs based on a control signal.
Look at the parts that repeat work as input size grows.
- Primary operation: Combining or splitting N signals in Mux and Demux blocks.
- How many times: Each signal is processed once during muxing and once during demuxing, so about 2N operations.
As the number of signals N increases, the work grows roughly in direct proportion.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 20 operations |
| 100 | About 200 operations |
| 1000 | About 2000 operations |
Pattern observation: Doubling the number of signals roughly doubles the work needed.
Time Complexity: O(n)
This means the time to route signals grows linearly with the number of signals.
[X] Wrong: "The Switch block time grows with the number of signals like Mux and Demux."
[OK] Correct: The Switch block only selects between inputs based on a control signal, so its time does not grow with the number of signals.
Understanding how signal routing scales helps you design efficient models and explain performance in real projects.
"What if the Mux combined signals in multiple stages instead of one? How would that affect the time complexity?"
Practice
Solution
Step 1: Understand the function of Mux
A Mux block takes several input signals and combines them into a single output signal vector.Step 2: Compare with other blocks
Demux splits signals, Switch selects signals, and Delay delays signals. Only Mux combines signals.Final Answer:
To combine multiple signals into one signal -> Option CQuick Check:
Mux combines signals = C [OK]
- Confusing Mux with Demux
- Thinking Switch combines signals
- Assuming Mux delays signals
Solution
Step 1: Recall Demux block behavior
Demux takes a single input vector signal and splits it into multiple output signals.Step 2: Match with options
Only One input signal, multiple output signals describes one input and multiple outputs, which fits Demux.Final Answer:
One input signal, multiple output signals -> Option AQuick Check:
Demux splits one input to many outputs = A [OK]
- Reversing input and output roles
- Confusing Demux with Mux
- Assuming Demux has multiple inputs
Input1 = 3;
Input2 = 7;
Input3 = 5;
mux_out = Mux([Input1, Input2, Input3]);
demux_out = Demux(mux_out);
What will be the value of
demux_out[1] (the second output of Demux)?Solution
Step 1: Understand Mux output
Mux combines inputs [3, 7, 5] into a vector: mux_out = [3, 7, 5].Step 2: Understand Demux output
Demux splits mux_out back into separate outputs: demux_out[0]=3, demux_out[1]=7, demux_out[2]=5.Final Answer:
7 -> Option DQuick Check:
Second Demux output = 7 [OK]
- Mixing up output indices (0-based vs 1-based)
- Assuming Demux changes order
- Expecting error due to indexing
If the Switch block is configured to output Input1 when Control is 0, but the output is always 20, what is the likely error?
Solution
Step 1: Analyze expected Switch behavior
With Control=0, output should be Input1=10, but output is 20 (Input2).Step 2: Identify cause of wrong output
This suggests the control logic is inverted or misconfigured, causing the block to select Input2 when Control=0.Final Answer:
Control signal logic is inverted or misconfigured -> Option AQuick Check:
Wrong output means control logic error = D [OK]
- Assuming inputs are swapped without checking control
- Thinking Switch can't handle numbers
- Ignoring control signal connection
Solution
Step 1: Understand the requirement
We need to select one of three sensor signals based on a control signal with values 0, 1, or 2.Step 2: Evaluate block combinations
A Multiport Switch block can select one input from many based on control. Combining sensors with Mux then using Multiport Switch fits this need.Step 3: Why other options fail
Use a Mux to combine sensors, then a Switch block with control signal to select output uses a simple Switch which only selects between two inputs, not three. Use a Demux to split sensors, then multiple Switch blocks to select output uses Demux incorrectly. Use three Switch blocks each connected to one sensor, controlled by the same control signal uses multiple Switches but control signal can't select one cleanly.Final Answer:
Use a Mux to combine sensors, then a Multiport Switch block with control signal to select output -> Option BQuick Check:
Multiport Switch selects among many inputs = A [OK]
- Using simple Switch for more than two inputs
- Misusing Demux for selection
- Trying multiple Switches with one control signal
Ready to prove it?
Pass the test and this pattern moves unknown
