- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
qpsk仿真
移动通信仿真实验报告
实验要求:利用Matlab软件,建立OFDM基带传输系统,仿真其在Rayleigh信道下的系统BER性能。
1. 摘要
OFDM 的基本原理就是把高速的数据流通过串并变换,分配到传输速率相对较低的若
干个子信道中进行传输。 由于每个子信道中的符号周期会相对增加, 因此可以减轻由无线信道的多径时延扩展所产生的时间弥散性对系统造成的影响。并且还可以在 OFDM 符号之间插入保护间隔, 令保护间隔大于无线信道的最大时延扩展, 这样就可以最大限度地消除由于多径而带来的符号间干扰(ISI)。而且,一般都采用循环前缀作为保护间隔,从而可以避免由多径带来的子载波间干扰((ICI) 。
2.系统框图如下:
3.实验代码:
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];
% 设定 10 个多径传输信道
nTap = 10;
ht = 1/sqrt(2)*1/sqrt(nTap)*(randn(nSym,nTap) + j*randn(nSym,nTap));
% 计算并存储用于接受的信道频响
hF = fftshift(fft(ht,64,2));%将 fft 的 dc 分量移到频谱中心
% 与随即信道的每个码元卷积
for jj = 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 = (sqrt(nDSC)/nFFT)*fftshift(fft(yt.)).;
% 通过已知的频响进行均衡
yF = yF./hF;
% 提取所需载波
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(ipModHat1)) = +1;
ipModHat(find(ipModHat-1)) = -1;
% 模数变换
ipBitHat = (ipModHat+1)/2;
ipBitHat = reshape(ipBitHat.,nBitPerSym*nSym,1).;
% 计算错误个数
nErr(ii) = size(find(ipBitHat - ipBit),
文档评论(0)