How to convert idinput signal to analog signal

Illustration
Strider - 2023-08-08T09:57:01+00:00
Question: How to convert idinput signal to analog signal

Hello,   I am trying to work on a signal processing project to convert an idinput binary signal to an analog signal.   For example, suppose I have specified the following code to generate the idinput signal:   Range = [0,1]; Band = [0 1]; u1 = idinput([100,1,1],'prbs',Band,Range);,/pre> How can I, for example, take this digital binary signal and convert it into an analog signal so I can use it in in a system response with a transfer function thru lsim. For example: sys = tf([8 18 32],[1 6 14 24]); t = 0:0.01:4; u = (this is the converted digital binary signal(u1)->analog signal) outputResposne=lsim(sys,u,t) Essentially, I am trying to take a PRBS (0,1) input signal, convert it to an analog signal, apply a transfer function on it, and measure the output signal(first as an analog signal), and then convert the analog output response signal back to digital   If there are better ways to supply a PRBS input signal and convert it to analog please let me know. Any help is greatly appreciated.

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

As I understand lsim, it automatically samples continuous time models using the defined method (or the method it decides to use, based on the model). So nothing is specifically required for continuous-time models, since lsim figures out on its own how best to discretise the model. Just assume the idinput signal is continuous, run it with lsim, and see what the result is.
 
With a few tweaks to the original code, it works —
 
 
Range = [0,1];
Band = [0 1];
u1 = idinput([401,1,1],'prbs',Band,Range);
Warning: The PRBS signal delivered is the 401 first values of a full sequence of length 511.
sys = tf([8 18 32],[1 6 14 24])

 

sys =
 
     8 s^2 + 18 s + 32
  -----------------------
  s^3 + 6 s^2 + 14 s + 24
 
Continuous-time transfer function.

 

figure
bode(sys)
grid

 

figure
step(sys)
grid

 

t = 0:0.01:4;
u = u1;
outputResponse=lsim(sys,u,t);
figure
plot(t,outputResponse, '-')
hold  on
plot(t,u, '--')
hold off
grid
xlabel('Time (s)')
ylabel('Amplitude')

 


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!