This shows you the differences between two versions of the page.
— |
gnucap:user:discussions [2015/12/11 15:39] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | is there a need for s_noise.cc? noise seems to be just about probes. | ||
+ | in e_aux.h a function like | ||
+ | <code cpp> | ||
+ | inline COMPLEX port_noise(const node_t& n1, const node_t& n2){ | ||
+ | std::fill_n(CKT_BASE::_sim->_sens, 1*CKT_BASE::_sim->_total_nodes+1, 0); | ||
+ | CKT_BASE::_sim->_sens[n1.m_()] = 1; | ||
+ | CKT_BASE::_sim->_sens[n2.m_()] = -1; | ||
+ | CKT_BASE::_sim->_acx.fbsubt(CKT_BASE::_sim->_sens); // use Gennadys transposed fbsub | ||
+ | double a = CARD_LIST::card_list.do_noise(); | ||
+ | return a; | ||
+ | } | ||
+ | </code> | ||
+ | could be used to probe the noise (called in e_element.cc and e_node.cc just like port_impedance is called). | ||
+ | of course an array with sensitivity data needs to be added to SIM, also do_noise() must sum up all noise contributions like in Gennadys implementation. | ||
+ | imo noise simulation is a bad candidate for a plugin, as there seems to be no way to make it work without changing internals. once noise works, a plugin that implements spice command compatibility might make more sense. | ||
+ | |||
+ | --felixs |