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

📄 复件 lihui.m

📁 信号检测中的监狱犯人越狱计算!典型的信号检测案例!
💻 M
字号:
clear;
clc;
type = input('调制方式(0:BPSK,1:CFSK,2:CASK):');
tic;
T = 2;
delt_t = 0.1;
A = 1;
E_N0 = 0:10;
snr = E_N0 + 3 - 10*log10(T/delt_t);
t = (delt_t:delt_t:T)';
LOOP = 2500;
if type==0              %if  BPSK
    wc = 4*pi;
    s0 = A*sin(wc*t);
    s1 = A*sin(wc*t+pi);
    VT = 0;
elseif type==1           %if  CFSK
    w0 = 2*pi;
    w1 = 4*pi;
    s0 = A*sin(w0*t);
    s1 = A*sin(w1*t);
    VT = 0;
else                   %if   CASK
    wc = 2*pi;
    s0 = 0*t;
    s1 = A*sin(wc*t);
    VT = 0.5*s1'*s1*delt_t;
end
%E = 0.5*(s0'*s0+s1'*s1)*delt_t;
%sigpower = 10*log10(E);          %信号功率
for loop = 1:length(E_N0)
    error = 0;
    for i = 1:LOOP
       code = randint(1,100);
       y = s0*(1-code) + s1*code;       %发射机调制
       rt = awgn(reshape(y,[T*100/delt_t 1]),snr(loop),'measured');    %加噪
       %rt = awgn(reshape(y,[T*100/delt_t 1]),snr(loop),sigpower);
       r = reshape(rt,[T/delt_t 100]);
       code_test = (s1'*r*delt_t-s0'*r*delt_t)>VT;      %相关并判决
       error = error + sum(code_test~=code);
    end
    error_rat(loop) = error/LOOP/100;
end
toc;
%系统理论误码率
if type==0           %if  BPSK
    PE = 1 - normcdf(sqrt(2*10.^(E_N0/10)));
elseif type==1        %if  CFSK
    PE = 1 - normcdf(sqrt(10.^(E_N0/10)));
Else                %if  CASK
    PE = 1 - normcdf(sqrt(10.^(E_N0/10)));
end
semilogy(E_N0,error_rat,'k*-',E_N0,PE,'ko-')
grid on

⌨️ 快捷键说明

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