陈进伦 通信三班 20131830
利用Matlab软件,分别建立OFDM基带传输系统,仿真其在 Rayleigh信道下的系统BER性能。
clear all
nFFT = 64; nDSC = 52; nBitPerSym = 52;
% 快速傅里叶变化大小 % 载波数目
% 每个OFDM符号所含信息量 (与bpsk的子载波数目相同)
nSym = 10^4; % 信元数 EbN0dB = [0:35]; % EB/N0
EsN0dB = EbN0dB + 10*log10(nDSC/nFFT) + 10*log10(64/80); % EB/N0--->SNR for ii = 1:length(EbN0dB) % 信号产生
ipBit = rand(1,nBitPerSym*nSym) > 0.5; % 等概率随机生成信号0,1 ipMod = 2*ipBit-1;
% BPSK调制 0 --> -1, 1 --> +1
% 分组为多个符号 % 调
ipMod = reshape(ipMod,nBitPerSym,nSym).'; 制符号的子载波范围分配 [-26 至 -1, +1 至 +26]
xF=[zeros(nSym,6)ipMod(:,[1:nBitPerSym/2])zeros(nSym,1)ipMod(:,[nBitPerSym/2+1:nBitPerSym]) zeros(nSym,5)] % 进行IFFT变化,进行符号功率归一化到1 xt = (nFFT/sqrt(nDSC))*ifft(fftshift(xF.')).'; % 附加循环前缀为T/4 xt = [xt(:,[49:64]) xt]; nTap = 10;
ht = 1/sqrt(2)*1/sqrt(nTap)*(randn(nSym,nTap) + j*randn(nSym,nTap)); % 计算并存储用于接受的信道频响 hF = fftshift(fft(ht,64,2)); 即信道的每个码元卷积 forjj = 1:nSym
xht(jj,:) = conv(ht(jj,:),xt(jj,:)); end
xt = xht;
% 连接多个码元形成长向量
xt = reshape(xt.',1,nSym*(80+nTap-1)); % 生成服从标准正态分布的高斯噪声 nt = 1/sqrt(2)*[randn(1,nSym*(80+nTap-1)) + j*randn(1,nSym*(80+nTap-1))]; % 附加噪声,由于循环前缀导致的能量消耗用sqrt(80/64)补足 yt = sqrt(80/64)*xt + 10^(-EsN0dB(ii)/20)*nt; yt = reshape(yt.',80+nTap-1,nSym).'; yt = yt(:,[17:80]); yF = yF./hF;
% 接收机
% 将接受的信号进行
%将fft的dc分量移到频谱中心 % 与随
% 设定10个多径传输信道
% 去除循环前缀% 转换到频域
yF = (sqrt(nDSC)/nFFT)*fftshift(fft(yt.')).'; % 通过已知的频响进行均衡
% 提取所需载波
陈进伦 通信三班 20131830
yMod = yF(:,[6+[1:nBitPerSym/2] 7+[nBitPerSym/2+1:nBitPerSym] ]); % BPSK解调 % +ve --> 1, -ve --> -1
ipModHat = 2*floor(real(yMod/2)) + 1; ipModHat(find(ipModHat>1)) = +1; ipModHat(find(ipModHat<-1)) = -1; ipBitHat = (ipModHat+1)/2;
ipBitHat = reshape(ipBitHat.',nBitPerSym*nSym,1).'; % 计算错误个数 nErr(ii) = size(find(ipBitHat - ipBit),2); end
simBer = nErr/(nSym*nBitPerSym); EbN0Lin = 10.^(EbN0dB/10); close all; figure
semilogy(EbN0dB,theoryBer,'bs-','LineWidth',2); hold on
semilogy(EbN0dB,simBer,'mx-','LineWidth',2); axis([0 35 10^-5 1]) grid on
legend('Rayleigh-Theory', 'Rayleigh-Simulation'); xlabel('Eb/No,dB') ylabel('BER') title('BPSK在OFDM系统下的BER')
%计算误码率 %线性化信噪比
% 模数变换
theoryBer = 0.5.*(1-sqrt(EbN0Lin./(EbN0Lin+1)));%理论信噪比 %绘图
陈进伦 通信三班 20131830