diff --git a/Cidn-SH b/Cidn-SH index 910148c..fa597a9 100644 Binary files a/Cidn-SH and b/Cidn-SH differ diff --git a/calculation/Calculation.cpp b/calculation/Calculation.cpp index ec3b4dd..68e28c1 100644 --- a/calculation/Calculation.cpp +++ b/calculation/Calculation.cpp @@ -368,7 +368,6 @@ void Calculation::FFTSpec(std::vector & vecData, std::vector & vec fftw_complex *inFFt, *outFFt; inFFt = (fftw_complex *)fftw_malloc(sizeof(fftw_complex) * vecData.size()); outFFt = (fftw_complex *)fftw_malloc(sizeof(fftw_complex) * vecData.size()); - printf("1---------------------------------------------->%d\n",vecData.size()); for (int j = 0; j < vecData.size(); j++) { inFFt[j][0] = (double)vecData[j]; @@ -455,7 +454,7 @@ void Calculation::Integration(std::vector & vecData,std::vector& r std::vector realvalue,imagevalue; _FFT(vecData,realshiftfft,imageshiftfft); - for (int i = 0; i < 5 / resolution; i++) { + for (int i = 0; i <= 5 / resolution; i++) { realshiftfft[i] = 0; imageshiftfft[i] = 0; } diff --git a/jsonparse/SH_JsonCmd.cpp b/jsonparse/SH_JsonCmd.cpp index a979a42..d614bcc 100644 --- a/jsonparse/SH_JsonCmd.cpp +++ b/jsonparse/SH_JsonCmd.cpp @@ -1745,31 +1745,33 @@ std::string JsonData::JsonCmd_Cgi_30(Param_30 ¶m) }else{ while(inFile.read((char *)&fTemp,sizeof(fTemp))) { // 取8K进行计算 - if(i < 8192) + //if(i < 8192) { vecWave.push_back(fTemp); - }else{ - break; } - i++; + // else{ + // break; + // } + // i++; } //测试正弦波 //pCalculation->GenerateSin(vecWave); - if(vecWave.size() < 8192){ - for(int i = vecWave.size(); i < 8192;i++){ - vecWave.push_back(0); - } - } + // if(vecWave.size() < 8192){ + // for(int i = vecWave.size(); i < 8192;i++){ + // vecWave.push_back(0); + // } + // } //添加汉宁窗 - pCalculation->Hanning(vecWave, hanningWave); - for(int i = 0; i < vecWave.size();i++){ - addhanningWave.push_back(vecWave[i]*hanningWave[i]); - } + // pCalculation->Hanning(vecWave, hanningWave); + // for(int i = 0; i < vecWave.size();i++){ + // addhanningWave.push_back(vecWave[i]*hanningWave[i]); + // } //进行傅立叶变换 - pCalculation->FFTSpec(addhanningWave, fftWave); + pCalculation->FFTSpec(vecWave, fftWave); sampleRateReference = 1024; + } /*for(int i = 0; i < fftWave.size();i++){ fftWave[i] = fftWave[i]*2; @@ -1830,7 +1832,8 @@ std::string JsonData::JsonCmd_Cgi_30(Param_30 ¶m) if(res[17]=="01"){ SampleRate = atoi(res[23].c_str()); printf("@@@@@@@@@@@@@@@@@@@@sample_rate=%d\n",SampleRate); - resolution = (((double)SampleRate/1000)*1024)/ 8192; + resolution = (((double)SampleRate/1000)*1016)/ vecWave.size(); + //resolution = (double)SampleRate/vecWave.size(); }else if(res[17]=="02"){ string::size_type comper = param.mChannelId.find("Z"); @@ -1840,9 +1843,15 @@ std::string JsonData::JsonCmd_Cgi_30(Param_30 ¶m) //resolution = (((double)vecWave.size()/1000)*1024)/ (SampleRate * ((vecWave.size()/SampleRate))); printf("@@@@@@@@@@@@@@@@@@@@sample_rate=%d,resolution = %f\n",SampleRate,resolution); }else{ - SampleRate = 8000; + SampleRate = 8192; printf("@@@@@@@@@@@@@@@@@@@@sample_rate=%d\n",SampleRate); - resolution = (((double)SampleRate/1024)*1024)/ 8192; + if (vecWave.size() < 8192) + { + resolution = (double)SampleRate/ vecWave.size(); + }else{ + + resolution = (double)SampleRate/ 8192; + } } } @@ -2005,7 +2014,7 @@ std::string JsonData::JsonCmd_Cgi_40(Param_40 ¶m) if(res[17]=="01"){ SampleRate = atoi(res[23].c_str()); printf("@@@@@@@@@@@@@@@@@@@@sample_rate=%d\n",SampleRate); - resolution = (((double)SampleRate/1000)*1024)/ 8192; + resolution = (((double)SampleRate/1000)*1016)/ 8192; }else if(res[17]=="02"){ string::size_type comper = param.mChannelId.find("Z"); if (comper != string::npos) { @@ -2515,7 +2524,7 @@ std::string JsonData::JsonCmd_Cgi_55(Param_55 ¶m) if(res[17]=="01"){ printf("@@@@@@@@@@@@@@@@@@@@sample_rate=%d\n",SampleRate); - resolution = (((double)SampleRate/1000)*1024)/ 8192; + resolution = (((double)SampleRate/1000)*1016)/ 8192; }else if(res[17]=="02"){ string::size_type comper = param.mChannelId.find("Z"); @@ -2656,36 +2665,47 @@ std::string JsonData::JsonCmd_Cgi_56(Param_56 ¶m) }else{ while(inFile.read((char *)&fTemp,sizeof(fTemp))) { // 取8K进行计算 - if(i < 8192) + //if(i < 8192) { vecWave.push_back(fTemp); - }else{ - break; } - i++; + // else{ + // break; + // } + // i++; } if(res[17]=="01"){ printf("@@@@@@@@@@@@@@@@@@@@sample_rate=%d\n",SampleRate); - resolution = (((double)SampleRate/1000)*1024)/ 8192; + resolution = (((double)SampleRate/1000)*1016)/ vecWave.size(); //resolution = (double)SampleRate/vecWave.size(); }else if(res[17]=="02"){ string::size_type comper = param.mChannelId.find("Z"); - { - SampleRate = 8000; + if (comper != string::npos) { + SampleRate = atoi(res[23].c_str()); + resolution = (double)SampleRate/vecWave.size(); + //resolution = (((double)vecWave.size()/1000)*1024)/ (SampleRate * ((vecWave.size()/SampleRate))); + printf("@@@@@@@@@@@@@@@@@@@@sample_rate=%d,resolution = %f\n",SampleRate,resolution); + }else{ + SampleRate = 8192; printf("@@@@@@@@@@@@@@@@@@@@sample_rate=%d\n",SampleRate); - resolution = (((double)SampleRate/1024)*1024)/ 8192; + if (vecWave.size() < 8192) + { + resolution = (double)SampleRate/ vecWave.size(); + }else{ + resolution = (double)SampleRate/ 8192; + } } } //测试正弦波 //pCalculation->GenerateSin(vecWave); - if(vecWave.size() < 8192){ - for(int i = vecWave.size(); i < 8192;i++){ - vecWave.push_back(0); - } - } + // if(vecWave.size() < 8192){ + // for(int i = vecWave.size(); i < 8192;i++){ + // vecWave.push_back(0); + // } + // } // //添加汉宁窗 // pCalculation->Hanning(vecWave, hanningWave); // for(int i = 0; i < vecWave.size();i++){ @@ -2695,6 +2715,7 @@ std::string JsonData::JsonCmd_Cgi_56(Param_56 ¶m) // //积分 pCalculation->Integration(vecWave, IntegrationWave,resolution); pCalculation->FFTSpec(IntegrationWave, fftWave); + sampleRateReference = 1024; } /*for(int i = 0; i < fftWave.size();i++){