OFDM, ISI ,ICI,FFT

参考文档

  [转载]OFDM基本原理及系统框图 - 爱码网

  通信原理-6.3 - 第3讲 无ISI基带传输特性 Ⅰ-网易公开课

OFDM技术与FDM技术区别_CHANG12358的博客-CSDN博客_fdm和ofdm

图文并茂—FDM、OFDM的区别及优缺点、调制解调过程_Mr DaYang的博客-CSDN博客_ofdm调制和解调过程

LTE关键技术:OFDM和MIMO(四电老陈)_哔哩哔哩_bilibili

英泰移动通信:数通LTE的关键技术(OFDM3)_哔哩哔哩_bilibili

前言

   根据一些文献,简单的对OFDM技术做了总结

 

目录:

  1.      FDM OFDM 区别
  2.       ISI
  3.       ICI
  4.       DFT FFT

一 FDM(Frequency Division Multiplexing 频分复用)

 子载波之间有一定的间隔,互不干扰

缺点: 频谱利用率不高


二   OFDM(Orthogonal Frequency Division Multiplexing  正交频分复用)

将高速数据分成若干正交子信道,将高速信道转换为低速子数据流

优点: 频谱利用率高

       2.1 总体效果

     

        

        同一个symbol内,子载波间可以重叠,提高带宽效率。


     2.2 总体流程

       数据流(时域)->(S/P 串并变换 a_0,a_1,..a_n)->调制(QPSK,QAM)->IFFT(OFDM)

       ->P/S(x_1,x_2,...x_n (并串变换 ) >符号映射(时域)->插入CP

 2.3 算法原理

        先把子载波进行调制成正交的子载波(频域。

        然后把这些子载波映射到一个符号周期内(LTE 66.67us).

        整个流程可以通过IFFT 来实现:

        因为离散傅里叶逆变换(时间复杂度N^2)。

        为了降低计算的时间复杂度,采样IFFT(NlogN),最终得到的数据

         x(t)=\sum_{k=0}^{N-1}a_ke^{j2\pi f_kt}

      N: 采样点数目,必须为2的N次方,比如2048,1024

     N_f=4096(采样点个数)

     T_s=\frac{1}{\Delta f_{ref}N_{f}}(最小采样周期)

    \Delta f_{ref}=15 *10^3Hz(最小采样频率)

    

   

 2.4 正交的解释

       一般资料都通过信号系统解释,一个周期内内积为0.

 这里通过线性代数,更加简洁:

y=Wx

y_0=w_0x_0

y_1=w_1x_1

y_2=w_2x_2

y_i: 调制后的信号,标量

x_i: 原始信号,向量

w_i: 该channel调制方式

要解码出原始x, W必须可逆,w_i之间必定线性无关

x=W^{-1}y


三   ISI 

      如下,由于多径传输问题,在采样窗口2.路径2,路径3,都有来自于

符号1 的干扰,则信号就不能正确的恢复出来。

 

   同一路径,不同符号之间因为采样导致的干扰。

  解决方案: 增加时延扩展时间GI(Guard Interval),

同一个路径,符号2 就没有上一个符号信号的干扰了。


四 ICI 

 解决了符号间干扰,但是因为部分信息丢失,导致不同

导致了ICI(信号间干扰)依然无法解码出发送数据

,解决方案增加CP(循环前缀)

 

 主要思想: 把后面

Y = HS

H依然为可逆矩阵,可以还原出原始的发送数据。


五    DFT 以及  FFT 快速傅里叶变换

    5.1  DFT 算法

              F(k)=\sum_{n=0}^{N-1}x(t)W_{N}^{tk}

              其中:

              W_{N}^{tk}=e^{-j2\pi \frac{tk}{N}}

    5.2  FFT 算法:

       X[k]=\sum_{r=0}^{\frac{N}{2}-1}x(2r)W_{N}^{2rk}+\sum_{r=0}^{\frac{N}{2}-1}x(2r+1)W_{N}^{(2r+1)k}

                =\sum_{r=0}^{\frac{N}{2}-1}x(2r)W_{N/2}^{rk}+W_{N}^{k}\sum_{r=0}^{\frac{N}{2}-1}x(2r+1)W_{N/2}^{rk}

               =A[k]+W_{N}^{k}B[k]

         X[k+\frac{N}{2}]=A[k]-W_{N}^{k}B[k]

# -*- coding: utf-8 -*-
"""
Created on Wed Mar 23 11:32:52 2022

@author: chengxf2
"""

import numpy as np

'''
离散傅里叶变换
'''
def DFT(x,f,N):
    real = 0.0
    imag = 0.0
    for n  in range(N):
        a = x[n] #当前的x值
        real += a*np.cos(f*n)
        imag += a*np.sin(f*n)
    return np.round(real,2),np.round(imag,2)
        
        

'''
离散傅里叶变换
c=complex(3,4)
num.real	该复数的实数部分
num.imag	该复数的虚数部分
N:采样点个数
k: 采样频率
'''
def GetDFT(x,N=8):
    
    for k in range(N): 
        f = -2*np.pi*k/N
        real, iamg =DFT(x, f, N)
        
        dft = complex(real, iamg)
        print("\n DFT[%d] "%k, "\t ",dft)
      
    
        

def division(x,N):
    
    even = [] #偶数
    odd =  [] #基数
    for i in range(int(N)):
        a = x[i]
        if i%2 == 0: #偶数项
            even.append(a)
        else:
            odd.append(a)
    return even, odd
            
'''
快速傅里叶变换
'''
def FFT(x, N=8):

    if 1==N:
        comp = complex(x[0],0)
        return {0:comp}
    

    M = int(N/2)
    even, odd = division(x, N)
    fft_even = FFT(even,M)
    fft_odd =  FFT(odd, M)
    
    #print("\n M: ",M,"\t N ",N)
    f_dict={}
    #这里面的k 值相对于上一层的相差N/2
    for k in range(0,M):
          #print("\n k:%d \t "%k)
          f = (2*np.pi/N)*k
          real = np.cos(f)
          imag = -np.sin(f)         
          w  = complex(real, imag)
          #print("\n  *****k: %d******   "%k,type(k), fft_even,fft_odd,k)
          f_dict[k]=     np.round(fft_even[k] + w*fft_odd[k],3)
          f_dict[k+M] =  np.round(fft_even[k] - w*fft_odd[k],3)
          
    return f_dict
  

#x=[1,2]   
x =[1,2,2,2,1,1,1,1]
N = len(x)
GetDFT(x,N)
print("\n ---------FFT-----------")
#x= [1,2]
f=FFT(x,N)

for key in range(N):
    print("\n FFT[%d] "%key, "\t ",f[key])
   
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值