how do i randomly sample a sinewave?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Kel
am 15 Mär. 2014
Beantwortet: Sulaymon Eshkabilov
am 14 Aug. 2021
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 Kommentare
Akzeptierte Antwort
Weitere Antworten (2)
Image Analyst
am 15 Mär. 2014
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*');
![](https://www.mathworks.com/matlabcentral/images/broken_image.png)
4 Kommentare
Image Analyst
am 16 Mär. 2014
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
am 16 Mär. 2014
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
am 14 Aug. 2021
An alternative solution is:
N_samples = 20;
y_rand = datasample(y, N_samples);
% OR
y_rand = randsample(y,N_samples);
0 Kommentare
Siehe auch
Kategorien
Mehr zu Multirate Signal Processing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!