Уважаемое сообщество,
Я столкнулся с довольно раздражающей проблемой. Я рассчитываю кросс-спектральную плотность (CSD) между двумя временными сигналами, которые уже были обработаны с помощью FFT для двух комплексных частотных векторов (Singal1 => freqvec, Signal2 => freqvec2).
RowVectorXcd CSD(n_Epochs, fftsize);
for(int j = 0; j < fftsize; j++) {
std::complex<double> cospectrum = freqvec(j).real() * freqvec2(j).real() + freqvec(j).imag() * freqvec2(j).imag() ;
std::complex<double> quadspectrum = freqvec(j).real() * freqvec2(j).imag() - freqvec(j).imag() * freqvec2(j).real() ;
std::cout << "cospectrum:"<<cospectrum<< std::endl;
CSD(j) = sqrt( pow( cospectrum, 2 ) + pow( quadspectrum, 2) ) ;
Для дальнейших вычислений мне нужно правильно получить мнимую часть этого расчета.
Расчет работает, но каким-то образом результат всегда имеет мнимое значение ноль.
Задача ещё не решена.
Других решений пока нет …