title: How to find a position of a step that changes it's properties as function of position
body: <p>I want to find a position of a step in my noisy data. After a few attempts I tried using an edge detector  or to convolve with  a match filter to get the position of the step, The problem that neither is accurate because the step changes its shape as function of position. </p>
  
  <p>For example, given my data vector is 1000 elements long, the step width will be 30 around pixel number 200, and 70 around pixel number 700, similar to the way a wavepacket broaden due to dispersion. There are more properties that change somewhat, so the general question is, how can I find the position of the step? A matched filter is only limited to a specific shape, and will give inaccurate position. An edge detector is sensitive to the slope and also will give an inaccurate position.  What other approaches do you know? I'd be happy to learn new ideas.</p>
  
  <p>Here is an example of steps that change vs positions without noise or other features
  <img src="https://i.stack.imgur.com/xvfDy.png" alt="enter image description here"></p>
  
  <p>And here are the same steps + noise and one additional feature (displaced for better visualization).
  <img src="https://i.stack.imgur.com/LjHLK.png" alt="enter image description here"></p>