A method of denoising a signal comprising: transforming a signal using a discrete wavelet transformation into a detail wavelet component and an approximation wavelet component for each of a plurality of different resolutions, respectively, using preset wavelets, each of the detail wavelet component and the approximation wavelet component having a plurality of coefficients; determining a number of different resolutions, where the number is k, of the plurality of different resolutions for use in thresholding by examining at least coefficients for the detail wavelet component for at least two of the plurality of different resolutions, respectively; for each of the determined number of different resolutions for use in thresholding, comparing each coefficient in the detail wavelet component with a variable denoise threshold, the variable denoise threshold for each of the determined number of different resolutions being different, and selectively reducing a value of the coefficient based on the comparison thereby generating a denoised detail wavelet component having changed coefficients and unchanged coefficients; for the kth different resolution, comparing each coefficient in the approximation wavelet component with a second variable denoise threshold, and selectively reducing a value of the coefficient based on the comparison, thereby generating a denoised approximation wavelet component having changed coefficients and unchanged coefficients; and transforming, using an inverse discrete wavelet transformation, the denoised detail wavelet component for each of the determined number of resolutions and the denoised approximation wavelet component into a denoised signal. transforming a signal using a discrete wavelet transformation into a detail wavelet component and an approximation wavelet component for each of a plurality of different resolutions, respectively, using preset wavelets, each of the detail wavelet component and the approximation wavelet component having a plurality of coefficients; determining a number of different resolutions, where the number is k, of the plurality of different resolutions for use in thresholding by examining at least coefficients for the detail wavelet component for at least two of the plurality of different resolutions, respectively; for each of the determined number of different resolutions for use in thresholding, comparing each coefficient in the detail wavelet component with a variable denoise threshold, the variable denoise threshold for each of the determined number of different resolutions being different, and selectively reducing a value of the coefficient based on the comparison thereby generating a denoised detail wavelet component having changed coefficients and unchanged coefficients; for the kth different resolution, comparing each coefficient in the approximation wavelet component with a second variable denoise threshold, and selectively reducing a value of the coefficient based on the comparison, thereby generating a denoised approximation wavelet component having changed coefficients and unchanged coefficients; and transforming, using an inverse discrete wavelet transformation, the denoised detail wavelet component for each of the determined number of resolutions and the denoised approximation wavelet component into a denoised signal.