白噪声下OFDM调制解调基带系统仿真一、实验要求1、信噪比2~14dB,步进2dB2、误码率性能10-43、仿真分析OFDM信号的功率谱特性二、实验程序流程图和程序本实验中只进行了OFDM基带的系统设计仿真,分别采用了16QAM和QPSK两种方式进行映射和逆映射,OFDM基带系统程序流程图如图1所示:二进制数据流16QAM/QPSK映射串并转换IFFT并串转换高斯噪声二进制数据流16QAM/QPSK逆映射并串转换FFT串并转换计算误比特率绘制OFDM信号功率谱图1OFDM基带系统程序流程图实验程序:1、QPSK映射程序function[out_message]=QPSK(Sig)[a1,b1]=find(Sig(:,1)==0&Sig(:,2)==0);out_message(a1)=-1-j;[a2,b2]=find(Sig(:,1)==0&Sig(:,2)==1);out_message(a2)=-1+j;[a3,b3]=find(Sig(:,1)==1&Sig(:,2)==0);out_message(a3)=1-j;[a4,b4]=find(Sig(:,1)==1&Sig(:,2)==1);out_message(a4)=1+j;end2、QPSK逆映射程序function[out_symbol,out_bit]=DeQPSK(Sig_noise)m1=find(angle(Sig_noise)=pi/2&angle(Sig_noise)0);out_symbol(1,m1)=1+j;out_bit(m1,1)=1;out_bit(m1,2)=1;m2=find(angle(Sig_noise)pi/2&angle(Sig_noise)=pi);out_symbol(1,m2)=-1+j;out_bit(m2,1)=0;out_bit(m2,2)=1;m3=find(angle(Sig_noise)-pi&angle(Sig_noise)=-pi/2);out_symbol(1,m3)=-1-j;out_bit(m3,1)=0;out_bit(m3,2)=0;m4=find(angle(Sig_noise)-pi/2&angle(Sig_noise)=0);out_symbol(1,m4)=1-j;out_bit(m4,1)=1;out_bit(m4,2)=0;end3、复高斯白噪声程序function[sig_noise,snr_dB]=fu_awgn(Sig,SNR,Num_signal)L_SNR=10.^(SNR/10);%转换为线性信噪比Eb=sum(abs(Sig).^2)/Num_signal;%每比特的能量N0=Eb/L_SNR;%噪声功率谱密度noise_R1=randn(1,length(Sig));%实际产生均值为0,方差为1的随机高斯序列,功率谱密度是1noise_R2=noise_R1-mean(noise_R1);%让均值再更接近0noise_R3=noise_R2./std(noise_R2);%标准差归一化让均值等于0noise_R=noise_R3*sqrt(N0/2);%使得功率谱密度是N0/2noise_I1=randn(1,length(Sig));%实际产生均值为0,方差为1的随机高斯序列,功率谱密度是1noise_I2=noise_I1-mean(noise_I1);%让均值再更接近0noise_I3=noise_I2./std(noise_I2);%标准差归一化让均值等于0noise_I=noise_I3*sqrt(N0/2);%使得功率谱密度是N0/2x=noise_R+j*noise_I;%生成复噪声sig_noise=Sig+x;%此时加入的就是Eb/N0snr=sum(abs(Sig).^2)/sum(abs(x).^2);snr_dB=10*log10(snr);%实际加入的信噪比SNRend4、主程序(求误比特率曲线)%%OFDM基带系统clearall;closeall;clc%%参数设置N=256;%fft点数Num_carriers=256;%载波数length_symbol=10000;%符号长度M=2;bit_num=Num_carriers*length_symbol*M;%数据个数Pe_check=[];forSNR=2:2:14%输入信噪比%%产生基带数据信号Sig=randi([01],1,bit_num);%%QPSK调制Sig=reshape(Sig,2,bit_num/2)';%QPSK映射[out_message]=QPSK(Sig);%%串并转换Sig__modulation=reshape(out_message,Num_carriers,length_symbol);%%插值interp_Sig_modulation=[Sig__modulation(1:Num_carriers/2,:);zeros(N-Num_carriers,length_symbol);Sig__modulation(Num_carriers/2+1:Num_carriers,:)];%%ifftifft_message=ifft(interp_Sig_modulation,N);%求PSDfft_ps_ifft_message=fftshift(fft(ifft_message,1024));PSD_message=10*log10(abs(fft_ps_ifft_message).^2/max(abs(fft_ps_ifft_message).^2));f1=(0:length(PSD_message)-1)/length(PSD_message);figure(1)plot(f1,PSD_message);holdon;plot(0:1/N:1,0,'r*');axis([01-400]);xlabel('归一化频率');ylabel('归一化功率');title('OFDM信号功率谱')%%加入复高斯白噪声Re_message=reshape(ifft_message,1,N*length_symbol);[sig_noise,snr_dB]=fu_awgn(Re_message,SNR,length(Re_message));%%并串转换ps_sig_noise=reshape(sig_noise,N,length_symbol);%%fftfft_Re_message=fft(ps_sig_noise,N);%%抽值samp_fft_Re_message=[fft_Re_message(1:Num_carriers/2,:);fft_Re_message(Num_carriers/2+1:Num_carriers,:)];%%QPSK解调samp_fft_Re_message=reshape(samp_fft_Re_message,1,Num_carriers*length_symbol);[out_symbol,out_bit]=DeQPSK(samp_fft_Re_message);%QPSK逆映射[resum,ratio1]=symerr(Sig,out_bit);Pe=ratio1;Pe_check=[Pe_check,Pe];endSNR=2:2:14;figuresemilogy(SNR,Pe_check,'-kd');xlabel('信噪比/dB');ylabel('误比特率');axis([2141e-61]);5、主程序(绘制功率谱和频谱)%%OFDM基带系统clearall;closeall;clc%%参数设置N=64;%fft点数Num_carriers=32;%载波数length_symbol=100;%符号长度M=2;bit_num=Num_carriers*length_symbol*M;%数据个数%%产生基带数据信号Sig=randi([01],1,bit_num);%%QPSK调制Sig=reshape(Sig,2,bit_num/2)';%QPSK映射[Sig_modulation]=QPSK(Sig);%%串并转换Sig_modulation=reshape(Sig_modulation,Num_carriers,length_symbol);%%插值interp_Sig_modulation_psd=[Sig_modulation(1:Num_carriers/2,:);zeros(N-Num_carriers,length_symbol);Sig_modulation(Num_carriers/2+1:Num_carriers,:)];%求功率谱插值Sig_modulation=[Sig_modulation';zeros(length_symbol,Num_carriers)];%每隔一个信道插值一个符号长度的0;此时得到的频谱不正交interp_Sig_modulation=reshape(Sig_modulation,length_symbol,2*Num_carriers)';%%ifftifft_message=ifft(interp_Sig_modulation_psd,N);%求PSDfft_ps_ifft_message=fftshift(fft(ifft_message,1024));PSD_message=10*log10(abs(fft_ps_ifft_message).^2/max(abs(fft_ps_ifft_message).^2));f1=(0:length(PSD_message)-1)/length(PSD_message);figure(1)plot(f1,PSD_message)holdonplot(0:1/N:1,0,'r*')axis([01-400]);xlabel('归一化频率');ylabel('归一化功率谱');title('OFDM符号功率谱')%求频谱fft_ps_ifft_message1=fftshift(interp_Sig_modulation(:,1),2048);%进行了插值fft_ps_ifft_message2=fftshift(Sig_modulation(:,1),2048);%未进行插值f1=(0:length(fft_ps_ifft_message1)-1)/length(fft_ps_ifft_message1);f2=(0:length(fft_ps_ifft_message2)-1)/length(fft_ps_ifft_message2);figure(2)subplot(211)plot(f1,abs(fft_ps_ifft_message1)/max(abs(fft_ps_ifft_message1)));axis([0101.2]);xlabel('归一化频率');ylabel('归一化频谱');title('一倍插值后的OFDM符号频谱')subplot(212)plot(f2,abs(fft_ps_ifft_message2)/max(abs(fft_ps_ifft_message2)));axis([0101.2]);xlabel('归一化频率');ylabel('归一化频谱');title('未插值的OFDM符号频谱')三、实验结果1、OFDM基带系统误比特曲线图2采用QPSK映射时OFDM基带系统的误比特曲线2、OFDM信号功率谱图3OFDM信号功率谱(64点fft)3、OFDM信号频谱图4OFDM符号的频谱246810121410-610-510-410-310-210-1100信噪比/dB误比特率00.10.20.30.40.50.60.70.80.91-40-35-30-25-20-15-10-50归一化频率归一化功率谱OFDM符号功率谱00.10.20.30.