📄 ss_pe94.m
字号:
function [p]=ss_Pe94(snr_in_dB, Lc, A, w0)% [p]=ss_Pe94(snr_in_dB, Lc, A, w0)% SS_PE94 finds the measured error rate. The function % that returns the measured probability of error for the given value of % the snr_in_dB, Lc, A and w0.snr=10^(snr_in_dB/10);sgma=1; % noise standard deviation is fixedEb=2*sgma^2*snr; % signal level required to achieve the given % signal to noise ratioE_chip=Eb/Lc; % energy per chipN=10000; % number of bits transmitted% The generation of the data, noise, interference, decoding process and error% counting is performed all together in order to decrease the run time of the % program. This is accomplished by avoiding very large sized vectors.num_of_err=0; for i=1:N, % generate the next data bit temp=rand; if (temp<0.5), data=-1; else data=1; end; % repeat it Lc times, i.e. divide it into chips for j=1:Lc, repeated_data(j)=data; end; % pn sequence for the duration of the bit is generated next for j=1:Lc, temp=rand; if (temp<0.5), pn_seq(j)=-1; else pn_seq(j)=1; end; end; % the transmitted signal is trans_sig=sqrt(E_chip)*repeated_data.*pn_seq; % AWGN with variance sgma^2 noise=sgma*randn(1,Lc); % interference n=(i-1)*Lc+1:i*Lc; interference=A*sin(w0*n); % received signal rec_sig=trans_sig+noise+interference; % determine the decision variable from the received signal temp=rec_sig.*pn_seq; decision_variable=sum(temp); % making decision if (decision_variable<0), decision=-1; else decision=1; end; % if it is an error, increment the error counter if (decision~=data), num_of_err=num_of_err+1; end;end;% then the measured error probability isp=num_of_err/N;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -