We suggest an explanation for superluminal phenomena based on wave-particle duality of photons. A single photon may be regarded as a wave packet, whose spatial extension is its coherence volume. As photon propagates as a wave train, its velocity is just the speed of light in vacuum. When it tunnels through a barrier as a particle, its wave function collapses and it travels faster than light. But superluminal propagation can only occur within the coherence length, and the duration is constrained by uncertainty principle. On the other hand, a particle with non-vanishing mass cannot travel faster than light. So superluminal phenomena do not violate causality. We explain the principles of existing superluminal experiments and propose three types of experiments to further verify superluminal phenomena. The first is to show that a single photon is equivalent to a wave packet, which occupies certain spatial volume. The second demonstrates that superluminal phenomena can only occur within the coherence length. The third indicates that negative and superluminal group velocity in anomalous dispersion medium is merely a reshaping phenomenon of the pulse, and it will become subluminal at large distances.