基于FFT、IFFT级联结构的电力线通信定时同步实现方法

文档序号:31599793发布日期:2022-09-21 08:24阅读:150来源:国知局
基于FFT、IFFT级联结构的电力线通信定时同步实现方法
基于fft、ifft级联结构的电力线通信定时同步实现方法
技术领域
1.本发明属于电力物联网领域,涉及一种基于fft、ifft级联结构的电力线通信定时同步实现方法。


背景技术:

2.随着物联网逐渐步入人们的生活,数据传输对质量和速率的要求越来越高。电力线通信无需架设新的网络,在现有家庭电力线基础上实现数据传输,因此成为了构建万物互联网络的首选之一。
3.正交频分复用(ofdm)不仅可以实现信号并行传输而且抗干扰能力强。因此,国外多家plc标准组织都已经开始了对基于ofdm技术的plc协议的定制。当前国家电网也基于ofdm技术发布了新一代低压宽带plc技术标准协议。ofdm作为一个多载波调制系统,它通过ifft/fft实现调制解调,时域上ofdm信号是由n个相互正交的子载波数据组成的。正因如此,解决同步问题对电力线通信系统至关重要。
4.现有的定时同步算法主要是基于延时自相关算法和基于本地序列的互相关算法来实现定时同步过程。延时自相关算法容易实现,复杂度低。另外在系统频偏影响下自相关算法仍然能很好地提取出前导信号到来的信息,但定时精度不高,仅能粗略找出数据位置。基于本地信号的互相关有较高的定时同步精度,能够实现精确定时。因此常常结合两种算法实现定时同步过程。首先通过延时自相关算法先检测数据帧的到来,然后通过延时自相关运算得到峰值平台。然后根据本地前导序列与接收数据进行互相关运算,并记录互相关运算的峰值个数。最后判断粗同步的峰值平台内出现的互相关峰值个数是否与协议规定的前导个数相等,从而实现准确的帧同步。


技术实现要素:

