?? oqpsk.m
字號(hào):
% OQPSK Demodulation
clear,close,clc
ErrBit = 0;
ErrBitDigital = 0;
SNR = -10;
NumData = 1000;
Debug = 0;
% 1 OQPSK調(diào)制
t = 0:pi/20:20*pi;
data = 1*pi/4;
tx = cos(t + data);
for f = 1:NumData
% 2 信道傳輸
for j = 1:max(size(t))
noise(j) = randn;
end
meanNoise = 10^(-SNR/20) * mean(noise);
rx = tx + 10^(-SNR/20) * noise;
% 3 OQPSK解調(diào)
vcoi = cos(t);
vcoq = sin(t);
ipath = vcoi.* rx;
qpath = vcoq.* rx;
idec = mean(ipath) + randn;
qdec = mean(qpath) + randn;
% 4 數(shù)字采樣解調(diào)
indexI = find(mod(t, pi) == 0);
indexQ = find(mod(t, pi) == pi/2);
idecDigtal = sum(ipath(1,indexI));
qdecDigtal = sum(qpath(1,indexQ));
%plot(ipath);
%hold
%plot(qpath,'r')
% 5 誤碼率分析
if((idec <=0) || qdec >= 0)
ErrBit = ErrBit + 1
end
%if((idecDigtal <=0) || qdecDigtal >= 0)
if((idecDigtal <=0) || (qdecDigtal >= 0))
ErrBitDigital = ErrBitDigital + 1
sumNoise(ErrBitDigital + 1,1) = sum(noise(indexI));
sumNoise(ErrBitDigital + 1,2) = sum(ipath(1,indexI));
if (Debug == 1)
ClearChn = tx(indexI).*vcoi(indexI)
NoiseSap = noise(indexI)
NoiseChn = rx(indexI).*vcoi(indexI)
sumClearChn = sum(ClearChn)
sumNoiseChn = sum(NoiseChn)
sumNoiseSap = sum(NoiseSap)
error('Debug On');
end
end
end
sumNoise
BER = ErrBit/NumData
ErrBitDigital = ErrBitDigital/NumData
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -