1. A method for transmitting electromagnetic (EM) telemetry data from a downhole location to surface, comprising: (a) encoding measurement data, comprising a set of bit sequences, into an EM telemetry signal using one or more modulation schemes wherein at least one modulation scheme comprises mapping each bit sequence in the set of bit sequences to a pulse state selected from a positive polarity EM pulse and a negative polarity EM pulse and to a selected amplitude selected from a range of amplitudes of the positive and negative polarity EM pulses, wherein the one or more modulation schemes include one or more of amplitude shift keying (ASK) and amplitude and timing shift keying (ATSK) comprising mapping each bit sequence in the set of bit sequences to a pulse state having at least one of a selected amplitude, a selected polarity, and a selected timing position; and (b) generating EM pulses corresponding to the EM telemetry signal, comprising applying a voltage across a positive pathway of an H-bridge circuit electrically coupled to positive and negative ends of a gap sub to generate a positive polarity EM pulse, applying a voltage across a negative pathway of the H-bridge circuit to generate a negative polarity EM pulse, varying the voltage applied to the H-bridge circuit to vary the amplitude for the ATSK modulation scheme, and varying the timing of applying the voltage to the H-bridge circuit to vary the timing position for the ATSK modulation scheme.