?? 7-21.m
字號(hào):
%例程7-21 分析直擴(kuò)信號(hào)對(duì)正弦干擾的抑制
%直擴(kuò)信號(hào)對(duì)正弦干擾的抑制
Lc=10; %每比特碼片數(shù)目
A1=2; %第一個(gè)正弦干擾信號(hào)的幅度
A2=6; %第二個(gè)正弦干擾信號(hào)的幅度
A3=10; %第三個(gè)正弦干擾信號(hào)的幅度
A4=0; %第四個(gè)無(wú)干擾
w0=1; %以弧度表示的正弦干擾信號(hào)頻率
SNRindB=0:2:30;
for i=1:length(SNRindB) %計(jì)算誤碼率
err_prb1(i)=ss_Pe(SNRindB(i),Lc,A1,w0);
err_prb2(i)=ss_Pe(SNRindB(i),Lc,A2,w0);
err_prb3(i)=ss_Pe(SNRindB(i),Lc,A3,w0);
end
SNRindB4=0:1:8;
for i=1:length(SNRindB4) %計(jì)算無(wú)干擾情況下誤碼率
err_prb4(i)=ss_Pe(SNRindB4(i),Lc,A4,w0);
end
figure(1); %繪圖輸出
semilogy(SNRindB,err_prb1,'-bo',SNRindB,err_prb2,'-gx',SNRindB,err_prb3,'-r+',SNRindB4,err_prb4,'-k*');
grid on
title('擴(kuò)頻系統(tǒng)不同幅度正弦干擾下誤碼率曲線');
xlabel('SNRindB');
ylabel('BERindB');
legend('幅值為2的正弦干擾','幅值為6的正弦干擾','幅值為10的正弦干擾','無(wú)正弦干擾');
其中誤碼率計(jì)算函數(shù)如下:
function [p]=ss_Pe(snr_in_dB,Lc,A,w0)
snr=10^(snr_in_dB/10);
sgma=1; %噪聲的標(biāo)準(zhǔn)方差設(shè)為固定值
Eb=2*sgma^2*snr; %達(dá)到設(shè)定信噪比所需的信號(hào)幅度
E_chip=Eb/Lc; %每碼片能量
N=20000; %傳送的比特?cái)?shù)
num_of_err=0; %數(shù)據(jù)產(chǎn)生/噪聲/干擾/譯碼/差錯(cuò)計(jì)算
for i=1:N %產(chǎn)生下一個(gè)數(shù)據(jù)比特
temp=rand;
if temp<0.5
data=-1;
else
data=1;
end
for j=1:Lc %將其重復(fù)Lc次
repeated_data(j)=data;
end
for j=1:Lc %產(chǎn)生比特傳輸用的PN序列
temp=rand;
if temp<0.5
pn_seq(j)=-1;
else
pn_seq(j)=1;
end
end
trans_sig=sqrt(E_chip)*repeated_data.*pn_seq; %發(fā)送信號(hào)
noise=sgma*randn(1,Lc); %方差為sgma^2的高斯白噪聲
n=(i-1)*Lc+1:i*Lc;
interference=A*sin(w0*n); %干擾
rec_sig=trans_sig+noise+interference; %接收信號(hào)
temp=rec_sig.*pn_seq;
decision_variable=sum(temp); %從接收信號(hào)中產(chǎn)生判決變量
if decision_variable<0 %進(jìn)行判決
dicision=-1;
else
dicision=1;
end
if dicision~=data %若存在傳輸錯(cuò)誤,計(jì)數(shù)器累加
num_of_err=num_of_err+1;
end
end
p=num_of_err/N; %計(jì)算誤碼率
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -