To overcome the drawbacks of premature and poor convergence of classical PSO, a new particle swarm optimization is proposed by combining extrapolation technique and orthogonal design. Orthogonal design is introduced to design self-adaptive orthogonal crossover operator (SOC) which self-adaptively adjusts the number of orthogonal array's factors and the location for dividing the parent particles into several sub-vectors according to the similarity of each dimension. While the definition of particle similarity, a clear duplicate operator is incorporated into the algorithm. The experimental tests are carried out on benchmark functions. The simulation results show that the proposed algorithm is a generic and effective algorithm.