Equation for Matlab Code
2 次查看(过去 30 天)
显示 更早的评论
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
采纳的回答
William Rose
2022-5-26
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 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!