Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations cowski on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

local extrema

Status
Not open for further replies.

PetterNL

Electrical
Joined
Nov 24, 2012
Messages
2
Location
NL
Hello everybody!

I am trying to determine and plot the local extrema (min(max) and max(min)) for the signal y=x.*w with x(400:1424)=sin(2*pi*t) and w(400:1424)=sin(52*pi*t).

I am using matlab 2010b with the following script:

clc
clear all

Fs=1024;
t = 0:1/Fs:1;
x=zeros(1,1824);
w=zeros(1,1824);
vm=1;vc=2

x(400:1424)=sin(2*pi*t);
w(400:1424)=sin(52*pi*t);
y=x.*w;

figure(1);
plot(y); hold on;

Is there anyone with an idea how to accomplish this?
 
The min(max) is the minimum of the local maximum when you use a slide window on a signal. Max(min) is the opposite: the maximum of the local minimum.

It creates the upper envelope and lower envelope of the signal.
 
I was a bit confused by your use of indexing, but maybe this will get you started?
Code:
f   = inline(vectorize('sin(w1*t)*sin(w2*t)'),'t','w1','w2');
df  = inline(vectorize('w1*cos(w1*t)*sin(w2*t)+w2*sin(w1*t)*cos(w2*t)'),...
             't','w1','w2');
ww1 = 2*pi;
ww2 = 52*pi;
tmin= 0; tmax= 1;
inc  = 0.01; k=1;
t = [tmin, tmin+inc];   %Set initial search range
while t(1) <= tmax
    % Check for sign change within search range
    A = sign(df(t(1),ww1,ww2));
    B = sign(df(t(2),ww1,ww2));
    if A~=B % If sign change, find where derivative equals zero
        tt(k) = fzero(@(t) df(t,ww1,ww2), t);
        k     = k+1;
        t     = [t(2), t(2)+inc];
    else
        t(2)=t(2)+inc;  % If no sign change, increase search field
    end
end
download.aspx

Link to image
 
Status
Not open for further replies.

Similar threads

Part and Inventory Search

Sponsor

Back
Top