?? test1.m
字號:
clear, clc, close all
% 0 產(chǎn)生擴(kuò)頻碼
I_Chip = kasami(1);
I_Chip = I_Chip(1,:);
Q_Chip = gold(1);
Q_Chip = Q_Chip(1,:);
SNR = -18;
NumBit = 10;
SynOffset = 0;
BER_Total = [];
for SNR = -15:-1:-20
for SimuTimes = 1:3
% 1 產(chǎn)生幀信息
DataFrame = randn(2,500);
DataFrame(DataFrame <= 0) = -1;
DataFrame(DataFrame > 0) = 1;
% 2 擴(kuò)頻
DSFrame = BD_DSSS(DataFrame, I_Chip, Q_Chip);
DsStream = DSFrame(1,1:NumBit * 255);
% 3 信道干擾
for n = 1:NumBit * 255 % 產(chǎn)生的隨機(jī)干擾不相關(guān)
noise(1,n) = randn;
end
RecStream = DsStream + 10^(-1 * SNR / 20) * noise;
% 4 解擴(kuò)
for i = 1:(NumBit - 1)
tempRecFrame1 = RecStream(((i - 1) * 255 + 1 + SynOffset):i * 255 + SynOffset);
RecBit(i) = sum(tempRecFrame1 * I_Chip');
end
% 5 單步相關(guān)
% for i = 1:(NumBit - 2)*255
% tempRecFrame2 = RecStream(i + SynOffset:i + 254 + SynOffset);
% StepCorr(i) = sum(tempRecFrame2 * I_Chip');
% end
% 7 誤碼率
RecBit(RecBit <= 0) = -1;
RecBit(RecBit > 0) = 1;
TxBit = DataFrame(1,1:NumBit - 1);
BER(SimuTimes) = 0.5 * sum(abs(TxBit - RecBit))/NumBit
% Offset(SynOffset + 1) = SynOffset
% 8 對特定 SynOffset 畫圖顯示結(jié)果
if ((SynOffset == 0) && (SimuTimes == 1))
subplot(2,2,1)
plot(DsStream(1:1000))
axis([1 1000 -50 50]);
for i = 1:(NumBit - 2)*255
tempRecFrame2 = RecStream(i + SynOffset:i + 254 + SynOffset);
StepCorr(i) = sum(tempRecFrame2 * I_Chip');
end
subplot(2,2,2)
plot(RecStream(1:1000))
axis([1 1000 -50 50]);
hold on
plot(DsStream(1:1000),'r.')
subplot(2,2,3)
plot(StepCorr)
axis([-100 NumBit* 256 -1000 1000]);
hold on
subplot(2,2,3)
plot([(0:NumBit - 3)*255 + 1],StepCorr((0:NumBit - 3)*255 + 1), 'rd');
pause(3)
end
end
subplot(2,2,4)
plot(1:SimuTimes, BER,'r.')
hold on
pause(3)
SNR = SNR
BER_Total = [BER_Total mean(BER,2)]
end
SNR = -15:-1:-20
figure
plot(SNR, BER_Total,'r')
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -