How to Extract and Verify 22-Point BFCC Using lib_xcore_math on XMOS

If you have a simple question and just want an answer.
yako
Newbie
Posts: 1
Joined: Mon Jun 23, 2025 8:33 am

How to Extract and Verify 22-Point BFCC Using lib_xcore_math on XMOS

Post by yako »

I’m currently working on a speech processing task on the XMOS platform and would like to extract 22 Bark Frequency Cepstral Coefficients (BFCCs) as input features for a downstream model.

I’ve reviewed the lib_xcore_math library and understand that it provides DCT support for fixed sizes (e.g., 24-point DCT). However, in my case, I specifically need to obtain 22 BFCC coefficients from the log-energy outputs of a 22-channel Bark filter bank.

Is it valid to zero-pad the 22-point log-energy vector to 24 points and then perform a 24-point DCT using dct_forward_f32?

I plan to keep only the first 22 DCT coefficients after the transform.

Will this approximation significantly impact the accuracy compared to a true 22-point DCT?

Thank you very much for your support!
User avatar
upav
Verified
Member++
Posts: 31
Joined: Wed May 22, 2024 3:30 pm

Post by upav »

I believe if you are already obtaining a 22-point Bark bank you can just append 2 zeros at the end and use the DCT, should be just fine.
Also as a side note, you've mentioned dct_forward_f32, however, I don't recall lib_xcore_math supporting floating-point DCT. The APIs are called something like dct24_forward and only work with fixed-point numbers.

Hope it helps,
Pavel
xmos software engineer