#include "stdio.h"
#include "stdlib.h"
#include "stdint.h"
#include "string.h"
#include "math.h"
// #define SAMPLE 1000
#define PI acos(-1)
int main(int argc, char *argv[])
{
float sum = 0;
float rms = 0;
int SAMPLE = atoi(argv[1]);
if(argc != 2)
SAMPLE = 100;
for(int x = 0; x < SAMPLE; x++)
{
//AC200V-50Hz
float y = 220 * sqrt(2) * sin(x * PI / 10); //20ms
sum += pow(y, 2); //平方和
}
//求平均
sum = sum / SAMPLE;
//开根号
rms = sqrt(sum);
printf("sample = %d, rms = %.9f\r\n", SAMPLE, rms);
return 0;
}
运行结果:
$ ./a.exe 5
sample = 5, rms = 196.773986816
$ ./a.exe 10
sample = 10, rms = 220.000015259
$ ./a.exe 15
sample = 15, rms = 212.540191650
$ ./a.exe 20
sample = 20, rms = 220.000015259
$ ./a.exe 30
sample = 30, rms = 220.000000000
$ ./a.exe 50
sample = 50, rms = 220.00000000