-
Notifications
You must be signed in to change notification settings - Fork 0
MMSE Equalizer
The primary equalization engine in this repository handles 2x2 MIMO Spatial Multiplexing (e.g., LTE TM3/TM4) using the Minimum Mean Square Error (MMSE) algorithm.
For a
In src/mmse_avx2.cpp, we have completely eliminated generic matrix libraries (like Eigen or cuBLAS) for these tiny
-
Explicit Cramer's Rule: We analytically expand the
$2 \times 2$ inversion. -
Division Assassin (Newton-Raphson): Standard floating-point division (
/) stalls the CPU pipeline for dozens of cycles. We compute the reciprocal of the determinant using:-
_mm256_rcp_ps(hardware approx reciprocal) - Followed by a FMA-based Newton-Raphson iteration for FP32 precision recovery.
-
-
Branchless Fallback: Deep fades can cause singular matrices (determinant
$\approx 0$ ). We use_mm256_max_psto clamp the determinant to a noise floor, entirely avoiding pipeline-breakingif-elsebranches.
The equalizer does not just output symbols (
🗺️ Wiki Navigation: 🏠 Home (主页) | ⬆️ Back to Top (回到顶部)
🔗 Project Links: 💻 GitHub Repository | 🐛 Report an Issue | 🛡️ Security Policy
MMSE_CPP is a high-performance LTE PHY baseband engine optimized for AVX2 and CUDA. > Released under the open-source license. Contributions are welcome!