Make it easier to create and add noise sums to solutions
This is really clunky - make it nicer:
import numpy as np
from zero import Circuit
from zero.components import Node
from zero.data import MultiNoiseDensity
from zero.analysis import AcNoiseAnalysis
if __name__ == "__main__":
# 1000 frequencies between 1 Hz to 1 MHz
frequencies = np.logspace(0, 6, 1000)
# Create circuit object.
circuit = Circuit()
# Add components.
circuit.add_capacitor(value="10u", node1="gnd", node2="n1")
circuit.add_resistor(value="430", node1="n1", node2="nm")
circuit.add_resistor(value="43k", node1="nm", node2="nout")
circuit.add_capacitor(value="47p", node1="nm", node2="nout")
circuit.add_library_opamp(model="LT1124", node1="gnd", node2="nm", node3="nout")
# Solve circuit.
analysis = AcNoiseAnalysis(circuit=circuit)
solution = analysis.calculate(frequencies=frequencies, input_type="voltage", node="n1",
sink="nout")
# Create a total sum noise.
sum_noise = list(solution.filter_noise(sinks=["nout"]).values())[0]
solution.add_noise_sum(MultiNoiseDensity(constituents=sum_noise, sink=Node("nout"),
label="Sum"))
# Plot.
solution.plot_noise(sinks=["nout"])
solution.show()
Props to Rana.