Implementation of reactive and resistive load matching for optimal energy harvesting from piezoelectric generators