2
$\begingroup$

I have a one-third octave spectrum with 23 frequencies, and I want to use it as a frequency response to filter another spectrum, however that spectrum is specified linear with 2049 points.

I know I can't simply linearly interpolate because a) the OTO spectra are not evenly spaced in their frequency bins and b) the weighting of the freq bins changes with their width.

How can I interpolate the third-octave to be linear so I can combine (add, since the levels are in dB) it by the linear spectrum?

$\endgroup$
4
  • 1
    $\begingroup$ Do you have more information about the 1/3 octave band filters? To do this properly, we'd need to know their frequency responses. $\endgroup$ Commented Sep 14, 2023 at 18:15
  • $\begingroup$ Not really. I have just the frequencies and the dB levels measured at them. I'm assuming A-weighting on the bins. $\endgroup$
    – stix
    Commented Sep 14, 2023 at 18:17
  • 1
    $\begingroup$ A-weighting would be somewhat unusual for a 3rd octave spectrum. You would only apply the weighting if you wanted to integrate this all into a single number level. Are you sure it's weighted. $\endgroup$
    – Hilmar
    Commented Sep 14, 2023 at 19:06
  • $\begingroup$ @Hilmar No, I'm not sure it's weighted. We've put out some questions to the originators of the data, but in the meantime we're not sure. However, since OTO spectra have bin widths that change, I'm assuming we have to do some kind of weighting to get the right levels in linear space. $\endgroup$
    – stix
    Commented Sep 14, 2023 at 19:09

2 Answers 2

1
$\begingroup$

There aren't a lot of possibilities for this. Probably (>95%) either ISO-3 or IEC 61260 bands were used. Some googling will give you the (nominal) band centers and edge frequencies. The difference between the two is not really big, so depending on your signal, the differences in the filtered spectra will be marginal. There is no way of finding out which bands where used for the 3rd-octave spectra, so you will just have to pick one.

$\endgroup$
1
  • $\begingroup$ The OTO spectra are being used to generate colored noise, so we're assuming real only (so zero phase I guess?) since the noise phases will be all random anyway. Technically we IFFT the spectrum, window the taps, and re-FFT it when we use it though... $\endgroup$
    – stix
    Commented Sep 18, 2023 at 17:42
1
$\begingroup$

This is difficult because a 3rd octave spectrum is missing a lot of information which needs to be filled in with "good" assumptions.

For starters you need to determine who exactly that spectrum was created. In most cases, a third octave spectrum is measured using a pink excitation. If that's the case, you do NOT need to correct for the varying widths of the bands because that's implicitly done already by a pink excitation. If there was any other weighting applied, you need to undo it. If this was measured using a white excitation, you need to indeed correct for the variable bandwidth using a -3dB/octave slope (or a $1/\sqrt{f}$ weighting)

Then you can interpolate the 3rd octave spectrum on a FFT grid. Spline typically works ok for this type of thing, but that depends a bit on how wiggly your data is. This will also require extrapolation down to DC and up to Nyquist. The best way to do this depends on the specifics of your data, your application and what you know about the thing you are modelling.

Then you need to add some phase information. The most common choices would be minimum phase, zero phase or linear phase. Again these all have pros and cons, so there is no one-size-fits-all answer.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.