【OFDM通信系统】无线衰落信道通信系统的设计与仿真(Matlab代码实现)

 👨‍🎓个人主页:研学社的博客    

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

本项目的目的是了解时变频率选择信道上OFDM系统的设计方法。

学习成果完成项目后,学生应能够模拟频率选择信道,并根据相干时间和相干带宽量化时间和频率变化。

•设计和模拟一个通信系统,在模拟信道上传输,并根据信道特性和系统要求选择设计参数。

•分析和比较误码率结果与理论。

在这个项目中,我们将用克拉克的多普勒频谱研究时变瑞利衰落信道的通信。在第一个项目中,模拟了一个衰落信道,讨论了该信道的不同参数及其沿时间轴和频率轴变化的影响。在第二个项目中,将使用第一个项目中的信道,对其进行分析,提取其相干时间和延迟扩展等属性。基于这些特性和对带宽、功率、比特率和误码率的一定要求,设计一种在指定时变选频信道上无ISI和ICI传输的多载波通信系统。

目录:

 

图1:在频率选择信道上的无编码OFDM系统框图 

📚2 运行结果

 

 部分代码:

Ts=1/Fs;
Pt=0.1;%transmit power
N0=2.07E-14*2;%noise power uW/Hz
Ploss_db=101;%path loss
P_loss=10^(Ploss_db/10);

Rb=1.85E6;%bit rate
Tb=1/Rb;
v=15;%speed
c=3E8;%light speed

Eb_N0_dB=0:5:30;%SNR in dB
Eb_N0=10.^(Eb_N0_dB/10);

N=64;%number of OFDM symbol
fdTs=1e-3;
ch_dis=1;
Ns=N*floor(2E5/N);
vNcp=32:2:32;% cyclic prefix length
colours=['r-+'; 'k->'; 'y-*'; 'g-o'; 'r-<'];

for ncp_ind=1:length(vNcp)
    
    Ncp=vNcp(ncp_ind);
    % generate channels
    h0=sqrt(.5)*flat_cos(Ns,fdTs,ch_dis);
    h1=sqrt(.5)*flat_cos(Ns,fdTs,ch_dis);
    
    for snr_ind=1:length(Eb_N0)
        nerr=0;
        nbits=0;
        nSim=0;
        clc
        Eb_N0(snr_ind)
        while nerr<1000 %|| nSim<Ns-N
            
            nSim=nSim+1;
            
            %input bits generation
            b_in=bits(log2(M)*N);
            
            %MPSK symbol
            v_in=bin2mpsk(b_in,M);
            
            % differential encoder
            if nSim==1
                s_km1=ones(N,1);
                s_in=s_km1;
            else
                s_in=v_in.*s_km1;
                s_km1=s_in;
            end
            
            % OFDM
            z=sqrt(N/Ts)*ifft(s_in);
            % add CP
            x=[z(end-Ncp+1:end);z];
            
            % received signal
            ht=[h0(nSim),zeros(1,tau2-1),h1(nSim),zeros(1,N-tau2-1)];
            ycp=conv(ht,x);
            ly=length(ycp);
            w=cxn(ly,1/Ts).';
            Es=Eb_N0(snr_ind)*Ts/Tb/log2(M);
            ycp=sqrt(Es)*ycp+w;
            
            % remove CP
            y_ofdm=ycp(Ncp+1:end);
            
            % demodulation OFDM
            y= sqrt(Ts/N)*fft(y_ofdm,N);
            
            if nSim==1
                y_km1=y;
            else
                v_hat=conj(y_km1).*y;
                y_km1=y;
                % MPSK demodulation
                b_hat=mpsk2bin(v_hat,M);
                % count errors
                nerr=nerr+sum(abs(b_in-b_hat))/2;
                nbits=log2(M)*N+nbits;
            end
            
        end
        
        BER(snr_ind,ncp_ind)=nerr/nbits;
    end
    
    %%
    semilogy(Eb_N0_dB,BER(:,ncp_ind),colours(ncp_ind,:));
    hold on;
end

Pb_th=1./(4*Eb_N0);

hold on;
semilogy(Eb_N0_dB,Pb_th,'k-.');
%ylim([10E-5 1]);
%xlim([0 25]);
grid on
xlabel('SNR');
ylabel('BER');
%legend('Ncp=0','Ncp=2','Ncp=4','Ncp=6','Ncp=8','theory','AWGN');
legend(['Differential, Ncp=',num2str(Ncp)],'Coherent');

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]杨豪,孙立.基于MATLAB的MIMO-OFDM通信系统的仿真[J].计算机时代,2022(11):10-14+20.DOI:10.16644/j.cnki.cn33-1094/tp.2022.11.003.

[2]乔厚财,刘光祖,邹骏,孙琳琳.基于DFT的OFDM无线通信系统信道估计算法研究[J].电子设计工程,2023,31(01):152-156+162.DOI:10.14022/j.issn1674-6236.2023.01.032.

🌈4 Matlab代码实现

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
OFDM(正交频分复用)通信系统是一种常用的无线通信技术,它可以有效地抵抗多径衰落等干扰,提高数据传输的可靠性和传输速率。在MATLAB中,我们可以使用Simulink来进行OFDM通信系统设计仿真。 以下是OFDM通信系统设计仿真步骤: 1. 首先,我们需要确定OFDM系统的调制方式、子载波数量、子载波间隔、循环前缀长度等参数。 2. 在Simulink中,使用“OFDM调制器”模块来生成OFDM信号,该模块可以根据所需的参数来生成OFDM信号。 3. 通过添加模拟信道模块(如高斯信道或瑞利信道),模拟信号在传输过程中可能会受到的干扰和衰落。 4. 使用“OFDM解调器”模块来解调接收端的OFDM信号。 5. 最后,通过添加误码率计算模块,计算接收端的误码率。 在Simulink中,可以使用不同的模块来构建OFDM通信系统,例如OFDM调制器、OFDM解调器、信道模型等。在每个模块中,我们可以设置各种参数,以满足系统设计的需求。 对于OFDM通信系统仿真,我们可以使用Simulink中的“信号源”模块来产生随机数据,然后将其输入到OFDM调制器中。通过添加信道模型和OFDM解调器,我们可以模拟OFDM信号在传输过程中的干扰和衰落。最后,通过添加误码率计算模块,我们可以计算接收端的误码率。 总之,使用Simulink可以轻松地设计仿真OFDM通信系统,帮助我们更好地理解和优化OFDM通信系统的性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值