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

📄 scfde_timing_effect_ber.asv

📁 一种基于正交频分复用系统
💻 ASV
字号:
clear all;
%仿真参数
nca=256;                            %子载波数(每帧数据数)
ncp=32;                             %CP长度
nsubm=16;                           %子载波调制进制数
h=[1;zeros(6,1);0.5623;zeros(11,1);0.3162];    %SUI-5
% h=[0.6+0.6*i;zeros(6,1);0.6;0;0;0.5*i;zeros(10,1);0.2-0.1*i;zeros(8,1);0.3;0];
H=fft(h,nca);                       %信道参数
for snr=1:20
    if(snr<=8)
        frame=50;
    elseif (snr>=9)&(snr<=15)
        frame=100;
    elseif((snr>=15)&(snr<=18))
        frame=200;
    elseif((snr>=18)&(snr<=21))
        frame=300;
    elseif((snr>=22)&(snr<=23))
        frame=500;
    elseif(snr>=24)&(snr<=25)
        frame=800;
    end
    for m=1:frame
        
%SC-FDE 发射
%产生数据-------------------------------------------------------------------
        s(:,m)=randint(nca,1,nsubm);                    %产生信源
%         s_map=qammod(s(:,m),nsubm);                     %映射
        [sreal,simag]=qaskenco(s(:,m),nsubm);
        s_map=sreal+i*simag;
        s_addcp=zeros((nca+ncp),1);
        s_addcp(1:ncp)=s_map((nca-ncp+1):nca);          %加CP
        s_addcp((ncp+1):(ncp+nca))=s_map(1:nca);
%--------------------------------------------------------------------------        

%过信道
        s_pfading=filter(h,1,s_addcp);                  %过多径
        s_pf_addawgn=awgn(s_pfading,snr,'measured');    %加噪声

%SC-FDE 接收
        r_removecp=s_pf_addawgn((ncp+1):(ncp+nca));     %去CP
        r_fft=fft(r_removecp,nca);                      %将接收信号转换到频域
%均衡-----------------------------------------------------------------------
% %Forcing zero==============================================================
%         r_fde=r_fft./H;
% %==========================================================================
%MMSE======================================================================
        snr_pow=10^(snr/10);                            %信号和噪声的功率比
%         r_pow=sum(abs(r_fft).^2);                       %计算接收到信号的功率
%         n_pow=r_pow/snr_pow;                            %噪声功率
%         npow_point=n_pow/nca;                           %每点的噪声功率
%         snrpow_point=((abs(r_fft)).^2)./npow_point;
%         H_eq=1./(H.*(1+1./(snrpow_point)));
        snrpow_point=snr_pow.*nca.*(abs(H).^2)/sum(abs(H).^2);      %每点的信号噪声功率比
        H_eq=1./(H.*(1+1./snrpow_point));               %均衡系数
        r_fde=r_fft.*H_eq;                              %均衡后信号
%==========================================================================
%--------------------------------------------------------------------------
%子载波解调-----------------------------------------------------------------
        r_map=ifft(r_fde,nca);                          %将信号转换回时域        
%         r(:,m)=qamdemod(r_map,nsubm);
        rreal=real(r_map);
        rimag=imag(r_map);
        r(:,m)=qaskdeco(rreal,rimag,nsubm);             %解映射
%--------------------------------------------------------------------------        
    end
    [numberb(snr),ratiob(snr)]=biterr(s,r);
    snr
end
figure;
semilogy(1:snr,ratiob,'-o');       
        
        
        

⌨️ 快捷键说明

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