Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • 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
Nov 24, 2012
2
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?
 
Replies continue below

Recommended for you

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.

Part and Inventory Search

Sponsor