목차
BPSK 기본적인 이론
C Simulation을 하기 위한 코드
X-graph 프로그램을 이용한 출력파일 그래프 그리기
C Simulation을 하기 위한 코드
X-graph 프로그램을 이용한 출력파일 그래프 그리기
본문내용
0; i < SAMPLE; i++)
{
n=noise_gen();
sn = (rand() % 2) * 2 - 1;//signal is generated (1 or -1)
rn = sn + n;
if (sn * rn <= 0)
{
sum++;
}
}
fprintf(r_sig, "%d\t %lf\n", (int) snr, rn);
fprintf(error, "%d\t %lf\n", (int) snr, (double) sum / SAMPLE);
}
fclose(r_sig);
fclose(error);
fclose(Pb);
return 0;
}
double gaussian1()
{
double v1, v2, s;
do
{
v1 = 2 * ((double) rand() / RAND_MAX) - 1; // -1.0 ~ 1.0 까지의 값
v2 = 2 * ((double) rand() / RAND_MAX) - 1; // -1.0 ~ 1.0 까지의 값
s = v1 * v1 + v2 * v2;
} while (s >= 1 || s == 0);
s = sqrt((-2 * log(s)) / s);
return v1 * s;
}
double noise_gen()
{
sigma = sqrt(energy_sym / (2 * pow(10, snr / 10)));
awgn_sig = sigma * gaussian1();
//gaussian noise=sigma*G(0,1)
return awgn_sig;
}
이론 참고 : [정보통신기술용어해설]
http://www.ktword.co.kr/abbr_view.php?m_temp1=4300
{
n=noise_gen();
sn = (rand() % 2) * 2 - 1;//signal is generated (1 or -1)
rn = sn + n;
if (sn * rn <= 0)
{
sum++;
}
}
fprintf(r_sig, "%d\t %lf\n", (int) snr, rn);
fprintf(error, "%d\t %lf\n", (int) snr, (double) sum / SAMPLE);
}
fclose(r_sig);
fclose(error);
fclose(Pb);
return 0;
}
double gaussian1()
{
double v1, v2, s;
do
{
v1 = 2 * ((double) rand() / RAND_MAX) - 1; // -1.0 ~ 1.0 까지의 값
v2 = 2 * ((double) rand() / RAND_MAX) - 1; // -1.0 ~ 1.0 까지의 값
s = v1 * v1 + v2 * v2;
} while (s >= 1 || s == 0);
s = sqrt((-2 * log(s)) / s);
return v1 * s;
}
double noise_gen()
{
sigma = sqrt(energy_sym / (2 * pow(10, snr / 10)));
awgn_sig = sigma * gaussian1();
//gaussian noise=sigma*G(0,1)
return awgn_sig;
}
이론 참고 : [정보통신기술용어해설]
http://www.ktword.co.kr/abbr_view.php?m_temp1=4300
소개글