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
  1 件のコメント
Kel
Kel 2014 年 3 月 15 日
thank you

サインインしてコメントする。

その他の回答 (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 Center および File ExchangeCorrelation and Convolution についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by