Azzera filtri
Azzera filtri

? Using "image treatment" on the "2Dplot"/"2D presentation" of an array to simplify and complement that array

1 visualizzazione (ultimi 30 giorni)
Hello,
I am wondering if it might be both possible and interesting to use image processing functions such as
  • bwareaopen (Remove small objects from binary image), or
  • bwareafilt(BW,range) extracts all connected components (objects) from the binary image,
  • etc, etc..
to process a 2d array plot corresponding to an array, and use that treatment to modify/simplify/decompose/complement that array.
As example problem, treating a sound that has essentially an harmonic structure, but also with noise and non-harmonic parts: using spectrogram and fitting/interpolating peaks, it is possible to produce both a frequency-time array with many NaN's and an associated amplitude-time array. (See below 2 frequency-time plot images using two different minimal amplitude selection level);
Higher harmonics have smaller amplitude, the signal is noisy; The "ladder structure" of the harmonic sound is clearly appearant, with occasionally a local frequency change vs time. Moreover the eye perceives that there are some missing data points (in some rows of the ladders) that sould be completed with an appropriate amplitude guess. Also, there are low frequency contributions (eg; below the first rows of the different ladders). And the more 'isolated dots' likely need to be removed.
QUESTION: On such data, to extract automatically and extensively the harmonic part only of the frequency-time array, connecting the "appropriate dots", fill-in the "missing dots", remove non-harmonic data, etc..., would some "image treatment" be usefull (or would you have other suggestions) ? Then, what would be the suggested pipeline in order to get the correspondingly extracted/completed harmonic frequency-time and amplitude-time arrays ?
Thanks for your suggestions :) !!

Risposte (1)

Benjamin Thompson
Benjamin Thompson il 31 Gen 2022
I would use an "image treatment" for visual analysis only, which is what functions like pspectrum will do. But once you start binning data into pixels and removing the complex portion of FFT data to display as real numbers, you lose a lot of information for reproducing signals. So, "image treatment" for analysis and display, but make changes to the original data, not the image.

Prodotti


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by