?? 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 + -