def check_accuracy(pmode, mmode, wavelet): # max RMSE epsilon = 1.0e-10 w = pywt.Wavelet(wavelet) data_size = list(range(w.dec_len, 40)) + [100, 200, 500, 1000, 50000] np.random.seed(1234) for N in data_size: data = np.random.random(N) # PyWavelets result pa, pd = pywt.dwt(data, wavelet, pmode) # Matlab result ma, md = mlab.dwt(data, wavelet, 'mode', mmode, nout=2) ma = ma.flat md = md.flat # calculate error measures rms_a = np.sqrt(np.mean((pa-ma)**2)) rms_d = np.sqrt(np.mean((pd-md)**2)) msg = ('[RMS_A > EPSILON] for Mode: %s, Wavelet: %s, ' 'Length: %d, rms=%.3g' % (pmode, wavelet, len(data), rms_a)) assert_(rms_a < epsilon, msg=msg) msg = ('[RMS_D > EPSILON] for Mode: %s, Wavelet: %s, ' 'Length: %d, rms=%.3g' % (pmode, wavelet, len(data), rms_d)) assert_(rms_d < epsilon, msg=msg)
def test_accuracy(families, wavelets, modes, epsilon=1.0e-10): print "Testing decomposition".upper() for pmode, mmode in modes: for wavelet in wavelets: print "Wavelet: %-8s Mode: %s" % (wavelet, pmode) w = pywt.Wavelet(wavelet) data_size = range(w.dec_len, 40) + [100, 200, 500, 1000, 50000] for N in data_size: data = numpy.random.random(N) # PyWavelets result pa, pd = pywt.dwt(data, wavelet, pmode) # Matlab result ma, md = mlab.dwt(data, wavelet, 'mode', mmode, nout=2) ma = ma.flat; md = md.flat # calculate error measures mse_a, mse_d = mse(pa, ma), mse(pd, md) rms_a, rms_d = math.sqrt(mse_a), math.sqrt(mse_d) if rms_a > epsilon: print '[RMS_A > EPSILON] for Mode: %s, Wavelet: %s, Length: %d, rms=%.3g' % (pmode, wavelet, len(data), rms_a) if rms_d > epsilon: print '[RMS_D > EPSILON] for Mode: %s, Wavelet: %s, Length: %d, rms=%.3g' % (pmode, wavelet, len(data), rms_d)
def check_accuracy(pmode, mmode, wavelet): # max RMSE epsilon = 1.0e-10 w = pywt.Wavelet(wavelet) data_size = list(range(w.dec_len, 40)) + [100, 200, 500, 1000, 50000] np.random.seed(1234) for N in data_size: data = np.random.random(N) # PyWavelets result pa, pd = pywt.dwt(data, wavelet, pmode) # Matlab result ma, md = mlab.dwt(data, wavelet, 'mode', mmode, nout=2) ma = ma.flat md = md.flat # calculate error measures rms_a = np.sqrt(np.mean((pa - ma)**2)) rms_d = np.sqrt(np.mean((pd - md)**2)) msg = ('[RMS_A > EPSILON] for Mode: %s, Wavelet: %s, ' 'Length: %d, rms=%.3g' % (pmode, wavelet, len(data), rms_a)) assert_(rms_a < epsilon, msg=msg) msg = ('[RMS_D > EPSILON] for Mode: %s, Wavelet: %s, ' 'Length: %d, rms=%.3g' % (pmode, wavelet, len(data), rms_d)) assert_(rms_d < epsilon, msg=msg)
def test_accuracy(families, wavelets, modes, epsilon=1.0e-10): print "Testing decomposition".upper() for pmode, mmode in modes: for wavelet in wavelets: print "Wavelet: %-8s Mode: %s" % (wavelet, pmode) w = pywt.Wavelet(wavelet) data_size = range(w.dec_len, 40) + [100, 200, 500, 1000, 50000] for N in data_size: data = numpy.random.random(N) # PyWavelets result pa, pd = pywt.dwt(data, wavelet, pmode) # Matlab result ma, md = mlab.dwt(data, wavelet, 'mode', mmode, nout=2) ma = ma.flat md = md.flat # calculate error measures mse_a, mse_d = mse(pa, ma), mse(pd, md) rms_a, rms_d = math.sqrt(mse_a), math.sqrt(mse_d) if rms_a > epsilon: print '[RMS_A > EPSILON] for Mode: %s, Wavelet: %s, '\ 'Length: %d, rms=%.3g' % (pmode, wavelet, len(data), rms_a) if rms_d > epsilon: print '[RMS_D > EPSILON] for Mode: %s, Wavelet: %s, '\ 'Length: %d, rms=%.3g' % (pmode, wavelet, len(data), rms_d)