How do I amplify a dc voltage that is too weak to trigger the base in a transistor?
The problem which you have correctly identified (good for you!) is that the incoming signal has small voltage swings around 0V, but the transistor requires around 0.6V to begin to turn on. The solution is to bias the transistor to a given operating point: providing a base voltage which causes a degree of turn-on that exists when there is no signal. Then the signal is shifted to that same voltage level, so that is swings around that voltage rather than zero (or whatever is its original DC offset).

For AC signals, this level shifting is easily accomplished. We simply connect the AC signal source to the transistor's base not via a wire, but through a capacitor. The capacitor blocks DC current, put passes through the AC voltage swings, superimposing them onto the voltage of the target node.







simulate this circuit &ndash; Schematic created using CircuitLab

In this circuit, the sine wave generator is configured to generate a sine wave with an amplitude of only 0.1 mV. Yet, the positive peaks of this wave cause peaks of 1.5mA of current to flow through the LED. This is because of the bias set up by R1 and D1 creates a voltage which, conveyed via R2 to the base of Q1, sets up sets up that transistor's operating point so that it is slightly turned on, just on the verge of being much more turned on. In fact, according to the simulator, about 50 microamperes already flow through the LED when there is no incoming signal.  So from this operating point, any voltage swings in the signal cause a response in the transistor. (Why a diode? Because a diode has a similar voltage drop to the base-emitter junction of a transistor of the same type, e.g. silicon.)

Negative swings in the input are ignored, and the flashes of peak current dumped through the LED are proportional to the amplitude of the positive swings, so it should vary in brightness with the signal level. The resistor values have to be adjusted based on your LED.  

The responsiveness to small signals is quite sensitive to R1, R2 and R3.  If R1 is too small, for instance, then VBIAS will turn on the transistor more; small signal swings cause more LED current than before.   R4 needs to be adjusted based on the supply voltage, the type of LED, and the desired maximum current that is to be supplied to it.

R3 is only 0.22 \$\Omega\$ which is deliberate: that is to provide only small feedback to stabilize the operating point of the transistor against thermal runaway, without sacrificing a lot of current gain that would make the circuit less sensitive. In a pure on/off LED switching circuit, we would not have R3, but here we are keeping the transistor slightly turned on all the time, with a slight quiescent current, which brings in the risk of thermal runaway. 

R5 protects the base-emitter diode of Q1 against current driven by the input, because the emitter resistor R3 is insufficient.

One problem with the above circuit is the small input impedance, essentially dictated by R3. This is fine for being driven by a speaker or headphone output, but it's too small for line level outputs which expect something in the neighborhood of 10K. The behavior is also very nonlinear. A doubling of the input peak from 0.1V to 0.2V much more than doubles the LED current. The behavior follows the nonlinear VBE versus collector current curve of the transistor. We can address both issues with these changes:







simulate this circuit

The first notable difference is a much larger emitter resistor R3 which provides a lot more negative feedback to stabilize the bias point. By itself, that costs us a lot of gain, but we can recover some of that by bypassing R3 with a capacitor to ground. R5 is no longer necessary. R2 increases because the original 2.7K would detract from the newly increased impedance of the base. R1 is slightly decreased to boost VBIAS a little bit to compensate for some loss of sensitivity.

According to the simulation, the input impedance is about 8.3K at 1 kHz, which is reasonable for line level, when we are not actually trying to preserve the frequency response of the audio but only lighting a LED. It drops to around 6.4K at 10 kHz. 


  Calculating the input impedance from simulation: obtain a plot of the current flowing into C1. Check that this is in phase with the input voltage. Then divide the peak-to-peak input voltage by the peak-to-peak current.)