Commit d2cf265
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 f92af28 commit d2cf265
2 files changed
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
| 147 | + | |
| 148 | + | |
147 | 149 | | |
148 | 150 | | |
149 | 151 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
| 143 | + | |
| 144 | + | |
143 | 145 | | |
144 | 146 | | |
145 | 147 | | |
| |||
0 commit comments