AnyMath 文档
Notebook

基于QPSK的OFDM通信模型

本演示中的模型是一个基于正交频分复用(OFDM,Orthogonal frequency division multiplexing)技术并采用QPSK调制的通信系统。 OFDM 是一种调制方法,其中信号被分解为多个子载波,并在频域中并行传输。 在此架构中,模块结构的设计旨在反映调制、映射到频率分量、添加噪声以及用于信号恢复的逆变换等过程。

该模型如图所示。

image.png

该模型的架构如下:

  1. QPSK(正交相移键控)。
    在第一阶段,数字数据采用QPSK方法进行调制。QPSK通过改变载波信号的相位来表示信息,每个符号编码两个数据位。QPSK模块的输出为已调制的信号,可直接用于传输。

  2. IFFT(逆快速傅里叶变换)
    经过 QPSK 调制后,数据通过 IFFT 模块从时域转换到频域。在此情况下,IFFT 用于生成 OFDM 符号,将数据分配到各子载波频率上。 在此阶段,信号被分解为正交子载波。随后,该信号即可通过通信信道进行传输。

  3. AWGN(加性白高斯噪声)
    在通信信道中添加加性白高斯噪声(AWGN),以模拟实际的传输条件。该模块模拟了在实际系统中影响信号的随机干扰,例如热噪声和大气干扰。

  4. FFT(快速傅里叶变换)
    在接收端,信号通过 FFT 模块被转换回频域。该过程恢复了信号的频率分量,从而能够从受噪声干扰的信号中提取有用数据,随后对其进行解调。

  5. QPSK 解调
    最后,信号经过 QPSK 解调,该过程基于调制信号的相位变化来恢复原始数字数据。输出端获得经过通信信道传输后恢复的数字信号。

用于运行模型的辅助功能。

In [ ]:
# 启用该机型的辅助启动功能。
function run_model( name_model)
    
    Path = (@__DIR__) * "/" * name_model * ".engee"
    
    if name_model in [m.name for m in engee.get_all_models()] # 检查模型加载到内核的条件
        model = engee.open( name_model ) # 打开模型
        model_output = engee.run( model, verbose=true ); # 运行模型
    else
        model = engee.load( Path, force=true ) # 加载模型
        model_output = engee.run( model, verbose=true ); # 运行模型
        engee.close( name_model, force=true ); # 关闭模型
    end
    sleep(5)
    return model_output
end
Out[0]:
run_model (generic function with 1 method)

运行和分析模型

In [ ]:
run_model("QPSK_Based_OFDM_Communication_Model") # 启动模型。
BER = collect(BER)
println("BER: $(BER.value[end])")
Building...
Progress 34%
Progress 40%
Progress 68%
Progress 100%
Progress 100%
BER: 0.0

如我们所见,误差为零,这意味着系统运行正常。

结论

最后,让我们总结一下该模型的主要特点。

  1. 有效利用带宽:得益于OFDM技术,调制信号能高效利用带宽,这使得该模型适用于Wi-Fi和LTE等资源受限的通信系统。
  2. 抗噪声能力:引入AWGN噪声使我们能够评估系统在受噪声干扰的信道中实际数据传输条件下的性能。
  3. 频率分复用技术的应用:利用 IFFT 和 FFT 转换至频率域,使系统能够通过并行子载波传输数据,从而提高对信号衰落和符号间干扰的抗干扰能力。

总而言之,该模型生动地展示了如何将QPSK与OFDM相结合,以在存在干扰且带宽受限的条件下提高通信系统的性能。