Jspice3
noievals.c File Reference
#include "spice.h"
#include <math.h>
#include "cktdefs.h"
#include "noisedef.h"
#include "const.h"
#include "util.h"
Include dependency graph for noievals.c:

Go to the source code of this file.

Functions

void NevalSrc (double *noise, double *lnNoise, CKTcircuit *ckt, int type, int node1, int node2, double param)
 

Function Documentation

void NevalSrc ( double *  noise,
double *  lnNoise,
CKTcircuit ckt,
int  type,
int  node1,
int  node2,
double  param 
)

Definition at line 29 of file noievals.c.

38 {
39  double realVal;
40  double imagVal;
41  double gain;
42 
43  realVal = *(ckt->CKTrhs + node1) - *(ckt->CKTrhs + node2);
44  imagVal = *(ckt->CKTirhs + node1) - *(ckt->CKTirhs + node2);
45  gain = realVal*realVal + imagVal*imagVal;
46 
47  switch (type) {
48 
49  case SHOTNOISE:
50  /* param is the dc current in a semiconductor */
51  *noise = gain * 2 * CHARGE * FABS(param);
52  *lnNoise = log( MAX(*noise,N_MINLOG) );
53  break;
54 
55  case THERMNOISE:
56  /* param is the conductance of a resistor */
57  *noise = gain * 4 * CONSTboltz * ckt->CKTtemp * param;
58  *lnNoise = log( MAX(*noise,N_MINLOG) );
59  break;
60 
61  case N_GAIN:
62  *noise = gain;
63  break;
64  }
65 }
#define N_GAIN
Definition: noisedef.h:90
double * CKTirhs
Definition: cktdefs.h:100
#define MAX(a, b)
Definition: spdefs.h:135
double CKTtemp
Definition: cktdefs.h:80
#define CHARGE
Definition: const.h:10
#define N_MINLOG
Definition: noisedef.h:95
#define CONSTboltz
Definition: const.h:12
Definition: types.c:18
#define SHOTNOISE
Definition: noisedef.h:88
#define FABS(a)
Definition: util.h:41
#define THERMNOISE
Definition: noisedef.h:89
double * CKTrhs
Definition: cktdefs.h:97