我已经给出了这个方程来计算信号的总能量:
Ex= ∑ n|x[n]|2
对我来说,这建议您将每个块平方,然后得到整个块的总和。我想知道我编写的代码/算法对于这个方程是否准确,并且我以最有效的方式完成了它。
double totalEnergy(vector<double> data, const int rows, const int cols)
{
vector<double> temp;
double energy = 0;
for(int i=0; (i < 2); i++)
{
for(int j=0; (j < 2); j++)
{
temp.push_back( (data[i*2+j]*data[i*2+j]) );
}
}
energy = accumulate (temp.begin(), temp.begin()+(rows*cols), 0);
return energy;
}
int main(int argc, char *argv[]) {
vector<double> data;
data.push_back(4);
data.push_back(4);
data.push_back(4);
data.push_back(4);
totalEnergy(data, 2, 2);
}
结果:64
任何帮助/建议将不胜感激:)!