Equation for Matlab Code

6 vues (au cours des 30 derniers jours)
David Kendal
David Kendal le 25 Mai 2022
Commenté : William Rose le 26 Mai 2022
I have coded a swept sine signal using a for loop, I am aware that the equation would require a sigma for this.
in terms of x(t)=...
Could anyone help with placing this code into a mathmatical equation?
Many thanks
T=5; %size of window
fs=44100; %sampling frequency
df=1/T; %frequency res
dt=1/fs; %time resolution
t=(0:+dt:T-dt); %time vector
df_t=500; %swept rate (Hz/seconds)
% pre-allocate size of t:
sweptsin = zeros(size(t));
for i=1:+1:length(t)
%i=i+1;
if(i==1) %initialise f and t.
f=20; ti=0;
else
ti=ti+dt; %time increment
f=f+df_t*dt; %freq increment
end
w=2*pi*f; %omega
sweptsin(i)=sin(w*ti); %swept sine wave
end
  4 commentaires
David Kendal
David Kendal le 26 Mai 2022
And obviously a function of sin
David Kendal
David Kendal le 26 Mai 2022
https://hal.archives-ouvertes.fr/hal-02504321/document See this link. Cheers

Connectez-vous pour commenter.

Réponse acceptée

William Rose
William Rose le 26 Mai 2022
Suppose you want a signal that starts at 20 Hz and goes up to 10000 Hz at a rate of 500 Hz/sec, and you want a sampling rate of 44.1 kHz:
% Define constants
fs=44100;
f1=20; f2=10000;
dfdt=500;
%Compute other constants
dt=1/fs;
T=(f2-f1)/dfdt;
%Create signal
t=0:dt:T;
x=sin(2*pi*(f1+dfdt*t/2).*t);
%Display results
subplot(311), plot(t,x,'-r'); title('Entire signal');
subplot(312), plot(t,x,'-r'); xlim([0,1/f1]); title('Start');
subplot(313), plot(t,x,'-r.'); xlim([T-1/f2,T]); title('End'); xlabel('Time (s)');
Try it. Good luck.
  3 commentaires
David Kendal
David Kendal le 26 Mai 2022
Thank you for this!
William Rose
William Rose le 26 Mai 2022
@David Kendal, you're wecome.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by