function SER = ofdm(SP)
numSymbols = SP.FFTsize;
H_channel = fft(SP.channel,SP.FFTsize);
for n = 1:length(SP.SNR),
tic;
errCount = 0;
for k = 1:SP.numRun,
tmp = round(rand(2,numSymbols));
tmp = tmp*2 - 1;
inputSymbols = (tmp(1,:) + i*tmp(2,:))/sqrt(2);
TxSamples = sqrt(SP.FFTsize)*ifft(inputSymbols);
ofdmSymbol = [TxSamples(numSymbols-SP.CPsize+1:numSymbols) TxSamples];
RxSamples = filter(SP.channel, 1, ofdmSymbol); % Multipath Channel
tmp = randn(2, numSymbols+SP.CPsize);
complexNoise = (tmp(1,:) + i*tmp(2,:))/sqrt(2);
noisePower = 10^(-SP.SNR(n)/10);
RxSamples = RxSamples + sqrt(noisePower)*complexNoise;
EstSymbols = RxSamples(SP.CPsize+1:numSymbols+SP.CPsize);
Y = fft(EstSymbols, SP.FFTsize);
if SP.equalizerType == 'ZERO'
Y = Y./H_channel;
elseif SP.equalizerType == 'MMSE'
C = conj(H_channel)./(conj(H_channel).*H_channel + 10^(-SP.SNR(n)/10));
Y = Y.*C;
end
EstSymbols = Y;
EstSymbols = sign(real(EstSymbols)) + i*sign(imag(EstSymbols));
EstSymbols = EstSymbols/sqrt(2);
I = find((inputSymbols-EstSymbols) == 0);
errCount = errCount + (numSymbols-length(I));
end
SER(n,:) = errCount / (numSymbols*SP.numRun);
[SP.SNR(n) SER(n,:)]
toc
end
ofdm.rar_OFDM 正交_ofdm上行_spectral efficiency_spectral ofdm_uplink
版权申诉
99 浏览量
2022-09-24
15:17:07
上传
评论
收藏 621B RAR 举报
钱亚锋
- 粉丝: 86
- 资源: 1万+
最新资源
- rainy-day.jpg
- IMG_20240501_171218.jpg
- Swift-内购封装swift版本
- 经典CNN网络之ResNet 图像分类网络实战项目:7种小麦叶片病害分类(迁移学习)
- Java毕设之ssm010基于ssm的新能源汽车在线租赁管理系统+vue.rar
- Java毕设之ssm009毕业生就业信息统计系统+vue.rar
- Java毕设之ssm008医院门诊挂号系统+jsp.rar
- Java毕设之ssm007亚盛汽车配件销售业绩管理统+jsp.rar
- Java毕设之ssm006基于java的少儿编程网上报名系统+vue.rar
- Java毕设之ssm005基于SSM框架的购物商城系统+jsp.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