当前位置:   article > 正文

通信原理(6)载波传输OFDM_载波 符号

载波 符号

0 OFDM基本原理

OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM(Multi Carrier Modulation)多载波调制的一种。通过频分复用实现高速串行数据的并行传输,它具有较好的抗多径衰弱的能力,能够支持多用户接入。在LTE、5G NR、802.11ax通信协议的物理层中都用到了OFDM技术。

OFDM主要思想是:将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到在每个子信道上进行传输。正交信号可以通过在接收端采用相关技术来分开,这样可以减少子信道之间的相互干扰(ISI)。每个子信道上的信号带宽小于信道的相关带宽,因此每个子信道上可以看成平坦性衰落,从而可以消除码间串扰,而且由于每个子信道的带宽仅仅是原信道带宽的一小部分,信道均衡变得相对容易。
在这里插入图片描述
在这里插入图片描述

OFDM中的各个载波是相互正交的,每个载波在一个符号时间内有整数个载波周期,每个载波的频谱最大值点和相邻载波的零点重叠,这样便减小了载波间的干扰。由于载波间有部分重叠,所以它比传统的FDMA提高了频带利用率。

OFDM符号:如果系统带宽为20M,那么系统包含100个RB,每个RB包含12个子载波,即一个OFDM符号上共有1200个子载波。同时,一个OFDM符号包含的比特数也与资源元素选用的调制方式有关系,如果所有资源单元(子载波)都选用64QAM调制,则一个资源元素包含6个bit。这样,一个OFDM符号的比特数=100126 bit=7200 bit。
在这里插入图片描述
在这里插入图片描述

1 OFDM调制

IDFT、IFFT

2 OFDM解调

DFT、FFT

3 OFDM仿真

MATLAB程序

clc;
clear;
close all;


M  = 8;			% 子载波数
fc   = 1e6;		% 主载波频率/Hz
fsub = 1e3;		% 子载波频率间隔
fsig = fc:fsub:fc+(M-1)*fsub; % 频率序列

T  = 0.001;		% 子载波持续时间
fs = 10e6;		% 采样频率/Hz
ts = 1/fs;		% 采样时间间隔
t  = 0:ts:T-ts;	% 一个符号周期的时间矢量

% 载波信号
c  = zeros(M,length(t));
NN = length(t)*16;
XN = zeros(M,NN);
f0 = fs/NN;
f  = (0:NN-1)*f0;
for k = 1:M
	c(k,:)  = exp(1j*2*pi*fsig(k)*t);
	XN(k,:) = fft(c(k,:),NN);
end

figure;
plot(f,abs(XN(1,:)), f,abs(XN(2,:)), f,abs(XN(3,:)), f,abs(XN(4,:)), f,abs(XN(5,:)), f,abs(XN(6,:)), f,abs(XN(7,:)), f,abs(XN(8,:)));
legend('1000kHz子载波', '1001kHz子载波', '1002kHz子载波', '1003kHz子载波', '1004kHz子载波', '1005kHz子载波', '1006kHz子载波', '1007kHz子载波');
axis([995e3 1012e3 -inf inf]);
title('频域中 子载波分布图');
ylabel('幅度');
xlabel('频率/Hz');


% OFDM载波调制(这里每个子载波使用2-ASK调制,实际上每个子载波使用PSK、QAM调制也可以)
symbol = M;
msg  = randi([0 1],1,symbol);% 并行发送8bit数据
% msg  = [1 1 0 1 1 1 0 1];% 并行发送8bit数据
tx = zeros(1,length(t));
for k = 1:length(msg)
	tx = tx + msg(k)*c(k,:);% 子载波叠加
end
XN_tx = fft(tx,NN);
disp(['发送数据: ' num2str(msg)]);



% 空中信道传输
sigma = sum(abs(tx))/length(tx) * 0.9;
rx    = tx + sigma*rand(1,length(tx));% 加入AWGN(实际上只影响直流分量)
XN_rx = fft(rx,NN);



% OFDM解调
msg_demodulation = zeros(1,symbol);
for k = 1:symbol
	if(abs(XN_rx(16001 + 16*(k-1))) > 5e3) % 使用FFT结果来解调
		msg_demodulation(1,k) = 1;
	end
end
disp(['收到数据: ' num2str(msg_demodulation)]);

bit_error_cnt = 0;
for k = 1:symbol
	if(msg_demodulation(k) ~= msg(k))
		% 当判定的接收比特与发送比特不一致时,认为判定错误
		bit_error_cnt = bit_error_cnt + 1;
	end
end
bit_error_percent = bit_error_cnt/symbol;
disp(['误码率: ' num2str(bit_error_percent)]);


figure;
subplot(2,1,1);plot(t,real(tx));axis([-inf inf -inf inf]);title('OFDM发送信号 时域图');
ylabel('幅度');
xlabel('时间/s');
subplot(2,1,2);plot(t,real(rx));axis([-inf inf -inf inf]);title('OFDM接收信号 时域图');
ylabel('幅度');
xlabel('时间/s');

figure;
subplot(2,1,1);plot(f,abs(XN_tx));axis([995e3 1012e3 -inf inf]);title('OFDM发送信号 频谱');
ylabel('幅度');
xlabel('频率/Hz');
subplot(2,1,2);plot(f,abs(XN_rx));axis([995e3 1012e3 -inf inf]);title('OFDM接收信号 频谱');
ylabel('幅度');
xlabel('频率/Hz');
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/507408
推荐阅读
相关标签
  

闽ICP备14008679号