Time vector to generate a sinusoid signal with 0.5 seconds duration , Fs =200

조회 수: 23 (최근 30일)
Hi , please I'm confused with the following time vectors t1 and t2 to generate 0.5 second duration sinusoid signal :
Vector t1 has equally spaced samples at Ts intervals , but the signal x1 has duration equal to ( duration+Ts ) seconds , I checked x1 length .
Vector t2 has equally spaced samples not Ts intervals , signal x2 dutaion = ( duration ) secons excatly , which time vector is correct ?
%% Generates a sine wave of 0.5 second duration
F0=10; % Sinusoid frequency in Hz
Fs=200; % sampling frequency samples / sec
duration=0.5; % signal duration is seconds
Ts=1/Fs; % sampling Interval
t1=0:Ts:duration; % time vector with equally spaced samples at Ts intervals
t2=linspace(0,duration,duration*Fs); % time vector with samples not at Ts intervals
x1=sin(2*pi*F0*t1); % signal duration = ( duration+Ts ) seconds , length = 101 points
x2=sin(2*pi*F0*t2); % signal duration = ( duration ) secons , length = 100 points
  댓글 수: 5
Mohamad
Mohamad 2020년 10월 23일
편집: Mohamad 2020년 10월 23일
t1 has 101 points , this means signal duration = ( 101/Fs ) = 0.505 seconds not 0.5 seconds .
I need the signal duration to be 0.5 seconds with sampling instants at 1/Fs (0.005) .
So I think using the following will be correct , right ?
t2=linspace(0,0.5,duration*Fs+1);
Mathieu NOE
Mathieu NOE 2020년 10월 23일
yes , if you prefer take the second option
t2=linspace(0,0.5,duration*Fs+1);
but the first method works also. example you just take 2 samples with dt = 0.005
first sample correspond to t = 0
second sample correspond to t = 1 * dt = 0.005
you have 2 samples for a signal duration = 0.005 (= 1 x dt)
so this is what I tried to explain

댓글을 달려면 로그인하십시오.

채택된 답변

Cris LaPierre
Cris LaPierre 2020년 10월 23일
편집: Cris LaPierre 2020년 10월 24일
When using linspace, don't forget to account for 0. For example, how many numbers are there between 0 and 10? 11.
You should add 1 to your calculated number of points. This way, the colon operator and linspace give the same result, and both t1 and t2 are vectors with 101 points.
t1 = 0:1/200:0.5;
mean(diff(t1))
ans = 0.0050
t2 = linspace(0,0.5,0.5*200+1);
mean(diff(t2))
ans = 0.0050
  댓글 수: 1
Mohamad
Mohamad 2020년 10월 23일
Thanks a lot , now I understand it , actually I was confused because the following example from matlab to generate a signal with a sampling frequency of 1 kHz and a signal duration of 1.5 seconds :
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sampling period
L = 1500; % Length of signal
t = (0:L-1)*T; % Time vector
The example says signal duration 1.5 seconds , but I see signal duration it is 1.499 seconds .

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Spectral Measurements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by