优化积分算法,3.2.2
This commit is contained in:
parent
1c85208ab9
commit
3439188cc4
@ -451,24 +451,36 @@ void Calculation::Integration(std::vector<float> & vecData,std::vector<float>& r
|
||||
|
||||
std::vector<float> realshiftfft;
|
||||
std::vector<float> imageshiftfft;
|
||||
std::vector<float> realvalue,imagevalue;
|
||||
std::vector<float> realvalue,imagevalue,ifftData;
|
||||
_FFT(vecData,realshiftfft,imageshiftfft);
|
||||
|
||||
for (int i = 0; i <= 5 / resolution; i++) {
|
||||
realshiftfft[i] = 0;
|
||||
imageshiftfft[i] = 0;
|
||||
}
|
||||
for (int i = 1000 / resolution ; i < realshiftfft.size(); i++) {
|
||||
realshiftfft[i] = 0;
|
||||
imageshiftfft[i] = 0;
|
||||
|
||||
//在频域上进行5-1000 Hz的带通滤波
|
||||
for (int i = 0; i < vecData.size() / 2 + 1; ++i) {
|
||||
double frequency = i * resolution; // 计算当前频率分量
|
||||
if (frequency < 5 || frequency > 1000) {
|
||||
// 将5 Hz 到 1000 Hz 之外的频率成分设置为0
|
||||
realshiftfft[i] = 0.0;
|
||||
realshiftfft[i] = 0.0;
|
||||
imageshiftfft[i] = 0.0;
|
||||
imageshiftfft[i] = 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for(int k = 1; k < realshiftfft.size()+1;k++){
|
||||
realvalue.push_back((realshiftfft.at(k-1)/(k*2*M_PI))*1000 * 2);//单位转换mm/s,*1000 *2 精度损失
|
||||
imagevalue.push_back((imageshiftfft.at(k-1)/(k*2*M_PI))*1000 * 2);//单位转换mm/s,*1000
|
||||
double frequency = k * resolution; // 计算当前频率分量
|
||||
realvalue.push_back((realshiftfft.at(k-1)/(frequency*2*M_PI))*1000 * 2);//单位转换mm/s,*1000 *2 精度损失
|
||||
imagevalue.push_back((imageshiftfft.at(k-1)/(frequency*2*M_PI))*1000 * 2);//单位转换mm/s,*1000
|
||||
}
|
||||
|
||||
_iFFT(realvalue,imagevalue,retData);
|
||||
|
||||
// for (size_t i = 0; i < ifftData.size(); i++)
|
||||
// {
|
||||
// retData.push_back( ifftData[i] * 2);
|
||||
// }
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -531,4 +543,4 @@ void Calculation::Integration(std::vector<float> & vecData,std::vector<float>& r
|
||||
for (int i = 0; i < N; ++i) {
|
||||
out_data[i] = backward_out[i][0] / N * 2 * 1000; // *1000 是单位换算, 跟python保持一致
|
||||
}
|
||||
}*/
|
||||
}*/
|
||||
|
@ -2524,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)*1016)/ 8192;
|
||||
resolution = (((double)SampleRate/1000)*1016)/ vecWave.size();
|
||||
|
||||
}else if(res[17]=="02"){
|
||||
string::size_type comper = param.mChannelId.find("Z");
|
||||
|
@ -53,6 +53,7 @@ void CheckThread()
|
||||
if (10 == heart_count) {
|
||||
// StatusPub();
|
||||
if (GlobalConfig::LinkCount > 30) {
|
||||
LOG_ERROR("MQTT connect failed\n");
|
||||
#ifdef IMX6UL_GATEWAY
|
||||
char connect[10]={0x00};
|
||||
readStringValue("config", "connect",connect,(char*)GlobalConfig::Config_G.c_str());
|
||||
@ -89,7 +90,15 @@ void CheckThread()
|
||||
iRet = data_publish(str.c_str(), GlobalConfig::Topic_G.mPubCmd.c_str());
|
||||
if(iRet != 0 )
|
||||
{
|
||||
LOG_ERROR("MQTT connect failed\n");
|
||||
LOG_ERROR("MQTT connect failed ,time check\n");
|
||||
#ifdef IMX6UL_GATEWAY
|
||||
char connect[10]={0x00};
|
||||
readStringValue("config", "connect",connect,(char*)GlobalConfig::Config_G.c_str());
|
||||
if(atoi(connect)){
|
||||
LOG_ERROR("MQTT connect failed,time check ,reboot\n");
|
||||
exit(0);
|
||||
}
|
||||
#endif
|
||||
//bool status = Ping( GlobalConfig::ServerIP.c_str(), 10000);
|
||||
#ifdef NR5G_MODULE
|
||||
#ifdef IMX6UL_GATEWAY
|
||||
@ -231,12 +240,13 @@ void CheckThread()
|
||||
loose_check = 0;
|
||||
sql_ctl->CalculateDip();
|
||||
}
|
||||
if(ModifyAddr == 3600 && pUart->bModifyAddr){
|
||||
LOG_ERROR("ModifyAddr failed \n");
|
||||
exit(0);
|
||||
}
|
||||
if(ModifyAddr == 21000){
|
||||
ModifyAddr = 0;
|
||||
if(ModifyAddr == 3600) {
|
||||
LOG_INFO("ModifyAddr check\n");
|
||||
ModifyAddr = 0;
|
||||
if(pUart->bModifyAddr){
|
||||
LOG_ERROR("ModifyAddr failed \n");
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
if(18000 == commSignal){ //5h
|
||||
|
Loading…
x
Reference in New Issue
Block a user