I have a spectrogram built by breaking a signal into chunks and taking the FFT of these chunks. An example spectrogram is:
In this spectrogram I am looking for a curve (aka pitch contour) that:
- Starts at zero
- Increases to an unknown value
- Stays at that unknown value for at least one minute
- Decreases back to zero
It's fairly easy to program this curve detection in the spectrogram above since the curve of interest is brighter than other potential curves. However, this brightness difference won't exist in a noisier data set.
How can I use the constraints I know about the curve (starts at zero, increases, ...) to reliably find the curve without relying on the brightness?