80211a基于FPGA的ofdmWord文档格式.docx

上传人:b****2 文档编号:4790101 上传时间:2023-05-04 格式:DOCX 页数:11 大小:61KB
下载 相关 举报
80211a基于FPGA的ofdmWord文档格式.docx_第1页
第1页 / 共11页
80211a基于FPGA的ofdmWord文档格式.docx_第2页
第2页 / 共11页
80211a基于FPGA的ofdmWord文档格式.docx_第3页
第3页 / 共11页
80211a基于FPGA的ofdmWord文档格式.docx_第4页
第4页 / 共11页
80211a基于FPGA的ofdmWord文档格式.docx_第5页
第5页 / 共11页
80211a基于FPGA的ofdmWord文档格式.docx_第6页
第6页 / 共11页
80211a基于FPGA的ofdmWord文档格式.docx_第7页
第7页 / 共11页
80211a基于FPGA的ofdmWord文档格式.docx_第8页
第8页 / 共11页
80211a基于FPGA的ofdmWord文档格式.docx_第9页
第9页 / 共11页
80211a基于FPGA的ofdmWord文档格式.docx_第10页
第10页 / 共11页
80211a基于FPGA的ofdmWord文档格式.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

80211a基于FPGA的ofdmWord文档格式.docx

《80211a基于FPGA的ofdmWord文档格式.docx》由会员分享,可在线阅读,更多相关《80211a基于FPGA的ofdmWord文档格式.docx(11页珍藏版)》请在冰点文库上搜索。

80211a基于FPGA的ofdmWord文档格式.docx

36Mb/s

144

48Mb/s

64-QAM

2/3

6

288

196

54Mb/s

216

(2)与定时有关的参数

参数

N_SD:

数据子载波数

N_SP:

导频子载波数

N_ST:

子载波总数

52

df:

子载波频率间隔

0.3125MHz

T_PREAMBLE:

PLCP前导码持续时间

16us

T_SIGNAL:

SIGNAL字段BPSK-OFDM符号的持续时间

4us

T_GI:

GI持续时间

0.8us

T_GI2:

训练符号的GI持续时间

1.6us

T_SYM:

符号间隔

T_SHORT:

段训练序列的持续时间

8us

T_LONG:

长训练序列的持续时间

T_FFT:

IFFT、FFT周期

3.2us

802.11a协议的仿真分为三部分:

发射部分、信道部分、接收部分。

一、发射端

(1)产生长短序列即PLCP前导码。

其作用是实现同步,由10个短符号和2个长符号组成。

短训练符号由12个子载波组成,子载波由序列S进行调制。

S=sqrt(13/6)*[0,0,1+j,0,0,0,-1-j,0,0,0,1+j,0,0,0,-1-j,0,0,0,-1-j,0,0,0,1+j,0,0,0,0,0,0,0,-1-j,0,0,0,-1-j,0,0,0,1+j,0,0,0,1+j,0,0,0,1+j,0,0,0,1+j,0,0];

短训练符的产生公式:

长训练符号由53个子载波组成,子载波由序列L进行调制。

L=[1,1,-1,-1,1,1,-1,1,-1,1,1,1,1,1,1,-1,-1,1,1,-1,1,-1,1,1,1,1,0,1,-1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,-1,-1,1,-1,1,-1,1,1,1,1];

长训练符的产生公式为:

(2)产生SIGNAL字段

SIGNAL包括速率、长度、尾部、保留比特(R)和校验位(P)。

其结构如下图:

速率(4bit)

R

长度(12bit)

P

尾部(6bit)

0,1,2,3

5,6,7,…,14,15,16

17

18,19,…,23,24

上图的发送顺序从左到右,可以看出SIGNAL字段的长度是12。

速率码元表示由下表给出:

速率(Mbit/s)

0,1,2,4

1101

9

1111

12

0101

18

0111

1001

1011

0001

54

0011

长度段表示所传输信息的八位位组数,共12bit,最左边是最低位,最右边是最高位。

此程序中长度L=100,则LENGTH=[001001100000]。

尾部信号6bit全为零,奇偶校验位P是前17个比特的正想奇偶校验,R为保留比特。

(3)产生DATA字段

DATA包括SERVICE、PSDU和TAIL。

其中SERVICE为16bit的零,前7个比特为了解扰器同步,剩下的是保留比特;

TAIL为6个比特的零;

可能会有填充比特PAD,其目的是将DATA变成N_DBPS的整数倍,其计算方法为:

(4)对SIGNAL和DATA进行加扰

加扰器的生成多项式为:

初始状态为全1时,加扰器产生的比特为:

(5)进行卷积编码

下图是编码速率R=1/2的卷积码产生框图:

对于数据B,g=[1,0,0,1,1,1,1],用移动窗的方法来求的B。

六个寄存器的初始值都为零,令G=[zeros(1,6)sequence],sequence为输入数据,输入数据和输出数据长度一样,令其为N,n=1:

N,n数依次递增,G(n:

n+6)随之移动,G(n:

n+6).*g即为输出数据out的第n位。

A路输出与B路用相同方法。

之后,用函数reshape(A,B)将A、B合为一个向量,及编码输出。

本程序用k=3、g=[1,1,1;

1,0,1]的卷积码编码。

则:

