how do i randomly sample a sinewave?

조회 수: 2 (최근 30일)
Kel
Kel 2014년 3월 15일
답변: Sulaymon Eshkabilov 2021년 8월 14일
hey can someone help me?i am trying to randomly sample sinewave but i am having no luck. i have tried Google, i tried using the help function on the 'rand' command and still i am no closer to sampling the signal.
  댓글 수: 2
Azzi Abdelmalek
Azzi Abdelmalek 2014년 3월 15일
What do you mean?
Kel
Kel 2014년 3월 15일
i have signal shown by the code below and would like to take random samples of the signal,
fo=4 fs=100 ts=1/fs t=0:ts:1-ts n=length(t) y=2*sin(2*pi*fo*t) plot(t,y)

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

채택된 답변

dpb
dpb 2014년 3월 15일
yrand=y(randperm(length(y),K));
returns K random samples from y

추가 답변 (2개)

Image Analyst
Image Analyst 2014년 3월 15일
Try this:
fo=4
fs=100
ts=1/fs
t=0:ts:1-ts
n=length(t)
y=2*sin(2*pi*fo*t)
plot(t,y)
numberOfSamplesToTake = 20;
sampleIndexes = randperm(numel(y), numberOfSamplesToTake)
% Plot the samples;
ts = t(sampleIndexes)
ys = y(sampleIndexes)
hold on;
plot(ts, ys, 'r*');
  댓글 수: 4
Image Analyst
Image Analyst 2014년 3월 16일
You must have a really old version of MATLAB before they added the second input argument of randperm. Try this:
numberOfSamplesToTake = 20;
sampleIndexes = randperm(numel(y))
sampleIndexes = sampleIndexes(1:numberOfSamplesToTake)
dpb
dpb 2014년 3월 16일
Ah...good catch, IA. Never crossed my mind but my R12 doesn't include it--how quick we forget! :)
Presuming you're correct (and that's a good bet) perhaps a good use for a utility function for the OP to take the second argument.

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


Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021년 8월 14일
An alternative solution is:
N_samples = 20;
y_rand = datasample(y, N_samples);
% OR
y_rand = randsample(y,N_samples);

카테고리

Help CenterFile Exchange에서 Correlation and Convolution에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by