Bird
Raised Fist0
Simulinkdata~5 mins

Discrete transfer function in Simulink - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Discrete transfer function
O(n)
Understanding Time Complexity

We want to understand how the time it takes to compute a discrete transfer function changes as the input size grows.

Specifically, how does the number of calculations increase when the input signal length increases?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


% Define numerator and denominator coefficients
num = [0.1 0.2 0.3];
den = [1 -0.4 0.12];

% Create discrete transfer function system
sys = tf(num, den, 0.1);

% Simulate system response for input signal u
y = lsim(sys, u, t);
    

This code creates a discrete transfer function and simulates its output for an input signal over time.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Calculating each output value by applying the difference equation from the transfer function.
  • How many times: Once for each time step in the input signal.
How Execution Grows With Input

Each output value depends on a fixed number of previous inputs and outputs, so the work per step stays the same.

Input Size (n)Approx. Operations
10About 10 times the fixed calculation steps
100About 100 times the fixed calculation steps
1000About 1000 times the fixed calculation steps

Pattern observation: The total work grows directly with the input length.

Final Time Complexity

Time Complexity: O(n)

This means the time to compute the output grows in a straight line as the input signal gets longer.

Common Mistake

[X] Wrong: "The time to compute the output grows faster than the input length because of repeated calculations."

[OK] Correct: Each output depends only on a fixed number of past values, so the work per step stays constant, making total time grow linearly.

Interview Connect

Understanding how discrete transfer functions scale with input size helps you explain system simulations clearly and confidently in real projects.

Self-Check

"What if the transfer function had feedback loops with variable length delays? How would the time complexity change?"

Practice

(1/5)
1. What does a discrete transfer function in Simulink represent?
easy
A. The color scheme of the Simulink blocks
B. The hardware configuration of the computer
C. The relationship between input and output in a step-by-step system
D. The file format used to save Simulink models

Solution

  1. Step 1: Understand the purpose of discrete transfer functions

    A discrete transfer function models how the output of a system depends on its input at discrete time steps.
  2. Step 2: Eliminate unrelated options

    Options about colors, hardware, or file formats do not describe system behavior.
  3. Final Answer:

    The relationship between input and output in a step-by-step system -> Option C
  4. Quick Check:

    Discrete transfer function = input-output relation [OK]
Hint: Think input-output step relation for discrete systems [OK]
Common Mistakes:
  • Confusing transfer function with hardware settings
  • Thinking it describes visual aspects
  • Mixing file formats with system models
2. Which of the following is the correct way to define a discrete transfer function in Simulink?
easy
A. Using numerator and denominator coefficient vectors with a sample time
B. Using only a numerator vector without denominator
C. Using continuous time parameters without sample time
D. Using a single scalar value without vectors

Solution

  1. Step 1: Recall discrete transfer function definition

    It requires numerator and denominator coefficient vectors plus a sample time to define the discrete system.
  2. Step 2: Check options for completeness

    Only Using numerator and denominator coefficient vectors with a sample time includes numerator, denominator, and sample time, which is necessary.
  3. Final Answer:

    Using numerator and denominator coefficient vectors with a sample time -> Option A
  4. Quick Check:

    Numerator + denominator + sample time = correct syntax [OK]
Hint: Remember: numerator, denominator, and sample time needed [OK]
Common Mistakes:
  • Omitting denominator coefficients
  • Using continuous parameters for discrete blocks
  • Using single scalar instead of vectors
3. Given a discrete transfer function with numerator = [0.5 0.5] and denominator = [1 -0.3], and sample time = 1, what is the output at step 1 if the input is 1 at step 0 and 0 afterwards?
medium
A. 0
B. 0.5
C. 0.65
D. 0.15

Solution

  1. Step 1: Calculate output at step 1 using difference equation

    Output y[1] = 0.5*u[1] + 0.5*u[0] - (-0.3)*y[0]. Given u[0]=1, u[1]=0, y[0]=0 (initially), y[1] = 0.5*0 + 0.5*1 + 0.3*0 = 0.5.
  2. Step 2: Confirm initial conditions and input values

    Initial output y[0] is zero, input at step 1 is zero, so calculation is correct.
  3. Final Answer:

    0.5 -> Option B
  4. Quick Check:

    y[1] = 0.5*0 + 0.5*1 + 0.3*0 = 0.5 [OK]
Hint: Use difference equation with initial zero output [OK]
Common Mistakes:
  • Ignoring initial output conditions
  • Using wrong input values for step 1
  • Mixing numerator and denominator signs
4. You defined a discrete transfer function with numerator = [1 0] and denominator = [1 -0.5], sample time = 1. The output does not change when input changes. What is the likely error?
medium
A. Denominator coefficients are incorrect length
B. Sample time is set to zero
C. Numerator coefficients do not represent the input properly
D. Input signal is not connected

Solution

  1. Step 1: Validate the coefficients

    Numerator [1 0] and denominator [1 -0.5] yield y[n] = u[n] + 0.5 y[n-1], which responds to input changes.
  2. Step 2: Identify the likely cause

    In Simulink, if output ignores input despite valid parameters, the input signal is probably not connected to the block.
  3. Final Answer:

    Input signal is not connected -> Option D
  4. Quick Check:

    No response? Verify input connection [OK]
Hint: If output unresponsive, check input connection first [OK]
Common Mistakes:
  • Ignoring numerator vector meaning
  • Assuming sample time zero is valid
  • Not verifying input connection
5. You want to design a discrete transfer function in Simulink to model a system with a delay of 2 steps and a gain of 0.8. Which numerator and denominator coefficients correctly represent this?
hard
A. Numerator = [0 0 0.8], Denominator = [1]
B. Numerator = [0.8 0 0], Denominator = [1 -0.2]
C. Numerator = [0 0.8 0], Denominator = [1 0]
D. Numerator = [0 0 1], Denominator = [0.8]

Solution

  1. Step 1: Understand delay and gain in numerator

    A delay of 2 steps means the gain appears at the third coefficient (index 2), so numerator should be [0 0 0.8].
  2. Step 2: Denominator for no feedback is [1]

    Since no feedback is mentioned, denominator is simply [1]. Other options have incorrect placements or values.
  3. Final Answer:

    Numerator = [0 0 0.8], Denominator = [1] -> Option A
  4. Quick Check:

    Delay = zeros before gain in numerator [OK]
Hint: Delay = zeros before gain in numerator vector [OK]
Common Mistakes:
  • Placing gain at wrong numerator index
  • Misunderstanding denominator role
  • Confusing gain and delay positions
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard