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

📄 ofdm.m

📁 ofdm.m为主程序
💻 M
字号:
% --------------------------------------------- %
%                   参数定义                     %
% --------------------------------------------- %
% Initialize the parameters 
N=64;  %子载波个数
GI=4; %保护间隔
 
errerrate=1:1:121
idealerr=1:1:121
%SNR取值范围,取值个数为121
SNR=1:0.2:25  
%序列长度为S*num=400*2^12
S=400;
num=2^12;
% --------------------------------------------- %
%                   循环开始                     %
% --------------------------------------------- %
for i=1:1:121
totalErrors=0;
totalErrorsQPSK=0;
    for j=1:1:S
        
        x=rand(1,num)<0.5;
        x_mod=QPSKMod(x);
        %x_mod=BPSKMod(x);
    
        ofdm_symbol=[];
        ofdm_symbol=reshape(x_mod,N,length(x_mod)/N);             %串并转换
        Tx_data=ifft_cp(ofdm_symbol,N,GI,num);                     %IFFT,加循环前缀发送


        Rx_Data = awgn(Tx_data,SNR(i),'measured');                  %加高斯白噪声
        Rx_Data_sincarrier = awgn(x_mod,SNR(i),'measured');

        rec_symbol=fft_cutcp(Rx_Data,N,GI,num);                   %接收端FFT,去循环前缀P/S变换
        y=QPSKDemod(rec_symbol) ;                                 %解调
        %y=BPSKDemod(rec_symbol) ;                                %解调
        y_sincarrier=QPSKDemod(Rx_Data_sincarrier);

        totalErrors=sum(xor(y,x))+totalErrors;
        totalErrorsQPSK=sum(xor(y_sincarrier,x))+totalErrorsQPSK;
    end

    errerrate(i)=totalErrors/(num*S);                            %OFDM仿真误码率
    errerrate_sincarrier(i)=totalErrorsQPSK/(num*S);            %QPSK调制仿真误码率


    linearSNR=10^(SNR(i)/10);
    idealerr(i)=erfc(sqrt(linearSNR/2))/2;                     %QPSK调制理论误码率

end
% --------------------------------------------- %
%                   图像绘制                     %
% --------------------------------------------- %
plot(SNR,errerrate,'r',SNR,idealerr,'b',SNR,errerrate_sincarrier,'g');
%plot(SNR,errerrate,'r',SNR,idealerr,'b');
title('误码率曲线')
xlabel('SNR/dB');
ylabel('Pe');
legend('OFDM误码率仿真曲线','QPSK调制误码率理论曲线','QPSK调制误码率仿真曲线')
grid;
AXIS([0 27 10^(-6) 0.5])







⌨️ 快捷键说明

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