%% Signal values and constellation diagram for ACO-OFDM
clear all;close all;clc;
N = 16;% no. OFDM subcarriers
NCP = 4; % CP length
NOFDM = 1; % no.transmitted OFDM symbols
EbN0dB_sim = 10; %SNR (dB)
QPSK_sig_set = [1+i -1+i 1-i -1-i]; %QPSK signal set
h = 0.4.^(0:4); % discrete-time CIR
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
EbN0_sim = 10^(EbN0dB_sim/10); %SNR for simulation
N0_sim = (mean(abs(QPSK_sig_set).^2)/2)/EbN0_sim; % N0
b = round(rand(1, 2*NOFDM*(N/4))); % info bits
bp1 = b(1:2:length(b));
bp2 = b(2:2:length(b));
m = 2*bp1+bp2+1; %indices for QPSK signal points
S = QPSK_sig_set(m); %transmitted signal points
S2 = []; s = [];
for j = 1:NOFDM
tmp = zeros(1, N/2-1);
tmp(1:2:N/2-1) = S((j-1)*(N/4)+1:j*(N/4));
S2 = [S2 0 tmp 0 fliplr(conj(tmp))];
tmp = max(sqrt(N)*ifft(S2((j-1)*N+1:j*N)), 0);
s = [s tmp(N-NCP+1:N) tmp];
end
tmp = conv(h,s);
w = sqrt(N0_sim/2)*randn(1, NOFDM*(N+NCP))+ i*sqrt(N0_sim/2)*randn(1, NOFDM*(N+NCP)); %AWGN
r = tmp(1:length(s)) + w; % received signal values
H = 1/sqrt(N)*fft(h, N);
R = []; R2 = [];
for j = 1:NOFDM
tmp = r((j-1)*(N+NCP)+NCP+1:j*(N+NCP));
tmp = 1/sqrt(N)*fft(tmp)./(sqrt(N)*H);
R2 = [R2 tmp];
R = [R tmp(2:2:N/2)];
%s = [s tmp(N-NCP+1:N) tmp];
end
b2 = []; % received bits
for n = 1:(N/4)*NOFDM
if real(R(n)) > 0 & imag(R(n)) > 0;
b2 = [b2 0 0];
elseif real(R(n)) <= 0 & imag(R(n)) > 0;
b2 = [b2 0 1];
elseif real(R(n)) > 0 & imag(R(n)) <= 0;
b2 = [b2 1 0];
else
b2 = [b2 1 1];
end
end
BER = length(find(b ~= b2))/(2*(N/4)*NOFDM);
Popt = 10*log(mean(s)*1e3);
k = 0:NOFDM*N-1;
k2 = 0:NOFDM*(N+NCP)-1;
figure(1); % transmit signal
subplot(2,2, 1), stem(k, real(S2),'r');
xlabel('k'); ylabel('Re\{S_k\}'); xlim([0 NOFDM*N-1]);
subplot(2,2,2), stem(k, imag(S2),'r');
xlabel('k'); ylabel('Im\{S_k\}'); xlim([0 NOFDM*N-1]);
subplot(2,2,3), stem(k2, real(s),'b');
xlabel('n'); ylabel('Re\{s_n\}'); xlim([0 NOFDM*(N+NCP)-1]);
subplot(2,2,4), stem(k2, imag(s),'b');
xlabel('n'); ylabel('Im\{s_n\}'); xlim([0 NOFDM*(N+NCP)-1]);
figure(2); % receive signal
subplot(2,2, 1), stem(k2, real(r),'b');
xlabel('n'); ylabel('Re\{r_k\}'); xlim([0 NOFDM*(N+NCP)-1]);
subplot(2,2,2), stem(k2, imag(r),'b');
xlabel('n'); ylabel('Im\{r_k\}'); xlim([0 NOFDM*(N+NCP)-1]);
subplot(2,2,3), stem(k, real(R2),'r');
xlabel('k'); ylabel('Re\{R_k\}'); xlim([0 NOFDM*N-1]);
subplot(2,2,4), stem(k, imag(R2),'r');
xlabel('k'); ylabel('Re\{R_k\}'); xlim([0 NOFDM*N-1]);
figure(3);
plot(R, '+'); hold on; grid on;
plot(QPSK_sig_set,'ro');
xlabel('Re\{R_k}'); ylabel('Im\{R_k}');
axis([-2.5 2.5 -2.5 2.5]);
text(-0.4, 2.2, strcat('Eb/N0=', num2str(EbN0dB_sim),'dB'))
没有合适的资源?快使用搜索试试~ 我知道了~
光纤通信ACO-OFDM和其他调制方式光纤通信系统性能对比,AWGN信道模型附Matlab代码.zip
共3个文件
jpg:2个
m:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 146 浏览量
2023-04-15
09:31:14
上传
评论 1
收藏 56KB ZIP 举报
温馨提示
1.版本:matlab2014/2019a,内含运行结果,不会运行可私信 2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士等教研学习使用 5.博客介绍:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可si信
资源推荐
资源详情
资源评论
收起资源包目录
【光纤通信】ACO-OFDM和其他调制方式光纤通信系统性能对比,AWGN信道模型附Matlab代码.zip (3个子文件)
【光纤通信】ACO-OFDM和其他调制方式光纤通信系统性能对比,AWGN信道模型附Matlab代码
运行结果1.jpg 34KB
main.m 3KB
运行结果2.jpg 38KB
共 3 条
- 1
资源评论
天天Matlab科研工作室
- 粉丝: 4w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功