G(n,n+2)。

如要提高编码速率,可用删余技术。

经过删余可以得到3/4、2/3速率的码元。

下图给出R=3/4的删余编码和解码原理图:

源数据:

X1

X2

X3

X4

X5

X6

X7

X8

X9

卷积编码后的数据(有下划线的是删除元素):

A1

A2

A3

A4

A5

A6

A7

A8

A9

B1

B2

B3

B4

B5

B6

B7

B8

B9

删除后的数据:

插入亚元:

解码后的数据:

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

Y9

其中6个数据为一组,而删除2个保留4个。

本程序用1/2速率,所以保留全部码元。

(6)进行交织

交织是以单个OFDM信号的比特数为块进行的,其作用是:

确保相邻比特映射到不相邻的子载波上,确保相邻比特映射到星座的高、低有效位上,避免低可靠比特的长期存在。

k为第一次映射前的比特序号,i为其之后和第二次映射前的序号,它们之间的关系为:

i=(N_CBPS/16)*mod(k,16)+floor(k/16);

x为第二次映射后的比特序号,i和x的关系为:

x=s*floor(i/s)+mod((i+N_CBPS-floor(16*i/N_CBPS)),s)

其中:

s=max(N_BPSC/2,1);

当N_BPSC=1时,s=1,则:

x=i。

(7)载波调制

载波调制可以用BPSK、QPSK、16-QAM和64-QAM,其调制输出数据为:

d=(I+jQ)*K_mod,K_mod为归一化因子。

各调制方式的归一化因子如下图所示:

归一化因子

1/sqrt

(2)

1/sqrt(10)

1/sqrt(42)

BPSK编码表:

输入比特b0

I路输出

Q路输出

-1

QPSK编码表:

输入比特b1

16-QAM编码表:

输入比特b0b1

输入比特b2b3

00

-3

01

11

10

3

64-QAM编码表:

输入比特b0b1b2

输入比特b3b4b5

000

-7

001

-5

011

010

110

111

101

5

100

7

(8)插入导频信号

一个OFDM信号是从-26到26,共53个比特,其中有4个是导频信号,它们分别插在-21、-7、7、21四个位置,相应的值为1、1、1、-1,在0位置的信号赋值为0,加上原有的48比特信号共53个。

(9)OFDM调制

对本程序来说,SIGNAL部分有一个OFDM符号,DATA部分有35个OFDM符号。

对上述两部分进行调制,就像当时进行IFFT。

二、信道部分

(1)当channel_counter=0时,信道为加性高斯白噪声信道。

设信噪比Eb/n0=0:

0.5:

20,输入信号为I_signal+jQ_signal,则噪声功率为:

noise_var=0.5*sum(I_signal.*I_signal+Q_signal.*Q_signal)/length(I_signal)*10^(-EbN0/10)。

噪声表示为:

I_out=sqrt(noise_var)*randn(1,length(I_signal));

Q_out=sqrt(noise_var)*randn(1,length(Q_signal));

(2)当channel_counter=1时,信道为多径衰落信道。

三、接收端

此部分为发射端的逆过程:

第一:

进行OFDM解调,即FFT。

R_SIGNAL是对signal部分的解调:

R_SIGNAL(k)=R_SIGNAL(k)+r_out_signal(n)*exp(-j*2*pi*(k-27)*df*((n-1)*dt-T_GI));

R_DATA是对data的解调:

R_DATA(k)=R_DATA(k)+r_out_data(m)*exp(-j*2*pi*(k-27)*df*((m-1)*dt-T_GI));

此过程是将去插入保护间隔和FFT同时进行的,T_GI为保护间隔。

第二:

归一化处理。

signal=max(abs(R_SIGNAL));

data=max(abs(R_DATA));

fork=1:

53

R_SIGNAL(k)=R_SIGNAL(k)/signal;

end

forn=1:

1908

R_DATA(k)=R_DATA(k)/data;

end

第三、去掉所插入的导频。

即去掉在-21、-7、0、7、7、21五处的码元。

第四、进行判决即BPSK解调。

所有数值的实部大于等0,则判为1,否则为0。

第五、进行逆交织。

k为逆交织前的序号,y为第一次交织后第二次交织前的序号,x为交织后的序号。

三者之间的关心为:

y=s*floor(k/s)+mod((k+floor(16*k/N_CBPS)),s)

x=16*y-(N_CBPS-1)*floor(16*y/N_CBPS)

当N_BPCS=1时。

S=1,则:

y=k。

第六、卷积码译码。

令N为输入数据的长度,网格横向有4项令为:

s0、s1、s2、s3,对应最小汉明距离分别为:

d0、d1、d2、d3,对应译码为:

M0、M1、M2、M3。

n=1:

2:

N-1,当n=2时对应d和M在程序中给定,设为初值。

当n>

=3时,n+1时的d和M可以由n时的确定,每个s都有两个输入,选择其中权值较小的为其输入;

若为s0或s2则M((n+1)/2)为0,若为s1、s3则判为1,最终选择d值最小的s处的M为最终译码。

如下图:

第七、解扰。

第八.求其误码率:

设data为收到的800个数据,PSDU_DATA为发送的800数据,则BER=sum(abs(data-PSDU_DATA))/800。

加循环100次求出误码率曲线如下图:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2