The base station needs multiple observations of the signals in order to separate them, which can be achieved by having an array of antennas. The base station then needs to estimate the channel from each of the users, either using pilot signals or using blind methods.
You can read more about this in my book Massive MIMO Networks, that can be downloaded from massivemimobook.com
This can be achieved using multiple antennas in the base station for proper separation of signal in uplink. Note this base station should be using techniques like beam forming.
Just as the user equipment (UEs) can differentiate signals coming from various base stations (in NR and LTE) by means of the primary cell ID (or scrambling code in WCDMA), the base stations can differentiate signals coming from various UEs through descrambling the UE-specific scrambling sequences which were sent to the UE through higher protocol messaging (namely the RRC protocol). That said, multiple instances of the signal is not a requirement for this differentiation to happen! If you are interested in further details, read 3gpp TS 36.213 Clause 8 and TS 36.211 Clause 5.3.1.
Thanks all for your answers, it seems that assigning a spreading code or a scrambled code to the users along with MIMO at base station could do the needfull. Do I still require MUD algo??
The basic parameter which will differentiate the various signals coming from different transmitters is the time or phase. Therefore, a technique like RAKE receiver has to be employed.
The carrier frequency can be generated at the receiver and orthogonality can be established with all incoming signals. The final selection can then be taken with a suitable comparator circuit.
Wait though. Emil's answer is for 5G, massive MIMO. Other answers would apply in other circumstances. For example, for CDMA, rake filters and spreading codes would be used, for the base station to focus on one UE. Beam steering is not really possible at lower 3G and 4G frequencies, with 2X2 or 4X4 MIMO.