亲爱的社区,
我面临一个相当烦人的问题。我正在计算两个时间信号之间的交叉谱密度(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) ) ;
对于进一步的计算,我需要正确地得到这个计算的虚部。
计算确实有效,但不知何故,结果总是虚值为零。