Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Topic: Zero Crossing
Replies: 3   Last Post: Mar 29, 2014 10:13 PM

 Messages: [ Previous | Next ]
 Derek Goring Posts: 3,922 Registered: 12/7/04
Re: Zero Crossing
Posted: Jan 29, 2013 7:45 PM

On Wednesday, January 30, 2013 9:05:09 AM UTC+13, Pete wrote:
> TideMan <mulgor@gmail.com> wrote in message <b59569bf-fa63-42d8-86d5-033c57434476@googlegroups.com>...
>

> > On Tuesday, January 29, 2013 5:08:08 AM UTC+13, Pete wrote:
>
> > > Hi,
>
> > >
>
> > > I'm very new to matlab and need to calculate individual wave crest heights from ocean wave height data. So far i have selected the column of data that i want to look at and cut the data size down slightly. I think the next step is to use the sign function to get 1's, -1's and 0's from the data. Here's what I have so far:
>
> > >
>
> > >
>
> > >
>
>
> > >
>
> > > e1=s(:,9);
>
> > >
>
> > > eta1=e1(6000:end);
>
> > >
>
> > > sgn=sign(e1);
>
> > >
>
> > > ff=find(sgn==0);
>
> > >
>
> > >
>
> > >
>
> > > Does anyone know what i have to do next? Any help would be great!
>
> >
>
> > No, you need to find the points where the signs change:
>
> > t1=e1(1:end-1);
>
> > t2=e1(2:end);
>
> > tt=t1.*t2;
>
> > indx=find(tt<0);
>
> > Now, indx contains the locations of the zero crossings (upward and downward) as shown here:
>
> > t=[0:length(e1)-1]';
>
> > plot(t,e1,'b-',t(indx),e1(indx),'rx')
>
>
>
> Thats brilliant thanks! How is it now that i could select one of the zero crossing points (and in turn one wave) and calculate the crest height of the wave?

Throw away every second point:
indx=indx(1:2:end);
Set up a set of start and finish points;
k=[indx(1:end-1) indx(2:end)];
Now, wave number iwave has crest:
emx(iwave)=max(e1(k(iwave,1):k(iwave,2));
and wave height:
H(iwave)=max(e1(k(iwave,1):k(iwave,2)) - ...
min(e1(k(iwave,1):k(iwave,2));

Date Subject Author
1/29/13 Derek Goring
3/29/14 Tapas
3/29/14 Derek Goring