#include <iostream>
#include <cmath>
#define M_PI 3.14159265358979323846
#define ANGLE_RESOLUTION 500
int main()
{
int numElements = 4;
double spacing = 0.2;
double freq = 1000.0;
double speedSound = 343.0;
for (int a = 0; a < ANGLE_RESOLUTION; a++) {
double angle = 180.0 * a / (ANGLE_RESOLUTION - 1) - 90;
double angleRad = M_PI * (double)angle / 180.0;
double realSum = 0;
double imagSum = 0;
for (int i = 0; i < numElements; i++) {
double position = i * spacing;
double delay = position * sin(angleRad) / speedSound;
realSum += cos(2.0 * M_PI * freq * delay);
imagSum += sin(2.0 * M_PI * freq * delay);
}
double output = sqrt(realSum * realSum + imagSum * imagSum) / numElements;
double logOutput = 20 * log10(output);
if (logOutput < -50) logOutput = -50;
printf("%d %f %f %f %f\n", a, angle, angleRad, output, logOutput);
}
return 0;
}
Beamforming c++实现
最新推荐文章于 2021-03-18 10:44:26 发布