|
|
|
|
|
|
|
|
package com.example.ueberwachungssystem.Signalverarbeitung; |
|
|
|
|
|
|
|
|
package com.example.ueberwachungssystem.Detector.Signalverarbeitung; |
|
|
|
|
|
|
|
|
import java.util.Objects; |
|
|
import java.util.Objects; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
im = imag; |
|
|
im = imag; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// return a string representation of the invoking com.example.ueberwachungssystem.Signalverarbeitung.Complex object |
|
|
|
|
|
|
|
|
// return a string representation of the invoking com.example.ueberwachungssystem.Detector.Signalverarbeitung.Complex object |
|
|
public String toString() { |
|
|
public String toString() { |
|
|
if (im == 0) return re + ""; |
|
|
if (im == 0) return re + ""; |
|
|
if (re == 0) return im + "i"; |
|
|
if (re == 0) return im + "i"; |
|
|
|
|
|
|
|
|
return Math.atan2(im, re); |
|
|
return Math.atan2(im, re); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Signalverarbeitung.Complex object whose value is (this + b) |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Detector.Signalverarbeitung.Complex object whose value is (this + b) |
|
|
public Complex plus(Complex b) { |
|
|
public Complex plus(Complex b) { |
|
|
Complex a = this; // invoking object |
|
|
Complex a = this; // invoking object |
|
|
double real = a.re + b.re; |
|
|
double real = a.re + b.re; |
|
|
|
|
|
|
|
|
return new Complex(real, imag); |
|
|
return new Complex(real, imag); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Signalverarbeitung.Complex object whose value is (this - b) |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Detector.Signalverarbeitung.Complex object whose value is (this - b) |
|
|
public Complex minus(Complex b) { |
|
|
public Complex minus(Complex b) { |
|
|
Complex a = this; |
|
|
Complex a = this; |
|
|
double real = a.re - b.re; |
|
|
double real = a.re - b.re; |
|
|
|
|
|
|
|
|
return new Complex(real, imag); |
|
|
return new Complex(real, imag); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Signalverarbeitung.Complex object whose value is (this * b) |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Detector.Signalverarbeitung.Complex object whose value is (this * b) |
|
|
public Complex times(Complex b) { |
|
|
public Complex times(Complex b) { |
|
|
Complex a = this; |
|
|
Complex a = this; |
|
|
double real = a.re * b.re - a.im * b.im; |
|
|
double real = a.re * b.re - a.im * b.im; |
|
|
|
|
|
|
|
|
return new Complex(alpha * re, alpha * im); |
|
|
return new Complex(alpha * re, alpha * im); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Signalverarbeitung.Complex object whose value is the conjugate of this |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Detector.Signalverarbeitung.Complex object whose value is the conjugate of this |
|
|
public Complex conjugate() { |
|
|
public Complex conjugate() { |
|
|
return new Complex(re, -im); |
|
|
return new Complex(re, -im); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Signalverarbeitung.Complex object whose value is the reciprocal of this |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Detector.Signalverarbeitung.Complex object whose value is the reciprocal of this |
|
|
public Complex reciprocal() { |
|
|
public Complex reciprocal() { |
|
|
double scale = re * re + im * im; |
|
|
double scale = re * re + im * im; |
|
|
return new Complex(re / scale, -im / scale); |
|
|
return new Complex(re / scale, -im / scale); |
|
|
|
|
|
|
|
|
return a.times(b.reciprocal()); |
|
|
return a.times(b.reciprocal()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Signalverarbeitung.Complex object whose value is the complex exponential of this |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Detector.Signalverarbeitung.Complex object whose value is the complex exponential of this |
|
|
public Complex exp() { |
|
|
public Complex exp() { |
|
|
return new Complex(Math.exp(re) * Math.cos(im), Math.exp(re) * Math.sin(im)); |
|
|
return new Complex(Math.exp(re) * Math.cos(im), Math.exp(re) * Math.sin(im)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Signalverarbeitung.Complex object whose value is the complex sine of this |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Detector.Signalverarbeitung.Complex object whose value is the complex sine of this |
|
|
public Complex sin() { |
|
|
public Complex sin() { |
|
|
return new Complex(Math.sin(re) * Math.cosh(im), Math.cos(re) * Math.sinh(im)); |
|
|
return new Complex(Math.sin(re) * Math.cosh(im), Math.cos(re) * Math.sinh(im)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Signalverarbeitung.Complex object whose value is the complex cosine of this |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Detector.Signalverarbeitung.Complex object whose value is the complex cosine of this |
|
|
public Complex cos() { |
|
|
public Complex cos() { |
|
|
return new Complex(Math.cos(re) * Math.cosh(im), -Math.sin(re) * Math.sinh(im)); |
|
|
return new Complex(Math.cos(re) * Math.cosh(im), -Math.sin(re) * Math.sinh(im)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Signalverarbeitung.Complex object whose value is the complex tangent of this |
|
|
|
|
|
|
|
|
// return a new com.example.ueberwachungssystem.Detector.Signalverarbeitung.Complex object whose value is the complex tangent of this |
|
|
public Complex tan() { |
|
|
public Complex tan() { |
|
|
return sin().divides(cos()); |
|
|
return sin().divides(cos()); |
|
|
} |
|
|
} |