请教下OFDM系统在matlab上的仿真程序!

请教下OFDM系统在matlab上的仿真程序!,第1张

%实现OFDM传输的仿真程序

para=128; %并行子信道的个数

fftlen:128; %FFT的长度

paradata=reshape(seldata,para,nd

*m1);

%QPSK调制

[ich,qch]=qpskmod(paradata,para,nd,m1);

kmod=1/sqrt(2);

ichl=ich.*kmod;

qchl=qch.*kmod;

%In叩(离散傅里叶反变换)

X=ichl+qchl.*i:

y=ifft(x);

ich2=real(y);

qch2=imag(y);

%插入保护间隔

[ich3,qch3]=giins(ich2,qch2,fftlen,gilen,nd);

fftlen2=fftlen+gilen;

%衰减计算

spow=suln(ich3.2+qch3.“2)/nd./para;

attn=0.5*spow*sr/br*10.“(.ebn0/10);

attn=sqrt(attn);

%高斯自信道

[ich4,qeh4]=eomb(ich3,qch3,attn);

%接收部分

%去除保护间隔

[ieh5,,qeh5]=girem(ich4,qch4,fftlen2,gilen,

nd);

%FFr(离散傅里叶变换)

IX=ich5+qch5.*i:

ry=fit(Ⅸ);

ich6=real(ry);

qch6=imag(ry);

%QPSK解调

ieh7=ich6./kmod;

qch7=qch6./kmod;

[derrtxtata]=qpskdemod(ich7,qch7,para,nd,m1);

%并串变换

demodatal=reshape(demodata,I,para*nd*rnl);

%比特误码率(BER)

bit—errors=find(seldata~=demodatal);

bit—error—count 2 size(bit—e/TOES,2);

total—bits=size(demodatal,2);

bit—error—rate=bit—error—count/total—bits;

fprintf(7%f\n’,bit—eITor—rate)

%end offile

程序运行结果,输出误码率为:

>>0.037109

1.OFDM

OFDM的主要思想是将信道分成N个子信道。每个子信道包含一个子载波,不同的子载波之间相互正交。实现时,将一路高速串行输入的数据信号流转换成N路并行的低速子数据流,调制到每个子载波上进行传输。

OFDM系统优点:

①频谱效率高

②带宽可灵活配置,可扩展性强

③自适应能力强

④抗衰落能力与抗干扰能力强

2.子载波正交原理

f(t)=a1·sin(2π·Δf·t)+  a2·sin(2π·Δf·2t)+ ...ak·sin(2π·Δf·kt)

+ b1·cos(2π·Δf·t) + b2·cos(2π·Δf·2t)+ ... bk·cos(2π·Δf·kt)

=∑ak·sin(2π·Δf·kt)+ ∑bk·cos(2π·Δf·kt)

复数形式:f(t) = ∑Fk·e(j·2π·Δf·kt)

即傅里叶级数。

如果将t离散化,那么就是离散傅立叶变换。

3.IFFT

用IFFT实现OFDM:           

fn = 1/N·∑Fk·e(j·2π·k·n/N) ,n∈[1,N]

在一个OFDM symbol的时长T内,用N个子载波各自发送一个信号F(k)(k∈[1,N]),等效于直接在时域上连续发送fn(n∈[1,N])N个信号,每个信号发送T/N的时长。

IFFT实现OFDM的系统用"数学的方法",在发送端计算信号的叠加波形,在接收端去除正交子载波,从而大大简化了系统的复杂度。

4.信道估计

信道估计:信道估计主要分为非盲信道估计和盲信道估计

非盲信道估计需要使用已知的导频序列进行信道估计,目前主要使用的非盲信道估计包括最小二乘(LS)信道估计、最小均方误差(MMSE)信道估计、基于DFT的信道估计以及基于判决反馈信道估计等。

LS信道估计算法:

①发送端导频信号的插入

②接收端导频位置信道信息的获取估计:[if !msEquation]H_LS=X^(-1) Y[endif]

③通过导频位置获得的信息用内插算法获得数据频点处信道响应

5.导频

块状导频:一个OFDM符号内所有子载波上插入导频,即每隔一定的符号间隔,会放置一定数目的导频符号。较适合于恒参信道、WLAN信道等。

梳状导频:在某些子载波的所有时间上插入导频,即每隔一定的子载波间隔,会放置一定数目的导频符号。对信道的变化速度适应性较好。

6.5GNR帧结构

NR中,帧长是固定的10ms;包含10个子帧,每个子帧是1ms。但每个子帧包含不同的slot数目。一个NR资源块(RB)在时域中对应一个slot,一个slot固定包含14个符号(normal情况),并且在频域中包含12个子载波。

7.100MHz带宽参数

在小于6 GHz的频段,NR最大的信道带宽是100MHz信道。此时对应273RB,载波间隔是30Khz,每个RB有12个子载波使用带宽98.280Mhz,并没有完全占满100Mhz带宽,因为两边需要留出保护带宽。

若是你打算用stm32 做个基于低频载波的ofdm 通信原理验证,应该是是可以实现的。

电路方面只用到AD、DA加个运放就可以做了,选好载波频段,然后就是编程计算编码并载波后的数据波形,DA输出。AD采样输出信号,然后通计算解析采样信号,分离原始信号。

实际上stm32和ODFM技术没有任何必然关系,也没有实际开发的意义。

但是作为通信技术和单片机开发的混合课程设计好像有点意思。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11600213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存