Segmented Sinewave

2 vues (au cours des 30 derniers jours)
Ali
Ali le 16 Fév 2011
Hi How Can i define a periodic signal like a segmented sine wave but with different amplitudes for segments ? Thanks.

Réponses (4)

Matt Tearle
Matt Tearle le 16 Fév 2011
Something like this?
p = 3;
t = linspace(0,10*p,201);
tseg = p*[0 1 4 5:9];
n = length(tseg)-1;
y = sin(2*pi*t);
A = randi(10,n,1)
for k = 1:n
idx = (t>tseg(k)) & (t<tseg(k+1));
y(idx) = A(k)*y(idx);
end
plot(t,y,tseg,tseg*0,'o')

Ali
Ali le 20 Fév 2011
Thanks , that was very helpful , but what i am looking for is a segmented sine wave with different amplitudes for each step .
  5 commentaires
Jiro Doke
Jiro Doke le 21 Fév 2011
Ali, you use the word "segment" and "step". Do you mean for each "period" (when it goes through one cycle of sine wave)? In Matt's example, if you set p = 1, and set tseg = 0:9, you can change the amplitude for every period.
Ali
Ali le 22 Fév 2011
Sorry I might have used wrong terminology , what i meant by segment is to divide one period to n parts ,for each part out of n i will replace portion of sine wave with square pulse , its still periodic . exactly same as graphical method for integrating sine wave .

Connectez-vous pour commenter.


Jiro Doke
Jiro Doke le 22 Fév 2011
Okay, I'm still not entirely sure what you mean, but based on your response to one of the questions, it seems like you just want to discretize your sine wave.
If you just want to create a plot:
% 20 segments
t = linspace(0, 2*pi, 20);
y = sin(t);
stairs(t, y)
If you want coordinates for the "segmented" sine wave:
t2 = reshape([t;t], 1, []);
t2 = t2(2:end);
y2 = reshape([y;y], 1, []);
y2 = y2(1:end-1);

Ali
Ali le 23 Fév 2011
Thanks jiro , it was very helpful , but i dont want it just as plot but signal because i will be doing some DSP operations on that signal.
  1 commentaire
Jiro Doke
Jiro Doke le 23 Fév 2011
See the second block of code in my answer. Those are the coordinates of the segmented wave.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Just for fun dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by