Commit 4c1bda3
committed
Audio: MFCC: Fix 32 bit mode HiFi3/4 window multiply
In 32-bit FFT mode the input data is 16-bit stored in the lower half
of a 32-bit icomplex32 container. The AE_MULFP32X16X2RS_L intrinsic
performs a Q1.31 x Q1.15 fractional multiply, so the 16-bit sample
must first be shifted left by 16 to Q1.31 format. Without this shift
the multiply treats the value as having 16 zero fractional bits,
producing near-zero windowed output and a corrupt FFT result.
Add the missing AE_SLAI32S(sample, 16) before the multiply in both
HiFi3 and HiFi4 mfcc_apply_window() 32-bit paths, matching the
generic C implementation.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>1 parent 8aac15d commit 4c1bda3
2 files changed
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
180 | 180 | | |
181 | 181 | | |
182 | 182 | | |
| 183 | + | |
| 184 | + | |
183 | 185 | | |
184 | 186 | | |
185 | 187 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
176 | 176 | | |
177 | 177 | | |
178 | 178 | | |
| 179 | + | |
| 180 | + | |
179 | 181 | | |
180 | 182 | | |
181 | 183 | | |
| |||
0 commit comments