76 SetSpectralRange(22050);
99 f.
bMagPhase = HasMagBuffer() && HasPhaseBuffer();
100 f.
bPolar = HasPolarArray();
105 c.SetSpectralRange(GetSpectralRange());
106 c.SetScale(GetScale());
136 SetScale(newConfig.GetScale());
137 SetSpectralRange(newConfig.GetSpectralRange());
138 int bpfsize= newConfig.HasBPFSize() ? newConfig.GetBPFSize() : newConfig.GetSize();
139 PRSetType(newConfig.GetType(),newConfig.GetSize(),bpfsize);
142 void Spectrum::PRSetType(
const SpecTypeFlags& tmpFlags,
int size,
int bpfsize)
160 RemoveComplexArray();
189 int bpfsize= HasprBPFSize() ? GetprBPFSize() : size;
190 PRSetType(tmpFlags,size,bpfsize);
207 for (i=0; i<specSize; i++)
212 if(mag[i]<0.00001f) mag[i]=-200;
214 if(mag[i]==0) mag[i]=-200;
222 for (i=0; i<specSize; i++)
224 TData magLin = polar[i].Mag();
229 if(magLin<0.00001f) magLog=-200;
231 if(magLin==0) magLog=-200;
234 polar[i].SetMag(magLog);
239 if (HasComplexArray())
242 for (i=0; i<specSize; i++)
244 TData re = complex[i].Real();
245 TData im = complex[i].Imag();
249 if(magLin<0.00001f) magLog=-200;
251 if(magLin==0) magLog=-200;
254 complex[i].SetReal(magLog * re / magLin);
255 complex[i].SetImag(magLog * im / magLin);
262 BPF &magBPF= GetMagBPF();
264 for (i=0; i<bpfSize; i++)
269 if(magLin<0.00001f) magLog=-200;
271 if(magLin==0) magLog=-200;
293 for (i=0; i<specSize; i++)
295 if(mag[i]<=-200) mag[i]=0;
302 for (i=0; i<specSize; i++)
304 TData magLog = polar[i].Mag();
306 if(magLog<=-200) magLin=0;
308 polar[i].SetMag(magLin);
313 if (HasComplexArray())
316 for (i=0; i<specSize; i++)
318 TData re = complex[i].Real();
319 TData im = complex[i].Imag();
322 if(magLog<=-200) magLin=0;
324 complex[i].SetReal(magLin * re / magLin);
325 complex[i].SetImag(magLin * im / magLin);
332 BPF &magBPF = GetMagBPF();
334 for (i=0; i<bpfSize; i++)
338 if(magLog<=-200) magLin=0;
355 return GetMagBuffer()[pos];
357 return GetMagBPF().GetValueFromIndex(pos);
359 return GetPolarArray()[pos].Mag();
361 return GetComplexArray()[pos].Mag();
362 CLAM_ASSERT(
false,
"Spectrum::GetMag: Spectrum no initialized");
372 return GetMagBPF().GetValue(freq);
374 return GetMagBuffer()[pos];
376 return GetPolarArray()[pos].Mag();
378 return GetComplexArray()[pos].Mag();
379 CLAM_ASSERT(
false,
"Spectrum::GetMag: Spectrum no initialized");
388 return GetPhaseBuffer()[pos];
390 return GetPhaseBPF().GetValueFromIndex(pos);
392 return GetPolarArray()[pos].Ang();
394 return GetComplexArray()[pos].Ang();
395 CLAM_ASSERT(
false,
"Spectrum::GetPhase: Spectrum no initialized");
405 return GetPhaseBPF().GetValue(freq);
407 return GetPhaseBuffer()[pos];
409 return GetPolarArray()[pos].Ang();
411 return GetComplexArray()[pos].Ang();
412 CLAM_ASSERT(
false,
"Spectrum::GetPhase: Spectrum no initialized");
421 GetMagBuffer()[pos]=newMag;
423 GetMagBPF().SetValue(pos,newMag);
425 GetPolarArray()[pos].SetMag(newMag);
427 TData tmpAng=GetComplexArray()[pos].Ang();
428 GetComplexArray()[pos].SetReal(newMag*
CLAM_cos(tmpAng));
429 GetComplexArray()[pos].SetImag(newMag*
CLAM_sin(tmpAng));}
442 GetPhaseBuffer()[pos]=newPhase;
444 GetPhaseBPF().SetValue(pos,newPhase);
446 GetPolarArray()[pos].SetAng(newPhase);
448 TData tmpMag=GetComplexArray()[pos].Mag();
449 GetComplexArray()[pos].SetReal(tmpMag*
CLAM_cos(newPhase));
450 GetComplexArray()[pos].SetImag(tmpMag*
CLAM_sin(newPhase));
490 GetMagBuffer().Resize(size);
491 GetPhaseBuffer().Resize(size);
492 GetMagBuffer().SetSize(size);
493 GetPhaseBuffer().SetSize(size);
515 GetMagBuffer().Resize(size);
516 GetPhaseBuffer().Resize(size);
517 GetMagBuffer().SetSize(size);
518 GetPhaseBuffer().SetSize(size);
530 bool deleteMagPhase=
false;
537 GetMagBuffer().Resize(size);
538 GetPhaseBuffer().Resize(size);
539 GetMagBuffer().SetSize(size);
540 GetPhaseBuffer().SetSize(size);
577 convert.
ToPolar(in.GetComplexArray(), GetPolarArray());
583 convert.
ToPolar(GetComplexArray(), GetPolarArray());
589 convert.
ToComplex(in.GetPolarArray(),GetComplexArray());
595 convert.
ToComplex(GetPolarArray(),GetComplexArray());
601 for (
int i=0; i<size; i++)
603 magBuffer[i] = polarArray[i].Mag();
604 phaseBuffer[i] = polarArray[i].Ang();
610 Polar2MagPhase(in.GetPolarArray(),GetMagBuffer(),GetPhaseBuffer());
621 for (
int i=0; i<size; i++)
623 magBuffer[i] = complexArray[i].Mag();
624 phaseBuffer[i] = complexArray[i].Ang();
641 for (
int i=0; i<size; i++)
643 polarArray[i].SetMag(magBuffer[i]);
644 polarArray[i].SetAng(phaseBuffer[i]);
650 MagPhase2Polar(in.GetMagBuffer(),in.GetPhaseBuffer(),GetPolarArray());
666 for (
int i=0; i<size; i++)
668 complexArray[i].SetReal(magBuffer[i]*
CLAM_cos(phaseBuffer[i]));
669 complexArray[i].SetImag(magBuffer[i]*
CLAM_sin(phaseBuffer[i]));
687 "Spectrum::MagPhase2BPF(): BPFSize and MagPhase size differ.");
690 TData delta = GetSpectralRange()/(size-1);
699 MagPhase2BPF(in.GetMagBuffer(),in.GetPhaseBuffer(),GetMagBPF(),GetPhaseBPF());
704 MagPhase2BPF(GetMagBuffer(),GetPhaseBuffer(),GetMagBPF(),GetPhaseBPF());
712 TData delta = GetSpectralRange()/(size-1);
713 for(i=0; i<size; i++){
715 magBuffer[i] = magBPF.
GetValue(freq);
716 phaseBuffer[i]= phaseBPF.
GetValue(freq);
722 BPF2MagPhase(in.GetMagBPF(),in.GetPhaseBPF(),GetMagBuffer(),GetPhaseBuffer());
727 BPF2MagPhase(GetMagBPF(),GetPhaseBPF(),GetMagBuffer(),GetPhaseBuffer());
734 const int size= GetprSize();
737 if(HasMagBuffer() && GetMagBuffer().Size())
739 "Spectrum::GetSize(): Mag size and Size mismatch.");
740 if(HasPhaseBuffer() && GetPhaseBuffer().Size())
742 "Spectrum::GetSize(): Phase size and Size mismatch.");
743 if(HasComplexArray() && GetComplexArray().Size())
745 "Spectrum::GetSize(): Complex size and Size mismatch.");
746 if(HasPolarArray() && GetPolarArray().Size())
748 "Spectrum::GetSize(): Polar size and Size mismatch.");
749 if (!HasprBPFSize()) {
750 if(HasMagBPF() && GetMagBPF().Size())
752 "Spectrum::GetSize(): MagBPF size and Size mismatch.");
753 if(HasPhaseBPF() && GetPhaseBPF().Size())
755 "Spectrum::GetSize(): PhaseBPF size and Size mismatch.");
768 GetMagBuffer().Resize(newSize);
769 GetMagBuffer().SetSize(newSize);}
770 if(HasPhaseBuffer()){
771 GetPhaseBuffer().Resize(newSize);
772 GetPhaseBuffer().SetSize(newSize);}
773 if (HasPolarArray()){
774 GetPolarArray().Resize(newSize);
775 GetPolarArray().SetSize(newSize);}
776 if (HasComplexArray()){
777 GetComplexArray().Resize(newSize);
778 GetComplexArray().SetSize(newSize);}
779 if (!HasprBPFSize()) {
781 GetMagBPF().Resize(newSize);
782 GetMagBPF().SetSize(newSize);}
784 GetPhaseBPF().Resize(newSize);
785 GetPhaseBPF().SetSize(newSize);}
791 const int bpfsize= HasprBPFSize() ? GetprBPFSize() :
GetSize();
794 CLAM_ASSERT(! (HasMagBPF() && GetMagBPF().Size() && GetMagBPF().Size() != bpfsize) ,
795 "Spectrum::GetBPFSize(): MagBPF size and BPFSize mismatch.");
796 CLAM_ASSERT(!(HasPhaseBPF() && GetPhaseBPF().Size() && GetPhaseBPF().Size() != bpfsize),
797 "Spectrum::GetBPFSize(): PhaseBPF size and BPFSize mismatch.");
805 if (s != GetprSize()) {
815 if (HasMagBPF() && HasPhaseBPF())
817 GetMagBPF().Resize(s);
818 GetMagBPF().SetSize(s);
819 GetPhaseBPF().Resize(s);
820 GetPhaseBPF().SetSize(s);
844 f.
bMagPhase = HasMagBuffer() && HasPhaseBuffer();
845 f.
bPolar = HasPolarArray();