📄 noise.c
字号:
#include "const.h"
extern double CNR;
void awgn(double (*transmitted_signal)[2], double (*received_signal)[2]){
int n;
double r1, r2;
double amp, phase;
double gamma, noise[2];
gamma = pow(10.0, CNR / 10.0);
for(n=0; n<SYMBOLN; n++) {
r1 = (double)rand()/RAND_MAX;
r2 = (double)rand()/RAND_MAX;
if(r1 <= 1.0e-8) {
r1 = 1.0e-8; //防止出现log0的操作
}
amp = sqrt(-log(r1) / gamma);
phase = 2.0 * PI * r2;
noise[0] = amp * cos(phase);
noise[1] = amp * sin(phase);
received_signal[n][0] = transmitted_signal[n][0] + noise[0];
received_signal[n][1] = transmitted_signal[n][1] + noise[1];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -