Calculate the occupied bandwidth of non-stationary signals

6 views (last 30 days)
Is there a way to calculate the occupied bandwidth of non-stationary signals using wavelet toolbox or any other tool?

Answers (1)

William Rose
William Rose on 1 Mar 2023
@Yousef, yes there is a way.
Decide how you want to define and measure bandwidth. For example, you could define and measure it as the frequency range extending fro the spectral peak to -3dB on either side of the peak.
Use stft(x) to get the spectrum of x at successive times.
Then apply the bandwidth calculation to the spectrum at each time.
  4 Comments
Yousef
Yousef on 1 Mar 2023
Thanks again, Williams. I took this comment from the Wavelet Matlab toolbox user guide: The STFT represents a sort of compromise between the time- and frequency-based views of a signal. It provides some information about both when and at what frequencies a signal event occurs. However, you can only obtain this information with limited precision, and that precision is determined by the size of the window. While the STFT’s compromise between time and frequency information can be useful, the drawback is that once you choose a particular size for the time window, that window is the same for all frequencies. Many signals require a more flexible approach — one where we can vary the window size to determine more accurately either time or frequency.
How does that sound to you?
William Rose
William Rose on 2 Mar 2023
"How does that sound to you?" It sounds like you don't want to use the standard STFT, and that is fine.
"you can only obtain this information with limited precision, and that precision is determined by the size of the window" Yes. It is the uncertainty principle.
You said that your goal is to find bandwidth as a function of time, where badwidth is defined as the frequency range that captures 99% of the (instantaneous) power. If you vary the window size, as you have proposed, then the duration of "instantaneous" will change with time, and the time resolution of the bandwidth estimate will change with time.
  1. You can write your own STFT routine in which the window size varies. How you compute the "appropriate" window size is not obvious to me.
  2. You can run a standard STFT several times, or many times, with a different window size each time. The you select which STFT you want to refer to at different times, depending on some criterion you devise.
  3. You can do a wavelet anaysis and figure out how to use wavelets to determine the frequency that includes 99% of the "instantaneous" power. I don't know how to relate wavelets to frequency content in a quantitative way, but maybe the paper which I referenced in a previous comment will be helpful. (Although I notice the word "qualitative" in the abstract...)

Sign in to comment.

Categories

Find more on Time-Frequency Analysis in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!