clc
clear all
close all
%% Simulation Parameters
M = 16;
k = log2(M);
N = 10400;
nFFTSize = 64;
Nsyms_ofdm = N/208; % ? 208
ofdm_data =[];
x=[];
r = [];
%% Random Data
b = rand([1,N])>0.5;
%% Subcarriers
for i = 1:Nsyms_ofdm
block(i,1:208) = b(((208*(i-1))+1):(208*i));
m = block(i,1:208);
%% Binary to Decimal Conversion
reshaping = reshape(m,length(m)/k,k);
conversion = bi2de(reshaping);
conversion = conversion.';
%% Modulation
modulation = qammod(conversion,M);
%% Zero Padding
Z_data = [zeros(1,6) modulation zeros(1,6)]; % ? 6 size
%% IFFT
out_ifft = ifft(Z_data,nFFTSize);
%% Adding Cyclic Prefix and Cyclic Suffix
start = length(out_ifft)- length(out_ifft)/4 + 1; % calculating starting point of cyclic prefix
start1 = length(out_ifft)/4; % calculating ending point of cyclic suffix
sufix = out_ifft(1:start1); % extracting cyclic suffix from msg. signal
prefix = out_ifft(start:end); % extracting cyclic prefix from msg. signal
CP = [prefix out_ifft sufix];
%% OFDM Data
ofdm_data = [ofdm_data CP];
end
%% Adding AWGN
snr=0:1:18;
for i=1:1:length(snr)
Z1=awgn(ofdm_data,snr(i),'measured');
%% Reciever side
recieved_data = [];
%% Subcarriers
for j = 1:Nsyms_ofdm
blocks(j,1:96) = Z1(((96*(j-1))+1):(96*j)); % taking one sub-carrier at a time
m_2= blocks(j,1:96);
%% Removing Cyclic Prefix and Cyclic Suffix
removing_cp_cs = m_2(:,17:80);
%% FFT
out_fft = fft(removing_cp_cs,nFFTSize);
%% Removing Zero Padding
removing_z_padding = out_fft(:,7:58);
%% Demodulation
demodulation = qamdemod(removing_z_padding,M);
%% Conversion Decimal to Binary
conversion_2 = de2bi(demodulation);
%% Original length
reshaping_2 = reshape(conversion_2,1,length(conversion_2)*k); % reshaping to the original length
%% Recieved bits
recieved_data = [recieved_data reshaping_2];
end
%% BER
ww=reshape(recieved_data,1,10400);
[number(i),ratio(i)]=biterr(recieved_data,b)
end
%% Plotting BER curve
figure(3)
semilogy(snr,ratio)
grid
xlabel('SNR(dB)--->')
ylabel('BER-->')
title('BER Plot')
Base Code.zip_NOISE_OFDMA model_model ofdma_ofdm_ofdma
版权申诉
167 浏览量
2022-07-15
19:36:11
上传
评论
收藏 2.04MB ZIP 举报
四散
- 粉丝: 49
- 资源: 1万+
最新资源
- XILINXFPGA源码Xilinxspratan3xcs100E(VGAPS2)
- XILINXFPGA源码XilinxSPARTAN-3E入门开发板实例
- XILINXFPGA源码XilinxSdramVerilog和VHDL版本文档
- 物联网智能家居方案-基于Nucleo-STM32L073&机智云(大赛作品,文档齐全,可直接运行)(文档加Matlab源码)
- XILINXFPGA源码XilinxISE9.xFPGACPLD设计源码
- 成都市地图含高新区(高新南区,高新西区),天府新区,东部新区虚拟行政区划
- XILINXFPGA源码XilinxEDK设计试验
- XILINXFPGA源码XilinxEDKMicroBlaze内置USB固件程序
- 基于 django 的视频点播后台管理系统源代码+数据库
- 基于Java的网上医院预约挂号系统的设计与实现(部署视频)-kaic.mp4
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0