Fingerprint enhancement is an essential preprocessing step and it is crucial for the efficiency of fingerprint recognition algorithm. We present an enhancement algorithm based on fast discrete curvelet transform (FDCT). First, implement positive transform on input image, namely decompose the image into coarse scales and fine scales coefficients. Then make use of a directional filter and a soft threshold function to enhance image and reduce noise respectively. Finally, implement inverse transform, and reconstruct the enhanced image. Experiments are carried out on FVC2004 databases. For bad quality fingerprints, the results indicate that the proposed algorithm has better enhancement and de-noising effect than traditional methods, and need less time.