code: public ColorImg getPowerPhaseSpectrumImg(){
  		// calculate power spectrum
  		this.recomputePowerChannel();
  		// get upper bound (used for normalization)
  		final double maxLogPow = Math.log(1+this.getMaxValue(CHANNEL_POWER));
  		ColorImg powerphase = new ColorImg(this.getDimension(), false);
  		// create phase image in L*a*b* color space
  		powerphase.forEach(px->{
  			// calculate phase (in [0..2pi])
  			double phase = this.computePhase(px.getIndex());
  			// get power
  			double logPower = Math.log(1+this.getDataPower()[px.getIndex()]);
  			// normalize power
  			double normLogPow = logPower/maxLogPow;
  			// get phase position on unit circle in a*b* plane
  			double x = Math.cos(phase);
  			double y = Math.sin(phase);
  			// calc radius in a*b* plane (0.2 is ~max radius for which colors are still in RGB gammut at L*=0.74)
  			double radius = 0.2*normLogPow;
  			// set L* according to power (L*=0.74 has a*b* plane with maximum RGB gammut around center)
  			px.setValue(0, 0.74*normLogPow);
  			// set color according to phase (also scale by radius because RGB gammut gets smaller with decreasing L*)
  			px.setValue(1, 0.5+radius*x);
  			px.setValue(2, 0.5+radius*y);
  		});
  		powerphase.forEach(ColorSpaceTransformation.LAB_2_RGB);
  		return powerphase;
  	}
docs: Returns a combination of power and phase spectrum image for display.
  This maps power (squared magnitude) to luminance and phase angle to color.
  As in {@link #getPhaseSpectrumImg()} color is mapped to the a*b* plane of
  CIE L*a*b* to ensure constant perceived luminance for constant power.
  
  @return power phase spectrum image (combination of both spectra) for display
  
  @see #getPowerSpectrumImg()
  @see #getPhaseSpectrumImg()