How to create a sine wave with variable frequency - Simulink
41 views (last 30 days)
Show older comments
Hello,
I have the following problem. I have a set of data of my vehicle and need the acceleration data in the shape of a sine wave. The sine wave is then used to include some bearing faults. I could compute for every time step the frequency based on the velocity, which then can be used in the further steps.
Does anyone has an idea in how to create a sine wave with various frequency?
Thank you in advance!
0 Comments
Accepted Answer
Mathieu NOE
on 8 Dec 2020
hello
if you have the frequency at each time step, you can also calculate the angular increment at each time step : d_theta = 2*pi*freq*dt.
Then you simply need to integrate it (do a cumulative sum, modulo 2pi) to get the angle, then apply sin function.
0 Comments
More Answers (1)
Rafael Hernandez-Walls
on 8 Dec 2020
something like this: (?)
t=linspace(0,2*pi,100);
f=rand(1,100);
y=sin(f.*t);
plot(t,y)
1 Comment
Mathieu NOE
on 13 Dec 2020
here a demo for a sinus log sweep
% log sweep demo
f1 = 50; % start freq
f2 = 200; % stop freq
Fs = 1e3; % sampling frequency
duration = 30; % s
%%%%%%%%%%%
dt = 1/Fs;
samples = floor(duration*Fs)+1;
t = (0:dt:(samples-1)*dt);
log10_freq = linspace(log10(f1),log10(f2),samples);
freq = 10.^log10_freq;
omega = 2*pi*freq;
angle_increment = omega.*dt;
angle = cumtrapz(angle_increment); % angle is the time integral of omega.
signal = sin(angle);
figure(1);
plot(t,signal)
%%%%%%%%%%%
See Also
Categories
Find more on Switches and Breakers in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!