In this paper, we propose a p-weighted noise reduction algorithm to improve the accuracy of channel estimation in Orthogonal Frequency Division Multiplexing (OFDM) systems. A SNR and speed adaptive weighting factor p is introduced, which can efficiently reduce the noise. After that, an exact expression of the optimal value of p under piecewise linear interpolation in time domain are derived, as well as a more practical near-optimization of p. Simulation results show that p-weighted algorithm obtains a SNR gain at low SNR and maintains the variation of channel at high SNR. It achieves the optimal tradeoff between noise reduction and maintenance of channel variation.