从零在FPGA 上实现OFDM(四)

数据加扰器的实现

背景:

当输入的信号出现连续的 0 或连续的 1 时候,接收端容易出现判决错误,避免这种情况,在不增加冗余情况下,通过扰码器使原始信息生成具有白噪声特性的随机序列。

扰码原理:

        数字通信中, 若经常出现长的 0 或 1 序列,将会影响位同步的建立和保持。在发射机使用扰码,可以避免这种数据对于接收机定时的不利影响。同时,为了限制电路中存在的不同程度的非线性特性对其他电路通信造成的串扰,要求数字信号的最小周期足够长。将数字信号变换成为具有近似白噪声统计特性的数字序列即可满足要求,这通常用加扰来实现。

来源:

        802.11a   18.3.5.5 PLCP DATA scrambler and descrambler :

        由SERVICE、PSDU、tial和pad部分组成的DATA字段需要用长度为127的帧同步扰频器进行置乱。PSDU的八位被放置在传输串行比特流中,第0位在前,第7位在后。帧同步扰频器使用的生成器多项式S(x)如下所示

在ofdm系统data域数据的处理中, 首先需要进行加扰操作。Data域由service域, psdu, 尾比特(不需要加扰), 填充比特构成,并用一个长度为 127 位的加扰器进行加扰。 Psdu 的八位数据按发送串行比特流形式进行, 0 比特在前, 7 比特在后,当初始状态全为 1 时,加扰器循环产生的 127 比特序列为 00001110 11110010 11001001 00000010 00100110 00101110 10110110 00001100 11010100 11100111 10110100 00101010 11111010 01010001 10111000 1111111。加扰发送数据和解扰接受数据使用同一个加扰器。发送时,加扰器初始状态设置为伪随机非零态。为了能估计接收端解扰器的初始化状态,在加扰前, service 域的 7 个低有效比特置 0, 使得接收端可以识别出加扰器的初始伪随机数列。

帧同步扰码器结构

由这个加扰器的构造,我们就可以知道这实际是一个移位寄存器,输出是一个x7与x4的异或,然后这个值再与我们的输入数据异或,这就是我们加扰之后的数据

Verilog代码:

        移位寄存器的实现:

        

///shift reister  scramble register
always @(posedge clk_Modulation or negedge reset) begin
	if (reset == 1'b1) begin
		h1 <= scramble_int;
	end else if(scramble_bit_valid_end_flag == 1'b1) begin
		h1 <= scramble_int;
	end 
	else if (data_bit_valid == 1'b1) begin
		h1 <= {h1[5:0],h1[6]^h1[3]};
	end
end

为了优化时序,这里将输出单独输出:就是将异或单独输出

       实现代码如下:这是是从0开始计数,所以是x6 ^x3;

        

//h2  scramble register  output r3^r6
always @(posedge clk_Modulation or negedge reset) begin
	if (reset == 1'b1) begin
		h2 <= 1'b0;
	end else if(scramble_bit_valid_end_flag == 1'b1) begin
		h2 <= 1'b0;
	end else if (data_bit_valid == 1'b1) begin
		h2 <= h1[3]^h1[6];
	end
end

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
FPGA是一种可编程逻辑器件,可用于实现各种数字电路和信号处理算法。OFDM(正交频分复用)是一种广泛应用于无线通信系统中的调制技术。通过将信号分成多个子载波进行传输,OFDM可以提供较高的数据传输速率和抗多径干扰能力。 使用FPGA实现OFDM技术可以提供高效的实时信号处理和快速的调试验证能力。下面是一些关键步骤: 1. 子载波生成:OFDM将信号分成多个子载波,并使得这些子载波之间正交。在FPGA中,可以使用相位调制技术和FFT(快速傅里叶变换)来实现子载波生成和正交化。 2. 调制:OFDM使用多种调制方式,如QPSK、16-QAM或64-QAM等。在FPGA中,可以使用数字调制器件或逻辑门电路来实现这些调制方式。 3. 加载调制数据:将数字化的待传输数据加载到适当的位置,并与调制器相连。FPGA中的可编程逻辑电路可用于处理和管理数据。 4. 调制器件配置:对于FPGAOFDM实现,需要对调制器件进行配置,以实现所需的信号调制和反调制。 5. 快速傅里叶变换(FFT):OFDM技术中使用FFT变换将时域信号转换为频域信号,并与子载波一起传输。在FPGA中,可以使用FFT电路模块来进行FFT变换。 6. 频谱处理:OFDM技术通过将数据映射到子载波并在频域上传输,提供了较高的抗多径干扰性能。在FPGA中,可以使用电路模块进行频谱处理和干扰消除。 7. 解调和信号恢复:接收端的FPGA实现用于逆向解调和信号恢复,以获取原始数据。这涉及到反向FFT变换和解调过程,以及对频谱处理和信号解密的支持。 通过FPGA实现OFDM技术可以提供高度灵活和可定制的解决方案,适用于各种无线通信系统中。它可以提供较高的性能和更低的延迟,并且可以快速调试和验证,适用于快速迭代开发的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值