public PedometerData filter(SensorSingleData sensorSingleData) {

		double x = sensorSingleData.getAccX();
		double y = sensorSingleData.getAccY();
		double z = sensorSingleData.getAccZ();

		checkForPeakX(x);
		checkForPeakY(y);
		checkForPeakZ(z);

		PedometerData pedometerData = new PedometerData(
				sensorSingleData.getNumber(),
				sensorSingleData.getTimestamp(),
				peakX,
				peakY,
				peakZ);

		pedometerData.setBottomXupZ((!isUpPeakX && isUpPeakZ) ? Constants.BOTTOM_X_UP_Z : null);
		pedometerData.setUpXbottomZ((isUpPeakX && !isUpPeakZ) ? Constants.UP_X_BOTTOM_Z : null);
		pedometerData.setUpXupZ((isUpPeakX && isUpPeakZ) ? Constants.UP_X_UP_Z : null);
		pedometerData.setUpY(isUpPeakY ? Constants.PEAK_Y : null);
		pedometerData.setBottomY(!isUpPeakY ? Constants.PEAK_Y : null);

		pedometerData.setStep(stepDetector.process(isUpPeakX, isUpPeakY, isUpPeakZ, x) ? Constants.STEP : null);

		return pedometerData;
	}