5.有鉴于此,本发明的目的在于提供一种基于fft和ifft级联结构的宽带电力线载波通信定时同步实现方法,以解决电力线通信物理层同步问题。
6.为达到上述目的,本发明提供如下技术方案:
7.一种基于fft、ifft级联结构的电力线通信定时同步实现方法,包括以下步骤:
8.s1:将接收到的时域数据送入fft模块,通过fft变换将数据变换到频域,频域数据为倒序输出;
9.s2:采用fft和ifft级联的结构对得到的频域数据进行符号同步,对时域数据进行卷积相关处理,即:将倒序输出的频域数据和倒序处理后的本地前导频域序列相乘,得到接收信号和本地前导相关运算后的频域结果;fft后将倒序的频域数据与本地前导序列频域数据相乘,本地前导序列频域数据为倒序排列,因此相当于对时域数据进行卷积相关;
10.s3:将频域相乘后的数据通过ifft变换回时域,得到顺序输出的时域数据;
11.s4:对得到的时域卷积相关数据取模处理;
12.s5:将卷积相关处理后得到的模值数据送入符号同步模块,符号同步模块连续捕
获三个峰值后进行同步调整,符号同步成功;
13.s6:符号同步成功后,将fft得到的频域倒序数据送入顺序输出模块处理后得到顺序排列的频域数据;
14.s7:将顺序输出的频域数据送入帧同步模块,依据前导syncp和syncm的反相关系进行帧同步。
15.进一步,所述步骤s1中,采用频域抽取的基2fft算法,对时域数据进行1024点fft、10级蝶形运算;时域数据从流入第一级运算单元到从最后一级运算单元输出总共需要1024个数据时钟周期,频域数据倒序输出。
16.进一步,所述步骤s1具体包括以下步骤:
17.s11:基于移位寄存器的流水线结构,组成fft的第一级运算单元,将接收端接收到的时域i、q两路时域信号并行输入fft第一级蝶形运算单元;首先将开关置1,输入数据进入移位寄存器,512个时钟之后开关切换到2,后512的输入数据与前512个数据进行蝶形运算,运算结果分上下两路输出,每路512个数据;
18.s12:将第二级运算单元开关置1,第一级上、下两路运算结果输入到第二级运算单元的上下路移位寄存器;第二级运算单元移位寄存器大小为256,经256个时钟之后切换到开关2,后256个时钟上路输入数据与前256个上路输入数据进行蝶形运算并输出;蝶形运算的同时,前256个下路数据进入到上面的移位寄存器,后256个下路数据进入下面的移位寄存器,然后开关切换回1,下路输入的后256个数据与下路输入的前256个数据进行蝶形运算并输出;
19.s13:对于第三级及以后的蝶形运算单元均采用第二级单元的结构,1024点fft总共采用10级蝶形运算单元;
20.整个fft运算模块都采用基于移位寄存器的流水线结构,每级运算均进行符号位扩展,防止数据溢出,并做了溢出处理操作。
21.进一步,步骤s3中,调用fft模块来实现ifft,将倒序数据取共轭后输入fft模块,对结果取共轭,再乘1/1024得到顺序的相关结果的时域数据,具体包括:
22.fft输入数据i_in、q_in经1024个数据周期后,i1_out、i2_out、q1_out、q2_out开始输出数据,输出数据上下两路并行,经512个数据周期输出完毕,fft输出数据在和本地数据相乘后进入ifft,ifft输出数据经1024个数据周期输出完毕,从fft输入到ifft输出,中间经过512个数据周期,省去了对倒序数据正序处理的过程。
23.进一步,所述步骤s5中,包括以下步骤:
24.s51:处理卷积相关后得到的模值,按1024数据大小区间进行检索,求出每个区间的峰值,并标记峰值的位置;
25.s52:将检索区间内的峰值与门限值进行比较,门限值大小为模值的均值的8倍;
26.s53:继续检索1024区间内的峰值,并将峰值与门限值比较;
27.s54:当连续3个峰值大于判决门限,且峰值的相对位置接近,根据峰值的相对位置和区间的大小,计算出时间偏移量,进行符号同步调整,同时符号同步模块发出信号使fft/ifft模块停止运算,下一次滑动窗大小为1024+time_offset,滑动结束后窗口对齐前导符号,同步完成,同时发出信号使fft/ifft模块重新启动,窗口大小重新调整回1024。
28.进一步,步骤s7包括以下步骤:
29.s71:将fft后得到的倒序频域数据i、q顺序输出;
30.s72:根据符号同步位置和前导符号的长度为1024,顺序读取前导符号;
31.s73:将读取到的前导符号数据存入到ram中,后一个前导符号与前一个前导符号的数据共轭相乘,根据结果判断是否反相确定syncm符号的位置,进而实现帧数据定位。
32.进一步,步骤s7中,所述帧同步模块采用一个ram进行数据相位比较操作,先来的序列存入到ram中,后来的序列与ram中的前一个序列的每一个点进行共轭相乘运算,同时将后来的序列存入到ram中,等待下一个序列的到来,每个点都是先读后写,依次将1024个点的运算求出的判断度量累积,每完成一个训练符号长度的运算进行根据累积度量值进行反相判断,直到判断到syncm信号的到来,再进行一次相位判断运算,确定检测到第二个syncm信号,确定帧同步成功;
33.(i1+jq1)(i
2-jq2)=(i1i2+q1q2)+j(q1i
2-i1q2)
[0034][0035][0036]
当sum_i_w小于0,说明检测到第一个syncm信号到来,等下一个符号也检测为syncm符号后,将fram_sync信号置1,帧同步成功。
[0037]
本发明的有益效果在于:
[0038]
1.本发明利用fft、ifft倒序输出的特点,将本地前导数据提前进行倒序处理,省去了对fft输出的倒序数据进行正序处理的步骤,倒序数据再经ifft恢复正序,采用fft和ifft的级联结构,避免了数据正序处理过程中的时钟延迟,大大提高了数据传输效率;
[0039]
2.本发明利用收端fft将定时同步转换到频域进行,用频域相乘代替了时域相关运算,避免了时域相关运算带来的大量运算;
[0040]
3.符号同步模块合理设置阈值和峰值检测机制,有效提高了系统同步性能的鲁棒性;
[0041]
4.帧同步模块合理利用ram空间,通过先读后写的方式,降低了硬件资源占用;
[0042]
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
[0043]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
[0044]
图1为本发明提供电力线载波通信定时同步物理层硬件实现架构图;
[0045]
图2为宽带电力线通信plc中的前导结构图;
[0046]
图3为fft模块第一级运算单元硬件实现结构图;
[0047]
图4为fft模块第二级及以后的运算单元硬件实现结构图;
[0048]
图5为本发明fft和ifft级联结构仿真结果图;
[0049]
图6为本发明峰值检测和符号同步仿真结果图;
[0050]
图7为本发明提供电力线载波通信帧同步硬件实现结构图;
[0051]
图8为本发明帧同步仿真结果图。
具体实施方式
[0052]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0053]
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0054]
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0055]
本发明提供了如图1所示的一种基于fpga的宽带电力线载波通信定时同步方法,根据时卷积相关对应频域相乘的特性,将时域接收信号变换到频域,并与如图2所示的前导序列本地频域信号相乘,设计峰值检测模块,利用相关后得到的模值信息进行符号同步定位,最后利用前导序列的结构特性来定位syincm的位置,包括以下步骤:
[0056]
s1:将接收到的i、q两路时域信号送入fft模块,具体实现方式如下:
[0057]
根据协议规范,时域数据需要进行1024点fft,数据总共需要进行10级蝶形运算,本发明采用频域抽取的基2fft算法。
[0058]
之后基于移位寄存器的流水线结构,组成fft的第一级运算单元如图3,第二级及以后的运算单元如图4,数据从流入第一级运算单元到从最后一级运算单元输出总共需要1024个数据时钟周期,数据倒序输出。具体包括以下步骤:
[0059]
a1:接收端的时域i、q两路数据并行输入fft第一级蝶形运算单元,第一级蝶形运算单元如图3所示。首先将开关置1,输入数据进入移位寄存器,512个时钟之后开关切换到2,后512的输入数据与前512个数据进行蝶形运算,运算结果分上下两路输出,每路512个数据;
[0060]
a2:对于第二级运算单元,如图4所示,首先将开关置1,第一级上、下两路运算结果输入到第二级运算单元的上下路移位寄存器。第二级运算单元移位寄存器大小为256,经256个时钟之后切换到开关2,后256个时钟上路输入数据与前256个上路输入数据进行蝶形
运算并输出。蝶形运算的同时,前256个下路数据进入到上面的移位寄存器,后256个下路数据进入下面的移位寄存器,然后开关切换回1,下路输入的后256个数据与下路输入的前256个数据进行蝶形运算并输出;
[0061]
a3:对于第三级及以后的蝶形运算单元均采用第二级单元的结构,1024点fft总共采用了10级蝶形运算单元;
[0062]
a4:整个fft运算模块都采用了基于移位寄存器的流水线结构,每级运算均进行了符号位扩展,防止数据溢出,并做了溢出处理操作。
[0063]
s2:fft和ifft级联处理数据,首先根据时域卷积等效于频域相乘的原理,将倒序输出的频域数据和倒序处理后的本地前导频域序列相乘,就得到了接收信号和本地前导相关运算后的频域结果;
[0064]
s3:之后可调用fft模块来实现ifft,即将倒序数据取共轭后输入fft模块,对结果取共轭,再乘1/1024得到顺序的相关结果的时域数据。
[0065]
fft和ifft级联处理数据流程实现结果如图5所示,fft输入数据i_in、q_in经1024个数据周期后,i1_out、i2_out、q1_out、q2_out开始输出数据,输出数据上下两路并行,经512个数据周期输出完毕,fft输出数据在和本地数据相乘后进入ifft,ifft输出数据经1024个数据周期输出完毕,从fft输入到ifft输出,中间经过512个数据周期,省去了对倒序数据正序处理的过程。
[0066]
s4:对顺序输出的时域数据取模处理;
[0067]
s5:将求得的模值数据m_conv送入符号同步模块,符号同步模块,首先进行峰值检测,数据区间取1024,门限大小m_thd设为模值均值m_conv_avg的8倍,检测到峰值后,将峰值与判决门限进行比较,并标记峰值的位置,连续3个区间内检测到大于判决门限的峰值后,判断3个峰值的相对位置,峰值的相对位置接近,则计算出时间偏移量,进行同步调整,同时符号同步模块发出fft_stop信号使fft/ifft模块停止运算,下一次滑动窗大小为1024+time_offset,滑动结束后窗口对齐前导符号,同步完成,同时发出fft_start信号使fft/ifft模块重新启动,窗口大小重新调整回1024,相关计算如下:
[0068]
m_conv_avg=m_conv_sum[41:10]
[0069]
m_thd=8*m_conv_avg
[0070]
dist=t_conv_max-t_last
[0071]
time_offset=t_conv_max
[0072]
峰值检测算法如下:
[0073]
if m_conv》m_conv_max
[0074]
m_conv_max=m_conv
[0075]
if m_index=1023&&m_conv》m_conv_max
[0076]
m_conv_peak=m_conv
[0077]
if m_index=1023&&m_conv《=m_conv_max
[0078]
m_conv_peak=m_conv_max
[0079]
符号同步实现结果如图6所示,输入模值为m_conv,m_conv在检测到3个大于门限的峰值时,得到时间偏移量time_offset=805,调整下一次的时间窗口长度time_len=1828,sync_stat置1,符号同步成功。
[0080]
s6:符号同步成功后,fft数据窗1024个数据输出即和前导符号对齐,此时可根据前导序列的结构来进行帧数据的定位,根据syncp和syncm具有反相的关系,设计了如图7所示电路结构来实现syncm的定位判断。
[0081]
s7:帧同步模块采用一个ram进行数据相位比较操作,先来的序列存入到ram中,后来的序列与ram中的前一个序列的每一个点进行共轭相乘运算,同时将后来的序列存入到ram中,等待下一个序列的到来,每个点都是先读后写,依次将1024个点的运算求出的判断度量累积,每完成一个训练符号长度的运算进行根据累积度量值进行反相判断,直到判断到syncm信号的到来,再进行一次相位判断运算,确定检测到第二个syncm信号,确定帧同步成功。
[0082]
相关计算如下:
[0083]
(i1+jq1)(i
2-jq2)=(i1i2+q1q2)+j(q1i
2-i1q2)
[0084][0085][0086]
帧同步实现结果如图8所示,当sum_i_w小于0,说明检测到第一个syncm信号到来,等下一个符号也检测为syncm符号后,将fram_sync信号置1,帧同步成功。
[0087]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1