Design and validation of a flexible software-based generator of realistic GNSS signals