A receiver, comprising a plurality of antennas configured to receive
signals that are obtained by multiplying a plurality of data symbols
transmitted over a plurality of data channels using spreading codes for
each of the data channels, the data symbol being transmitted over a
plurality of sub-carriers having different frequencies; a spreading code
multiplier configured to multiply reception signals received by the
plurality of antennas using spreading codes for the data channels
corresponding to the reception signals; a weight controller configured to
adjust antenna weights by which a reception signal received by each
antenna is to be multiplied, and sub-carrier weights by which a reception
signal received over each sub-carrier is to be multiplied; a weight
multiplier configured to multiply the reception signals by the antenna
weights and the sub-carrier weights adjusted by the weight controller;
and a combining unit configured to combine the reception signals
multiplied by the antenna weights and the sub-carrier weights at the
weight multiplier among the antennas and over spreading code duration of
the spreading codes.