⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qpsk2.m

📁 信号调制解调源代码代码
💻 M
字号:
% QPSK 2
clear all, close all
N = 1000;
iter = 100;
expSymErrs = 10;
EbNo = 0:1:10;
bitsnrdB = EbNo;
bitsnrlin = 10.^(bitsnrdB/10);
theo_berr = 0.5*erfc(sqrt(bitsnrlin));
theo_serr = 1 - (1 - theo_berr).^2;
semilogy(bitsnrdB,theo_berr,'m', bitsnrdB,theo_serr,'g');
axis([0 max(EbNo) 1e-6 1]);
grid on
hold on
drawnow

for t = 1:length(EbNo)
    idx = 1;
    errSym = 0;
    while ((idx <= iter) || (sum(errSym) <= expSymErrs))
        s = 1/sqrt(2)*(randsrc(N,1) + j*randsrc(N,1));
        % Compute EsNo
        EsNo = EbNo(t) + 10*log10(2);
        EsNolin = 10.^(EsNo/10);
        No = 1/EsNolin; % Assuming Es = 1
        var = No;     %
        n = sqrt(var/2)*(randn(N,1) + j*randn(N,1));
        x = s + n;
        % Detection follows
        alph = [1+j, 1-j, -1+j, -1-j]/sqrt(2);
        detx = zeros(N,1);
        for tt = 1:N
            [val,id] = min(abs(x(tt) - alph));
            detx(tt) = alph(id);
        end
        errSym(idx) = length(find(s ~= detx));
        idx = idx + 1;
    end
    pe(t) = mean(errSym)/N;
    semilogy(EbNo(t),pe(t),'-ob')
    drawnow
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -