精华内容
下载资源
问答
  • OFDM原理应用信道估计与均衡.pdf
  • 针对单中继放大转发协作D-STBC-SC-FDE系统,研究了频率选择性衰落信道的频率域估计与均衡,给出了一种基于训练的最小二乘信道估计算法。该算法在Chu序列的辅助下,可在目的端同时估计直接信道S→D和级联信道S→R→D...
  • 短波信道中的信道估计与单载波频域均衡,陈灿,李绍胜,在无线信道通信时,由于多径效应的影响,信号波形会展宽产生码间干扰,通信系统的误码率会增加,为了消除多径效应的影响并降低误
  • 基于序列自相关的信道估计与均衡算法FPGA实现.pdf
  • 很好的一本论文,描述了OFDM无线宽带系统的信道估计与均衡,特此共享。
  • GSM多功能基站中信道估计与均衡的设计及FPGA实现.pdf
  • 北交大硕士论文,基于FPGA的TD_LTE系统上行信道估计与均衡部分的实现
  • 深入研究了无线局域网的信道估计与均衡技术,通过大量Matlab算法仿真分析,总结出适用于IEEE 802.11(a)标准的信道估计与均衡算法,指出各种算法的优缺点及应用场合,有益于无线局域网系统信道估计与均衡部分的硬件...
  • 信道估计信道均衡的理解

    千次阅读 2020-07-09 11:19:23
    信道估计 Y = HX + N 把X理解为要发送的信号,Y是接收信号,那么H就是我们要估计的信道。 在发送信号的时候,往往需要发送一些信息已知的导频序列(何为导频?就是先利用已知的导频信息探探路(信道),就像我们平时...

    耐着性子,仔细看完!

    信道估计

    Y = HX + N
    把X理解为要发送的信号,Y是接收信号,那么H就是我们要估计的信道。
    在发送信号的时候,往往需要发送一些信息已知的导频序列(何为导频?就是先利用已知的导频(导频大概就像是引路人做前方探测把路况告诉后来者)信息探探前方的路(信道),才能更好的选择信号的发送方式。
    就像我们平时走路前提前知道前方道路情况后(土路还是石路),肯定就会容易想到应对措施(该开快点还是开慢点),而这些道路信息不就是探测车提前统计到高德这些导航软件的吗;前方正在施工,请绕行,哈哈哈!但是信号没这么夸张,只是为了便于理解)。
    例如发送的导频为X1=b1, X2 =b2, 通过Y = HX + N得到了两个Y1和Y2;就相当于求解方程;H = (Y-N)/b(大概意思,实际没这么简单,只是为了初步理解)。
    再利用已知量求未知数H,也就是估计的信道信息

    信道均衡

    如果理解上面意思,再举个不恰当的例子便于理解。
    假如我们想把1这个数字发送过去,肯定希望接受到的也是1,但经过信道发现损失了一点(损失了0.1),变成了(1-0.1=0.9);我们肯定是想接受的也是1,这时候信道均衡就排上用场了(信道均衡有点类似于纠正),通过信道均衡又补偿给0.9了0.1,就又变成了1(我们希望收到的信息),这就信道均衡。

    展开全文
  • 基于OFDM的手持电视系统中信道估计与均衡技术的研究
  • LMS_plot设为1和0分别运行线性均衡(ZF MMSE)和自适应均衡(LMS RLS)
  • 接着上两节已经讲过的内容,即OFDM经过高斯白噪声信道的误码率分析(第7章:OFDM 信道估计与均衡(1))和OFDM经过多径衰落信道的误码率分析(第7章:OFDM 信道估计与均衡(2))。 本文所有代码下载地地址:123...

    接着上两节已经讲过的内容,即OFDM经过高斯白噪声信道的误码率分析(第7章:OFDM 信道估计与均衡(1))和OFDM经过多径衰落信道的误码率分析(第7章:OFDM 信道估计与均衡(2))。

    本文所有代码下载地地址:123kevin456/OFDM-

    第7章(3)内容如下:信道系数h的理解

    当我们说高斯白噪声信道时,描述这种信道下,接收端信号的表达式是: y=x+ny = x + n

    不少同学便会觉得信道对信号的作用是加了噪声。

    等到介绍衰落信道时,此时接收端信号的表达式是: y=hx+ny = hx + n

    若按照上面对高斯白噪声信道的这种理解,在衰落信道中,衰落信道对信号的作用,是不仅对信号乘以了h,还加上了噪声

    所以以上的理解有问题吗?这是为什么呢?

    本科在学习《通信原理》时,明确讲过信道对输入的信号影响是幅度、频率和相位,因此h是一个复数,可写成 a+bja + bj ,转化成 AejθA{e^{j\theta }} 也是可以的。

    那么噪声是哪里来的呢?噪声一般考虑是接收机的热噪声

    结合《Simulation and Software Radio for Mobile Communications》的代码风格,即加噪声的过程都是在接收机中做的,便也印证了上面的解释。

    img

    图1 高斯白噪声添加的位置
    回过去看高斯白噪声信道,信道本身其实没有对发送信号的幅度和相位没有起到任何作用,即 $h = 1$,更准确说是 h = 1 + 0j。

    因此,不管是高斯白噪声信道还是衰落信道的噪声,在仿真过程中,都是接收机的热噪声。信道对信号的作用表现在h这个复数值上,作用在幅度和相位。

    接下来关于OFDM的内容,会更新发送端插入导频,接收端采用LS(最小二乘)和MMSE(最小均方误差)的信道均衡方法

    由于我仿真的误码率曲线和理论误码率曲线一直没对上,是的,即下面的图2,有一点问题,我已苦想许久,还在分析原因,很大可能是snr与Eb/No的换算关系。

    如果我想明白了,便会继续在此更新。

    img

    图2 插入导频时,不同均衡算法的误码率曲线图

    欢迎你双击屏幕、点赞、收藏、转发和分享,关注我的知乎号,也欢迎读者朋友就相关技术问题与我交流,一起学习,共同进步。请你也别忘了把这篇文章分享给你身边正在学习通信专业的同学们,也许能够帮到Ta。

    这是《陈老湿·通信MATLAB》仿真的第7章,期待下次更新见!

    展开全文
  • OFDM系统信道估计与均衡方案的FPGA设计实现,李国彬,郭黎利,对于无线数字通信系统,信道的选择性衰落特性对传输的信号会产生很大影响。接收信号在时间和频率维度均会出现不同程度的畸变。收
  • 单载频频域均衡信道估计和频域均衡研究仿真
  • 第7章:OFDM 信道估计与均衡(2)

    千次阅读 2021-02-22 18:49:37
    第(1)内容《第7章:OFDM 信道估计与均衡(1)》讲到OFDM经过高斯白噪声信道下的误码率分析,这一节重点关注OFDM经过多径衰落信道的误码率分析。从这里也将看到保护间隔、信道均衡对于接收端正确解调的决定性作用。...

    本文对应的完整可运行代码下载地址:123kevin456/OFDM-

    一、瑞利衰落信道介绍

    第(1)内容《第7章:OFDM 信道估计与均衡(1)》讲到OFDM经过高斯白噪声信道下的误码率分析,这一节重点关注OFDM经过多径衰落信道的误码率分析。从这里也将看到保护间隔、信道均衡对于接收端正确解调的决定性作用

    我前面已经多次提到均衡,那么均衡(equalization)是什么呢?均衡就是把符号间干扰去除的过程

    (那么符号间为什么会有干扰呢?这个我在《第1章:BPSK调制解调器仿真》解释过,不清楚的同学可以去前面复习一下。)

    继续介绍瑞利衰落信道,当然会涉及本科的《无线通信》课程了。

    无线信道中,发射信号会可能有直射、折射、反射路径到达接收端,由于不同路径的长度不一样,所以导致同一信号的不同分量到达接收端的时间不一样。

    那么问题来了,为什么会有直射、反射等路径呢?这是因为天线指向性,有主瓣、旁瓣之分。

    举个通俗例子来理解,如果将主瓣指向接收机,旁瓣的能量便不会指着接收机,朝别的方向发射去了。

    关于天线的概念,发送天线增益、接收天线增益、方向图的概念有没有?本科的《微波技术与天线》都会讲到。

    明白了为什么有多径,当然,肯定要有发射体、折射体,不然旁瓣打出去的能量就白白浪费了,没有办法到达接收端了。

    多径会对接收端造成什么影响呢?这是一个关键性问题。

    img

    图1 多径衰落信道

    在仿真过程中,不妨以第一个路径,即最短路径,到达接收端的时间和功率衰减作为基准,第二、第三等路径相比第一路径做相应变化。

    举个数字例子帮助理解:

    PowerdB=[0 -8 -17 -21 -25]; % 信道抽头功率特性
    Delay=[0 3 5 6 8];          % 信道时延,示例
    

    由上图的PowerdB和Delay,即第二径相比第一径晚到3s,第三径相比第一径晚到5s,以此类推。功率上来说,第二径相比第一径衰减8dB,第三径相比第一径衰减17dB,以此类推。

    你可能会问了,为什么要采取这种相对第一径的方式呢?好用呗,哈哈哈哈

    PowerdB和Delay这两个参数,将直接应用到后面的仿真代码中。

    先看到衰落信道的特性,以及如何产生:

    img

    img

    img

    图2 衰落信道的统计特性

    上面三张截图来自《MIMO-OFDM无线通信技术及MATLAB实现》(这本书会经常被我点名),每条路径均考虑了信道增益、时延和多普勒频移。在下面的代码实现中,暂不考虑多普勒频移。

    莱斯衰落和瑞丽衰落的概念要有,这是两种经典的多径衰落。

    在时域上,观测信号是输入信号和系统响应的线卷积,表达为: y=Hx+ny = Hx + n

    其中H是线卷积矩阵,长下面这样:
    在这里插入图片描述
    接收端面对这样的信道条件,有两种处理方式:

    (1)从时域角度看

    接收端若可以估计不同路径的信道增益,便可以将接收到的信号乘以复数共轭的冲击响应。当然,这要求接收端能够存下大量的连续数据用来做均衡。

    (2)从频域角度看

    发射信号经过不同路径到达接收端,有可能会起到增强作用、也有可能会起到衰减作用。对于窄带信号来说,当信号带宽大于信道的相干带宽时,信号便会发生严重的失真(distortion)。而当信号带宽小于信道的相干带宽时,信号发生失真便很小。

    考虑到宽带移动的场景,常常需要有较高的数据传输速率,结合上面讲的多径衰落中信号带宽信道带宽的关系,于是将高速的数据传输被转化成多通道的并行传输

    不同的通道数据如何来做区分呢?

    数据之间采用多路复用技术来区分不同子信道,比如可以用频率、用码来区分。(关于多路复用和多址接入的区别,这两个概念不是一个意思,思考几秒钟?然后自行百度?

    上面这几段话是什么意思呢?接下来我将举例说明。

    对于给定速率要求的系统来说,速率越高,意味着每个符号占据的时间越短,占用的带宽便会很多。假设你想以1MBaud的速率发送符号,而现在只有一个通道供你发射,那么单个符号持续时间是1us,占据带宽假设是0.5MHz。

    倘若有2个通道供你发射,每个通道便可以按0.5MBaud速率发送,那么单个符号持续时间此时是2us,只需要各占0.25MHz。

    那你可能会说,2个信道也是需要0.5MHz发送呀。

    结合下面这个图来看,确实是这样。但是并行传输能将频率选择性衰落,转化成多个平坦衰落,这便是OFDM的优势了。

    img

    图3 多径衰落信道冲击响应的时域和频域图

    二、OFDM经过多径衰落信道的误码率分析

    接下来直接上代码,结合代码来讲解OFDM经过多径信道后的误码率情况,以及均衡是如何发挥作用的。

    %%%%%%%%%%%%%%%%%%%%% OFDM仿真 %%%%%%%%%
    %%%%%%%%%%%%%%%%%%%%% ofdm_fading_sim2.m  %%%%%%%%%
    %%%%%%%%%  data:2020年10月16日  author:飞蓬大将军 %%%%%%%%%%
    
    
    %%%%%程序说明
    %%%多径衰落信道下的OFDM传输
    %%%调制方式:QPSK
    %%%编码方式:无
    %%%接收端不做捕获和同步,也不做信道估计,假设知道信道条件,后续版本考虑信道估计
    
    %%%%    仿真环境
    %软件版本:MATLAB R2019a
    
    %********************** 程序主体 ************%
    
    %%%%%%%%%%%%%%%%%%%%%  参数设置   %%%%%%%%%%%%%%%%%%%
    para = 128;   %Number of parallel channel to transmit
    fftlen = 128;  %FFT length
    noc = 128;    %Number of carrier 
    nd = 6;  %Number of information OFDM symbol for one loop
    ml = 2;   %Modulation:QPSK
    sr = 250000;  %Symbol rate 符号速率
    br = sr.*ml;  %Bit rate per carrier
    gilen = 32; %length of guard interval 
    % gilen = 0; %length of guard interval 
    ebn0_temp = 0:2:20;
    ber_fading = zeros(1,length(ebn0_temp));
    for kkk = 1:length(ebn0_temp)
        
    ebn0 = ebn0_temp(kkk);  %Eb/No 
    
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%  Fading initialization %%%%%%%%%%%%%%
    
    PowerdB=[0 -8 -17 -21 -25]; % 信道抽头功率特性
    Delay=[0 3 5 6 8];          % 信道时延,示例
    % Delay=[0 3 5 56 78];          % 信道时延
    Power=10.^(PowerdB/10);     % 信道抽头功率特性 '线性'
    Ntap=length(PowerdB);       % 信道抽头数
    Lch=Delay(end)+1;           % 信道长度
    
    
    %%%%%%%%%%%%%%%%%%%%%  主循环 %%%%%%%%%%%%%
    
    nloop = 10000; %Number of sumulation loops 
    noe = 0;   %Number of error data  
    nod = 0;   %Number of transmitted data 
    eop = 0;   %Number of error packet  
    nop = 0;   %Number of transmitted packet
    
    
    for iii = 1:nloop
        %%%%%%%%%%%%%%%%%  发射机  %%%%%%%%%%%%%%%%%%%
       seldata = rand(1,para*nd*ml)>0.5;  %串行数据
    
    %     seldata = ones(1,para*nd*ml); 
        paradata = reshape(seldata,para,nd*ml); %串并转换
    
        [ich,qch] = qpskmod(paradata,para,nd,ml); %调制
        kmod = 1/sqrt(2);
        ich1 = ich.*kmod;
        qch1 = qch.*kmod;
        %%%%%%%%%%%% IFFT %%%%%%%%%%
        x = ich1 + qch1 *1j;
        
    %     spow1 = sum(sum(ich1.^2+ qch1.^2))/nd./para;
        
        y = ifft(x);
        ich2 = real(y);
        qch2 = imag(y);
        
    %     spow2 = sum(sum(ich2.^2+ qch2.^2))/nd./para;
        
        
        %%%%%%%% 添加保护间隔 %%%%%%%%
        [ich3,qch3] = giins(ich2,qch2,fftlen,gilen,nd);
        fftlen2 = fftlen + gilen;
        
        
        %****************  Attenuation Calculation **************
        %%%方式一:
        spow = sum(ich3.^2+ qch3.^2)/nd./para;
        attn = 0.5*spow*sr/br*10.^(-ebn0/10);
        attn = sqrt(attn);
        
        %%%方式二:
    %     snr = ebn0 + 10*log10(2);
    %     attn = sqrt(10.^(-snr/10)*spow/2);
        %以上两种方式表达是一样的
        
        
        %***************  衰落信道 Fading channel ***************%
        channel = (randn(1,Ntap) + 1j * randn(1,Ntap)).*sqrt(Power/2);
        h = zeros(1,Lch);
        h(Delay+1) = channel;
        y = conv(ich3 + 1j*qch3,h);
        ifade = real(y(:,1:length(ich3)));
        qfade = imag(y(:,1:length(ich3)));
        
        %***********************  接收机 *******************%
        %%%%%%%%%% AWGN addition %%%%%%%%%
        [ich4,qch4] = comb(ifade,qfade,attn);
    
        %%%%%%%% 去掉保护间隔 %%%%%%%%
        [ich5,qch5] = girem(ich4,qch4,fftlen2,gilen,nd);
        
        
        %%%%%%%%%%%%%%  FFT %%%%%%%%
        rx = ich5 + qch5.*1i;
        ry = fft(rx);
    %     ich6 = real(ry);
    %     qch6 = imag(ry);
        
        %%%%%%%%  信道均衡 %%%%
        %%%注意A的共轭转置和转置的区别,前者是A',后者是A.'
        H = fft([h,zeros(1,fftlen-Lch)].');
        
        for number = 1:nd
            ch6(:,number) = ry(:,number)./H; 
        end
        
        ich6 = real(ch6);
        qch6 = imag(ch6);
        
        %%%%%%%%%%%%%% demoluation %%%%%%%%%%%%%%
        ich7 = ich6./kmod;
        qch7 = qch6./kmod;
        demodata = qpskdemod(ich7,qch7,para,nd,ml);
        
        %%%%%%%%%%%%%% 并串转换 %%%%%%%%%
        demodata1 = reshape(demodata,1,para*nd*ml);
        
        %%%%%%%%%%%%%%% Bit Error Rate %%%%%%%%%%%
        noe2 = sum(abs(demodata1-seldata));
        nod2 = length(seldata);
        
        %%%%cumulative the number of error and data in noe and nod
        noe = noe + noe2;
        nod = nod + nod2;
         
         %%%计算PER
        if noe2~=0
            eop = eop +1;
    
            
        end
    
        nop = nop + 1;
    %     fprintf('%f\t%e\t%d\n',iii,noe2/nod2,eop);
        
    %      fprintf('%f\t%e\t%d\n',iii,noe2/nod2,eop);
    %     
        
    end
    %**************   output result *************
    per = eop/nop;
    ber = noe/nod;
    
    ber_fading(1,kkk) = ber;
    % fprintf('%f\t%e\t%e\t%d\t\n',ebn0,ber,per,nloop);
    % fid = fopen('BERofdm.dat','a');
    % fprintf(fid,'%f\t%e\t%e\t%d\t\n',ebn0,ber,per,nloop);
    % fclose(fid);
    
    
    end
    
    %************************* 画误码率曲线进行对比 ******************%
    rayleign_one_path_theory = ber_temp(ebn0_temp+1); 
    semilogy(ebn0_temp,rayleign_one_path_theory,'-*',ebn0_temp,ber_fading,'-+');
    xlabel('比特信噪比');
    ylabel('误码率');
    title('多径衰落信道下误码率仿真曲线');
    legend('理论曲线','实验曲线');
    grid on;
    %***********   多径瑞利衰落下的OFDM采用BPSK调制的误码率值 **********%
    
    %%%%%%%%%%%%%%%%%%%%%%%      理论值          **************%
    %%%%%%%%%%%%%     EbN0(dB)      误码率        
    %%%%%%%%%%%%%       3        0.125000000000000
    %%%%%%%%%%%%%       4        0.100000000000000
    %%%%%%%%%%%%%       5        0.0833333333333333
    %%%%%%%%%%%%%       6        0.0714285714285715
    %%%%%%%%%%%%%       7        0.0625000000000000
    %%%%%%%%%%%%%       8        0.0555555555555556
    %%%%%%%%%%%%%       9        0.0500000000000000
    %%%%%%%%%%%%%      10        0.0454545454545455
    
    %%%%%%%%%%%%%%%%%   结论    %%%%%%%%%%%%%%%%%%%%
    %完成了OFDM经过多径衰落信道的误码率仿真
    %OFDM中引入保护间隔,是一种冗余信息,因此相比于理论误码率曲线有10*log(160/128)=0.969dB的损失
    %信道均衡中,已经将信道带来的影响补偿上
    %2020年11月11日
    

    运行上面的代码,可以得到以下结果:

    img

    图4 多径衰落信道理论误码率和实验误码率对比图

    关于上面的代码有以下几点需要注意:

    (1)瑞利衰落信道的理论误码率表达式

    Pe=M1Mlog2M(13γlog2M/(M21)3γlog2M/(M21)+1){P_e} = \frac{{M - 1}}{{M{{\log }_2}M}}\left( {1 - \sqrt {\frac{{3\gamma {{\log }_2}M/\left( {{M^2} - 1} \right)}}{{3\gamma {{\log }_2}M/\left( {{M^2} - 1} \right) + 1}}} } \right)

    其中,M为调制阶数, γ=EbN0\gamma = \frac{{{E_b}}}{{{N_0}}} ,在类似这样的误码率表达式中, EbN0\frac{{{E_b}}}{{{N_0}}} 都是十进制的数,因此在仿真时常常有将dB值转化为线性值这一步。

    (2)上述信道均衡的理论基础是在上一篇讲过的循环卷积线性卷积概念,均衡也有时域均衡和频域均衡之分,这次采用的是频域均衡

    (3)假设接收端已经估计出来各条路径的信道增益,后续再考虑插入导频以及怎么估计出来的。

    有了上面的代码,还可以做以下工作:

    (1)如果接收端不做均衡的话,可以发现在不同信噪比条件下的误码率一直都是最大,均在0.5附近。(这个我试过了,你也可以自己试一下,嘿嘿)

    (2)可以改变各个路径到达接收端的时间与CP长度的相对大小关系,来观察误码率情况。比如CP=0,可得下图:

    img

    图5 CP长度为0对误码率的影响

    还可以调整PowerdB和Delay的值,来观察误码率情况。

    PowerdB=[0 -8 -17 -21 -25]; % 信道抽头功率特性
    Delay=[0 3 5 6 8];          % 信道时延,示例
    

    三、总结

    前面我推荐过《Simulation and Software Radio for Mobile Communications》,里面让我最受触动的是作者的序言,内容如下:

    img

    img

    这也再一次体现,经典书籍为何被称为“经典”了。

    上面的代码中,还没有考虑**信道估计、以及多普勒频移。关于OFDM插入导频来做信道估计,可以时域插入、也可以频域插入,我下次再讲。

    也欢迎读者朋友就相关技术问题与我交流,一起学习,共同进步。请你也别忘了把这篇文章分享给你身边正在学习通信专业的同学们,也许能够帮到Ta。这是《陈老湿·通信MATLAB》仿真的第7章,期待下次更新见!

    展开全文
  • 基于MATLAB实现OFDM系统基带信号在频率选择性衰落信道条件下的发送接收 题目及要求: 仿真系统构成:信号输入(为随机比特流)、OFDM调制、仿真信道传输、OFDM解调、信号输出(可能存在误码的比特率); 仿真分析...

    基于MATLAB实现OFDM系统基带信号在频率选择性衰落信道条件下的发送与接收

    题目及要求:

    仿真系统构成:信号输入(为随机比特流)、OFDM调制、仿真信道传输、OFDM解调、信号输出(可能存在误码的比特率);
    仿真分析内容:根据输入、输出比特流计算不同信噪比条件下的误码率,并绘制曲线。
    对调制的要求:OFDM调制的子载波间隔为15KHz,循环前缀长度及子载波数目可调,各子载波使用QPSK调制。
    其它要求

    1. 信道采用3GPP TS36.101给出的ETU300Hz多径信道,并在其上叠加一个信噪比可调的白噪声。表2.1-1~表2.1-4和表2.2-1给出的ETU300Hz多径信道的参数。
    2. 设计梳妆或者块状导频并在接收端完成信道估计与补偿,并与没有信道估计情况下的性能进行分析比较。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    正文

    1. OFDM系统的组成

    由于是基带信号,所以系统中没有调制与解调的部分。若需对频带信号进行传输,只需要在进入信道前对基带信号进行调制,接收后进行解调即可。程序代码也可以在我写的这个上面进行稍微的改进即可。因此大家可以参考最下面程序的整体架构。下面为我根据系统组成画的系统框图。
    在这里插入图片描述
    ① OFDM调制基本原理
       正交频分复用(OFDM)是多载波调制(MCM)技术的一种。MCM的基本思想是把数据流串并变换为N路速率较低的子数据流,用它们分别去调制N路子载波后再并行传输。因子数据流的速率是原来的1/N,即符号周期扩大为原来的N倍,远大于信道的最大延迟扩展,这样MCM就把一个宽带频率选择性信道划分成N个窄带平坦衰落信道,从而“先天”具有很强的抗多径衰落和抗脉冲干扰的能力,特别适合于高速无线数据传输。OFDM是一种子载波相互混叠的MCM,因此它除了具有上述毗M的优势外,还具有更高的频谱利用率。OFDM选择时域相互正交的子载波,它们虽然在频域相互混叠,却仍能在接收端被分离出来。
    ② OFDM系统的实现模型
      利用离散反傅里叶变换( IDFT) 或快速反傅里叶变换( IFFT) 实现的OFDM系统如图所示。输入已经过调制(符号匹配) 的复信号经过串P并变换后,进行IDFT 或IFFT 和并/串变换,插入保护间隔后的信号s (t) 。该信号经过信道后,接收到的信号r ( t ) 经过去掉保护间隔以恢复子载波之间的正交性,再经过串/并变换和DFT 或FFT 后,恢复出OFDM的调制信号,再经过并串变换后还原出输入的符号。离散傅里叶变换是它的核心,它使各子载波相互正交。

    2. 仿真过程

    ① 根据OFDM系统框图,首先由信源产生随机0,1序列,然后经过QPSK调制后进行串并转换,再对串并转换后的序列进行IFFT变换得到时域信号,添加循环前缀后并串变换并通过ETU300HZ信道,对得到的信号在进行串并变换,去循环前缀,FFT变换,QPSK解调,并串转换后得到接收的信息序列,再将其与发送序列比较后得到没有信道估计下的误码率。
    ②对于有信道估计的误码率,可以在IFFT变换之前加入插导频,在FFT之后进行信道估计,最终可以得到有信道估计下的误码率曲线。其中信道估计算法采用了LS算法。其中块状导频适用于频率选择性衰落,梳状导频适用于快衰落,格状导频结合了两者的优点。

    3. 仿真程序

    整体代码如下所示:

    % ==================================================
    % 作者: Allen
    % 时间:4/27 2020
    % =================OFDM仿真参数说明:================
    % f_delta=15e3;                 ---子载波间隔
    % 子载波数 carrier_count        ---128 也就是FFT点数,通常为2的次幂
    % 子载波间隔 f_delta             ---15e3
    % 总符号数 symbol_count          ---1000
    % IFFT长度 ifft_length           ---128
    % 循环前缀 cp_length             ---16
    % 调制方式                       ---QPSK 
    % 信道估计算法 ce_method         ---1:采用最小二乘法LS;0:采用mse算法
    % 插入导频间隔 pilot_interval    ---5
    % 每星座符号比特数 M             ---2
    % 信道模型选择参数 awgn_en       ---0:表示ETU信道;1:AWGN信道
    % 最大多普勒扩展 fd              ---300;通常可配置0-300hz之间的数据
    % 仿真统计次数 sta_num           ---10
    % 信噪比大小SNR                  ---可设置
    % ====================仿真过程=======================
    % 产生0-1随机序列 => 串并转换 => 映射 => 取共轭
    % => IFFT => 加循环前缀和后缀 => 并串转换 => 
    % 多径信道即ETU信道 =>  加AWGN => 串并转换 => 去前缀
    %  => FFT =>解映射 => 求误码率 
    % ==================================================
    clear all;
    close all;
    carrier_count = 128;         % 子载波数
    f_delta=15e3;                %子载波间隔
    symbol_count = 1000;         %一次发送的总符号数
    ifft_length = carrier_count; %ifft点数为子载波数目
    cp_length = 16;              %循环前缀
    ce_method=1                  %信道估计算法参数1:采用最小二乘法LS;0:采用mse算法
    pilot_interval=5;            %导频间隔
    awgn_en=0;                   %信道选择参数 0:表示ETU信道;1:AWGN信道
    M=2;                         %每星座符号比特数
    fd=300;                      %最大多普勒扩展
    sta_num=20;                  % 仿真统计次数
    num_bit=carrier_count*symbol_count*M;      %对应比特数据个数,即128*1000*2
    pilot_bit_l=randi([0 1],1,M*carrier_count);%生成导频序列,长度为M*carrier_count
    OFDM_SNR_BER=zeros(1,31);                  %存储直接解调OFDM误码率
    OFDM_LS_SNR_BER=zeros(1,31);               %存储基于信道估计后OFDM误码率
    i=1;                                       
    % ================多径信道参数=======================
    fs=(carrier_count)*f_delta;                %信道带宽,为子载波间隔乘以子载波个数
    ts=1/fs;                                   %每个bit符号持续的时间
    tau=[0,50,120,200,230,500,1600,2300,5000]/(10^9); 
    pdb=[-1.0,-1.0,-1.0,0,0,0,-3.0,-5.0,-7.0];
    chan=rayleighchan(ts,fd,tau,pdb);
    chan.ResetBeforefiltering=0;
    % ================产生随机序列=======================
    OFDM_sigbits =sourcebits(num_bit) ;        % 1*256000,发送的OFDM数据
    [moddata_outI,moddata_outQ]=qpsk_modulation(OFDM_sigbits);   %进行映射
    OFDMmoddata_in_temp=moddata_outI+1i*moddata_outQ; 
    OFDMmoddata_in=reshape(OFDMmoddata_in_temp,carrier_count,length(OFDMmoddata_in_temp)/carrier_count); %串并变换
    % ================加导频========================
    
    [Insertpilot_out,count,pilot_seq]=insert_pilot_f(OFDMmoddata_in,pilot_bit_l,pilot_interval);  %加入导频后的矩阵为Insertpilot_out,大小为128*1200
    
    % ===================IFFT===========================
    
    OFDMmoddata_out=ifft(Insertpilot_out,ifft_length)*sqrt(ifft_length);
    
    % ==================加循环前缀==================
    
    InsertCPdata_out=Insert_CP(OFDMmoddata_out,cp_length);
    
    % =================并串转换==========================
    [m,n] = size(InsertCPdata_out)
    Channel_data=reshape(InsertCPdata_out,1,m*n);
    
    % ===================发送信号,多径信道====================
    for SNR=0:1:30
        be1=0;
        be2=0;
        
        frm_cnt=0;
        while(frm_cnt<sta_num)
            frm_cnt=frm_cnt+1;
            %经过多径信道
            if(awgn_en==1)
                 Add_Multipath_data=Channel_data;                    %awgn信道
            elseif(fd~=0)
                 Add_Multipath_data=filter(chan,Channel_data);       %ETU信道
            end
            
            Add_noise_data=awgn(Add_Multipath_data,SNR,'measured'); %添加高斯白噪声
    % =======================串并变换===========================
    
    Add_noise_data_temp=reshape(Add_noise_data,m,n);
    
    % =======================去循环前缀==========================
    
    DeleteCPdata_out=Delete_CP(Add_noise_data_temp,cp_length);
    
    % =======================取出导频H==========================
    
    [Deletepilot_Data,H]=Get_pilot(DeleteCPdata_out,pilot_interval);
    
    % =========================FFT==============================
    
    OFDM_Demodulationdata_out_iter1=fft(Deletepilot_Data,ifft_length)/sqrt(ifft_length);
    
    % ===============无信道估计下并串转换以及逆映射===============
    OFDMdemodulationdata_out_1=reshape(OFDM_Demodulationdata_out_iter1,1,num_bit/2);
    [demodulationdata_outI_1,demodulationdata_outQ_1]=qpsk_demodulation(OFDMdemodulationdata_out_1);%星座的逆映射
    P2Sdata_out_1=P2SConverter(demodulationdata_outI_1,demodulationdata_outQ_1);
    % =====================有信道估计下==========================
    estimation_output=Channel_estimation(ce_method,Deletepilot_Data,pilot_seq,H);
    OFDMdemodulationdata_out_2=reshape(estimation_output,1,num_bit/2);
    [demodulationdata_outI_2,demodulationdata_outQ_2]=qpsk_demodulation(OFDMdemodulationdata_out_2);%星座的逆映射
    P2Sdata_out_2=P2SConverter(demodulationdata_outI_2,demodulationdata_outQ_2);
    % =========================误比特率==========================
    be1=be1+length(find(P2Sdata_out_1~=OFDM_sigbits));
    be2=be2+length(find(P2Sdata_out_2~=OFDM_sigbits));
    ber1=be1/(frm_cnt*num_bit);
    ber2=be2/(frm_cnt*num_bit);
    if(mod(frm_cnt,20)==0)
        fprintf('SNR=%.1f,frm_cnt=%d,ber_de=%.8f,ber_ls=%.8f\n',SNR,frm_cnt,ber1,ber2);
    end
        end
      %  fprintf('SNR=%.1f,frm_cnt=%d,ber_de=%.8f,ber_ls=%.8f\n',SNR,frm_cnt,ber1,ber2);
    % =========================误码率==========================
    OFDM_SNR_BER(i)=ber1;
    OFDM_LS_SNR_BER(i)=ber2;
    i=i+1;
    end
    

    4.仿真结果

    一、AWGN信道下的误码率曲线以及前五十个数据值 :
    在这里插入图片描述
    在这里插入图片描述
    二、ETU300HZ多径信道下的误码率曲线(fd=300HZ即最大多普勒频移为300HZ)以及前五十个数据值:
    在这里插入图片描述
    在这里插入图片描述
    三、ETU300HZ多径信道下的误码率曲线(fd=10HZ即最大多普勒频移为10HZ)以及前五十个数据值:
    在这里插入图片描述
    在这里插入图片描述

    5.仿真结果分析以及结论

    一、 从OFDM系统的原理和仿真过程可以看出,OFDM系统频带利用率高,因为OFDM允许重叠的正交子载波作为子信道,而不是传统的利用保护频带分离子信道。同时高速数据流通过串并转换,能使得每个子载波上的信号时间比相应同速率的单载波系统上的信号时间长,采用循环前缀的方法,有效减少了ISI。
    二、AWGN信道下采用LS算法进行信道估计后的误码率大于直接解调的误码率,但是差别不是特别大。对于ETU300HZ且多普勒频移为300HZ或者10HZ的情况下,可以看出基于信道估计的结果明显优于无信道估计的结果;而且横向对比发现当多普勒频移为10HZ时的误码率低于多普勒频移为300HZ的误码率。

    6.写在最后

    代码为整体架构,其中里面的一些具体的子函数以及OFDM的原理比如保护间隔以及插入循环前缀的原因等等已上传。链接地址:代码仿真

    展开全文
  • OFDM-:OFDM信道估计均衡
  • 东南大学 硕士学位论文   MIMO信道估计及频域均衡的研究实现   姓名: 刘澍 申请学位级别: 硕士 专业: 信号信息处理 指导教师: 杨绿溪
  • 第7章:OFDM 信道估计与均衡(4)

    千次阅读 2021-02-22 21:06:59
    第7章(4)内容如下:一、导频结构图案二、基于导频的信道估计算法和插值方法 本文所有可运行代码下载地址是:123kevin456/OFDM- 一、导频结构图案 前三讲介绍了OFDM经过AWGN信道和衰落信道的误码率情况,其中在...
  • 各种传输信道所传输的信号,一般由一些不同频率的分量组成. 均衡器(Equalizer),是一种可以分别调节各种频率成分电信号放大量的电子设备,通过对各种不同频率的电信号的调节来补偿扬声器和声场的缺陷,补偿和修饰...
  • 针对高速移动环境中的 OFDM接收问题,首先提出一种基于时变信道 KL基扩展模型(KL-BEM)的时域信道估计方案 。该方案用 KL-BEM的一组基函数近似表达若干个 OFDM符号时段内信道 的时变,并在相邻 OFDM符号之间插入短时...
  • 该算法将定时同步偏差等效为符号间干扰(ISI,inter-symbol interference)信道,通过信道估计和Turbo均衡相互反馈软信息来改善源信号信息恢复性能。重点研究了初始盲均衡算法、信道估计算法、混合信号的MMSE均衡...
  • 提出一种应用于非周期扩频的CDMA系统下行信道的分数阶间隔信道估计算法,以及在信道估计结果基础上得到的均衡算法。这些算法克服了以往的Chip速率采样的信道估计均衡算法固有的缺陷,得到了完备的信道参数的估计,...
  • 本论文对比了欧洲标准DVB-T以及国家标准DTMB。主要是其中物理层信道估计均衡算法的研究。
  • OFDM-MIMO大气激光通信 大气信道
  • 文中给出了基于MSE准则的CPE校正方法,考虑到ICI干扰主要来源于相邻信道,进而提出了基于LMS法则的自适应相邻信道干扰消除方法。整个算法简单高效。仿真结果表明,所提出的算法大大改善了OFDM系统的性能。
  • 移动OFDM系统的并行信道估计器和均衡
  • 第7章(5)内容如下:一、参考资料二...(2)OFDMIFFT、FFT的关系 (3)子载波(ICI)和符号间干扰(ISI)的区别 解决以上的问题,明晰一些概念,也是为OFDM同步的内容做知识储备。 我一直提到的《MIMO-OFDM无线通信
  • 提出了一种基于伪噪声(PN:Pseudo Noise) 序列循环相关的信道估计算法,并将之应用于单载波频域均衡 系统中。将新信道估计算法2 种典型的频域信道估计算法进行对比研究发现:新算法可更好的兼顾性能计算 复杂度。将...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,847
精华内容 738
关键字:

信道估计与信道均衡