Signal generation on Simulink?

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)

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))
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

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.

Products

Release

R2021a

Asked:

on 21 Feb 2022

Commented:

on 22 Feb 2022

Community Treasure Hunt

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

Start Hunting!