📄 oqpsk.asv
字号:
% OQPSK Demodulation
clear,close,clc
ErrBit = 0;
ErrBitDigital = 0;
SNR = -10;
NumData = 1000;
Debug = 1;
% 1 OQPSK调制
t = 0:pi/180: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解调
vcoi = cos(t);
vcoq = sin(t);
ipath = vcoi.* rx;
qpath = vcoq.* rx;
idec = mean(ipath);
qdec = mean(qpath);
% 4 数字采样解调
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)
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)
NoiseChn = rx(indexI).*vcoi(indexI)
NoiseSap = noise(indexI)
sumClearChn = sum(ClearChn)
sumNoiseChn = sum(NoiseChn)
sumNoiseSap = sum(NoiseSap)
end
end
end
BER = ErrBit/NumData
ErrBitDigital = ErrBitDigital/NumData
sumNoise
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -