OFDM 和 OFDMA

我在MSCBSC问答模块的回答:http://www.mscbsc.com/askpro/response.php?aid=311816

OFDM和OFDMA有什么区别?

OFDM(OrthogonalFrequency Division Multiplexing)即正交频分复用
Orthogonal FrequencyDivision Multiple Access(OFDMA) OFDM多址接入技术

从字面就可以看到,OFDM是一种技术方案,而OFDMA则是对OFDM这中技术具体实现的一种技术。犹如TDM和TD-SCDMA的关系!

OFDM其主要思想是:将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到在每个子信道上进行传输。

OFDMA是OFDM技术的演进。在利用OFDM对信道进行子载波化后,在部分子载波上加载传输数据的传输技术。OFDMA多址接入系统将传输带宽划分成正交的互不重叠的一系列子载波集,将不同的子载波集分配给不同的用户实现多址。OFDMA系统可动态地把可用带宽资源分配给需要的用户,很容易实现系统资源的优化利用。

参考资料:
百度百科

  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DCO-OFDM(Direct Current-Biased Optical Orthogonal Frequency Division Multiplexing)被广泛应用于可见光通信系统中。OFDMA(Orthogonal Frequency Division Multiple Access)是一种多用户访问技术,可有效地提高系统容量。下面是一个基于 DCO-OFDMOFDMA 可见光通信系统的 Matlab 实现示例: 首先,定义系统参数: ```matlab clc; clear all; close all; N = 64; %子载波数 M = 4; %调制阶数 I = 2; %OFDMA子信道数 L = 256; %码长 SNR = 20; %信噪比 ``` 生成随机数据并进行 IFFT 变换: ```matlab a = randi([0 M-1],1,I*N); %随机产生I*N个调制符号 x = zeros(I,N); for i=1:I x(i,:) = ifft(a((i-1)*N+1:i*N),N); %对调制符号进行IFFT变换 end ``` 定义 DCO-OFDM 调制函数: ```matlab function [s,t] = dco_ofdm_mod(x,N,L) %DCO-OFDM modulation % x: input data % N: number of subcarriers % L: length of the sequence % s: output DCO-OFDM signal % t: time sequence P = 10; %LED功率 fs = 200e6; %采样频率 Ts = 1/fs; %采样间隔 t = (0:L-1)*Ts; %时间序列 f0 = 2e6; %直流偏置频率 fc = 20e6; %载波频率 h1 = 0.5; %半高全宽为0.5 ns的矩形脉冲响应 g = @(t) (t>=0 & t<=h1)*1/h1; %矩形脉冲响应 s = zeros(1,L); for i=1:N s = s + sqrt(2/P)*real(x(i))*cos(2*pi*f0*t+(i-1)*2*pi/N); %直接调制 end s = s.*g(t); %矩形脉冲响应 s = s.*cos(2*pi*fc*t); %载波调制 end ``` 定义 OFDMA 调制函数: ```matlab function [y,d,r] = ofdma_mod(x,I,N,L) %OFDMA modulation % x: input data % I: number of subchannels % N: number of subcarriers % L: length of the sequence % y: output OFDMA signal % d: subchannel data % r: resource allocation matrix d = zeros(I,N); r = zeros(I,N); for i=1:I d(i,:) = x((i-1)*N+1:i*N); r(i,:) = randi([0,1],1,N); end y = zeros(I*N,L); for i=1:I y((i-1)*N+1:i*N,:) = d(i,:)'*r(i,:); end end ``` 定义 AWGN 噪声函数: ```matlab function n = awgn_noise(x,SNR) %AWGN noise % x: input signal % SNR: signal-to-noise ratio % n: output noise signal L = length(x); sigma = sqrt(sum(abs(x).^2)/(L*10^(SNR/10))); %计算噪声标准差 n = sigma*randn(1,L); %产生噪声 end ``` 将上述函数结合起来,进行 DCO-OFDMOFDMA 调制: ```matlab [s,t] = dco_ofdm_mod(x,N,L); %DCO-OFDM modulation [y,d,r] = ofdma_mod(s,I,N,L); %OFDMA modulation ``` 添加 AWGN 噪声: ```matlab n = awgn_noise(y,SNR); %添加AWGN噪声 y = y + n; ``` 解调 OFDMA 信号: ```matlab z = zeros(I*N,L); for i=1:I z((i-1)*N+1:i*N,:) = y((i-1)*N+1:i*N,:).*r(i,:); %OFDMA解调 end ``` 对解调后的信号进行 FFT 变换: ```matlab b = zeros(1,I*N); for i=1:I b((i-1)*N+1:i*N) = fft(z((i-1)*N+1:i*N,:),N); %对解调后的信号进行FFT变换 end ``` 计算误码率: ```matlab err = 0; for i=1:I*N if a(i) ~= round(real(b(i))) err = err + 1; end end BER = err/(I*N); ``` 以上就是一个基于 DCO-OFDMOFDMA 可见光通信系统 Matlab 实现的示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值