class
SushiDSP::LongTailedPair
A long-tailed pair phase inverter, solved as two triodes sharing a cathode node.
- Declared in
include/SushiDSP/circuits/stages/LongTailedPair.hpp
Both grids are inputs: one carries the forward signal, the other whatever the amplifier feeds back. The shared cathode follows the sum of the two grids through the tail, which is what turns a common-mode grid move into no differential output and a differential move into two opposed plate swings. Each half is a TriodeStage driven by its own grid-to-cathode voltage, so grid conduction and the plate ceiling stay that class's business.
Contains
Public member functions
LongTailedPair(const LongTailedPairTube &tube, const LongTailedPairHalf &half_a, const LongTailedPairHalf &half_b, float tail_resistance_ohms, float cathode_to_tail_ohms)Parameters
tubeWhat both halves are, at the operating point the plate swings belong to.
half_aThe half whose grid takes the forward signal.
half_bThe half whose grid takes the feedback.
tail_resistance_ohmsResistance from the tail node to the pair's reference.
cathode_to_tail_ohmsResistance between the joined cathodes and the tail node.
Precondition
tube.plate_resistance_ohms > 0 and tube.amplification_factor > 0.
Precondition
tube.cathode_bias_volts < 0, so both grids rest below the cathodes.
Plates process_sample(float grid_a, float grid_b)Processes one sample through both halves.
Parameters
grid_aThis sample's voltage at the first grid, referenced to the bias point.
grid_bThis sample's voltage at the second grid, same reference.
Returns
Both plate outputs, each bounded by its half's swing. Always finite.
float cathode_coupling() constReturns how much of the summed grid voltage the shared cathode follows.
One half over this value is the factor the pair divides a single-ended input by, which a bench measurement of the drive at either plate checks.
float peak_grid_excursion_volts() constReturns the larger |Vg - Vk| either half has reached since the last reset().
void reset()Resets both halves.

