this version has a big bug...
fix the noise subtraction bug