# Calculate the occupied bandwidth of non-stationary signals

5 views (last 30 days)

Show older comments

##### 0 Comments

### Answers (1)

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

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.

- 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.
- 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.
- 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...)

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!