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

📄 psk_8_lp.m

📁 4PSK误码仿真率
💻 M
字号:
%=============   2008.10.10   4:00 PM ======%
%=============   观察调制解调效果,加噪声, 观察"误符号率","误码率"
%==========  “根” 升余弦 脉冲
clear;
clc;

fs=12000;           % sample rate
fb=2400;
ts=1/fs;
tb=1/fb;
fc=1800;            % carrier frequency
df=50;             
%b=fir1(128,0.25);
alpha=0.25;

SNR=0:2:20;
SNR_real=SNR-10*log10(6);


for m=1:length(SNR_real)
    now=SNR(m)
    snr(m)=10^(SNR_real(m)/10);  % 注意,此处的信噪比为符号信噪比,也是样点信噪比。《高数通》196页图为比特信噪比
                                    % 比特信噪比*3=符号信噪比

  symbol_err=0;
bit_err=0;  
                                    
for n=1:10000
    n
N=1000;
s=randint(1,N,8); 

[signal_t,f_off]=bw0_modulation_LP(s,0);
signal_t=signal_t./sqrt(mean(abs(signal_t).^2));


% 信道
noise=randn(1,length(signal_t)).*exp(j*2*pi.*rand(1,length(signal_t))).*sqrt(1/snr(m));
signal_t=signal_t+noise;

f_off_e=0;
out_demodu=bw0_demodulation_LP(signal_t,f_off_e);                   % 解调完成


for k=1:N
    dec(k)=out_demodu((k-1)*6+49);    
end;

%=============采样判决
for k=1:N
    for l=1:8        
        tt=dec(k);
        distance(l)=abs(tt-exp(j*2*pi/8*(l-1)));
        [value,md]=min(distance);
        switch md
            case 1
                out(k)=0;
            case 2
                out(k)=1;
            case 3
                out(k)=2;
            case 4
                out(k)=3;
            case 5
                out(k)=4;
            case 6
                out(k)=5;
            case 7
                out(k)=6;
            case 8
                out(k)=7;
                
        end;
    end;
end;


for k=1:N
    if out(k)~=s(k)
        symbol_err=symbol_err+1;
        bit_err=bit_err+biterr(out(k),s(k));
    else;
    end;
end;

if bit_err>1000
    break;
else;
end;

end;

Pe_bit(m)=bit_err/N/3/n;

if Pe_bit(m)==0
    break;
else;
end;

end;

semilogy(SNR(1:length(Pe_bit)),Pe_bit,'-o');hold on;        % 8PSK 仿真值
% SNR=0:2:20;
% Pe_bit=[0.31917,0.28817,0.223,0.15244,0.09525,0.051571,0.020059,0.0048696
% ,0.00072379,3.7874e-005,4.3333e-007;]


x_dB=0:2:20;
x=10.^(x_dB/10);
y=2*Qfunct(sqrt(2.*x).*sin(pi/8));        % 8PSK近似公式 《高数通》197页
semilogy(x_dB,y,'-s');hold off;        
grid;
% semilogy(SNR_dB2,Pth);hold off;grid;


% figure;
% plot(dec_i,dec_q,'o');

% [XI,xi,df1]=fftseq(xi,ts,df);
% XI=XI/fs;
% f=[0:df1:df1*(length(xi)-1)]-fs/2;
% 
% [XQ,xq,df1]=fftseq(xq,ts,df);
% XQ=XQ/fs;
% f=[0:df1:df1*(length(xq)-1)]-fs/2;
% 
% [YI,yi,df1]=fftseq(yi,ts,df);
% YI=YI/fs;
% f=[0:df1:df1*(length(yi)-1)]-fs/2;
% 
% [YQ,yq,df1]=fftseq(yq,ts,df);
% YQ=YQ/fs;
% f=[0:df1:df1*(length(yq)-1)]-fs/2;
% 
% [TEMP_I,temp_i,df1]=fftseq(temp_i,ts,df);
% TEMP_I=TEMP_I/fs;
% f=[0:df1:df1*(length(temp_i)-1)]-fs/2;
% 
% [TEMP_Q,temp_q,df1]=fftseq(temp_q,ts,df);
% TEMP_Q=TEMP_Q/fs;
% f=[0:df1:df1*(length(temp_q)-1)]-fs/2;
% 
% figure;
% subplot(3,2,1),plot(f,abs(fftshift(XI)));
% subplot(3,2,2),plot(f,abs(fftshift(XQ)));
% subplot(3,2,3),plot(f,abs(fftshift(YI)));
% subplot(3,2,4),plot(f,abs(fftshift(YQ)));
% subplot(3,2,5),plot(f,abs(fftshift(TEMP_I)));
% subplot(3,2,6),plot(f,abs(fftshift(TEMP_Q)));

⌨️ 快捷键说明

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