OFDM
的实现原理(模拟调制实现和IDFT实现)
1、模拟调制/解调:
2
、IDFT实现(利用DSP等数字处理器实现,基带实现)
3、仿真结果
4、结果分析
1、
用模拟调制或IDFT
实现OFDM都可以,但是很明显IDFT算法成熟,DSP等数字信号处理器发展迅速,实现简便。
2、OFDM
总的信号是有衰落的,但是每个子载波经历的是频率平坦衰落,只要加入简单的信道均衡就可以修正
3、
在每一个OFDM
符号前,开辟保护间隔,不加入任何东西(空白循环前缀),这时可以抗码间干扰(ISI),但是会带来子载波间的干扰,这时候在保护间隔插入循环前缀即可。
4、OFDM
系统对频偏很敏感,频偏会造成子载波的正交性受到破坏。
5、利用IDFT实现OFDM,从IDFT出来的其实是真正OFDM波形的抽样值,只要用DAC恢复成模拟信号即可
小代码~
clear all
N_c = 8;%子载波个数,8个子载波
M = 4;%四进制映射
fs = 100;%采样率
ts = 1/fs;%采样间隔
f = 1:N_c;%每个子载波的载波频率:1HZ~8HZ
t = 0:ts:1-ts;
w = 2*pi*f.'*t;
msgO = fix(4*rand(1,N_c)); %原二进制数据经过串并变换
msgT = qammod(msgO,M); %4QAM映射
ofdm1 = ifft(msgT,N_c); %IDFT实现OFDM
ofdm2 = msgT*exp(j*w); %加载波,模拟调制实现OFDM
for i = 1:N_c
y2(i) = sum(ofdm2.*exp(-j*w(i,:)))/length(ofdm2)
%模拟解调,等效于数字实现OFDM的FFT解调
end
figure;
subplot(211);
plot(t,abs(ofdm2));%1个OFDM的时域波形
hold on;
stem(0:1/8:1-1/8,abs(ofdm1)*N_c); %采样间隔为 t = 1/N_c
legend('模拟实现OFDM','IDFT实现')
subplot(212);
stem(abs(y2)) %频域幅度谱
hold on;
stem(abs(fft(ofdm1)),'+')
legend('模拟解调OFDM','FFT解调')