Signal generation on Simulink?

2 views (last 30 days)
Hossam Amin
Hossam Amin on 21 Feb 2022
Commented: Hossam Amin on 22 Feb 2022
I would like to know how can I generate a signal that looks like this (in the image) mainly using Simulink or a script function that can be employed later in simulink.
Thanks

Answers (2)

Arif Hoq
Arif Hoq on 22 Feb 2022
You can use this script in a function block of Simulink. Just take y as a output in the simulink block.
fs = 9000; % signal sampled at a rate of 200 Hz for 1 second
t = 0:1/fs:1;
y1 = cos(2*pi*30*t);
y2 = cos(2*pi*5*t); % 5 Hz modulating signal
y2 = rescale(y2,0.15,1); % modulation amplitude min/max factor
y = y1 .* y2; % create amplitude-modulated signal
plot(y(1:7000))

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 22 Feb 2022
This modulation signal can be generated using the following Simulink model and/or this M-ffile:
fs = 5000; % sampling frequency (Hz)
t = 0:1/fs:1; % time vector
x = (1.25+sin(2*pi*25*t+pi/2)).*sin(2*pi*t*175);
plot(t,x), grid on
xlim([0, 0.25])
xlabel('Time, [sec]')
ylabel('Amplitude')
  1 Comment
Hossam Amin
Hossam Amin on 22 Feb 2022
Thanks for the answer.
I was thinking if I needed to add some random guassian noise to that signal and then consider the whole signal as semi-symmetric, subtract each data point with it's symmetric counter part. i.e in that case the midpoint is 0.125. So subtract point at 0.125s from point at 0s, point 0.2 from 0.05 and so on.
Hence, in this perfect signal such subtraction is equal to zero, however, when random noise is added to it, the subtraction will not be zero I believe.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!