一种基于FPGA的小波分解变换系统及实现方法与流程

文档序号:14124044阅读:212来源:国知局
一种基于FPGA的小波分解变换系统及实现方法与流程
本发明一种基于fpga的小波分解变换系统及实现方法,属于信号处理
技术领域
,尤其涉及功率测量领域,可以用于非正弦波无功功率测量。
背景技术
:电能作为人们广泛使用的能源,其质量关系到工农业生产、人民生活等社会生活的方方面面。随着技术发展,电力电子设备广泛使用,在电力网络中存在着大量的能量流动,无用功的增加威胁着电力网络的安全。因此,对电网中无功功率的测量是十分重要的。现阶段,对于无功功率测量的方法有很多种,其中最常见的方法是傅立叶分析法。傅立叶分析适用于周期平稳的信号,对于一些具有突变特性的非平稳信号,其分辨率不高。在电力网络中,电压电流波形存在畸变,此时不能用傅立叶分析法很好的进行功率测量。小波变换是傅里叶分析理论的一个分支。波分析采用不同的分析途径,是通过对母波的平移和伸缩,用小波组合来表示所要分析的信号,可以分辨一个明显的瞬时脉冲信号,克服了傅立叶分析的局限性。因此,可以使用小波分析理论对电网中的电力信号进行无功功率测量。技术实现要素:本发明的目的是设计一种基于fpga的小波分解变换系统,以实现三层小波分解变换,可以应用于非正弦波无功功率测量中。为实现上述目的,本发明一种基于fpga的小波分解变换系统,包括:信号数据选择模块a,用于确定需要变换的信号数据,判断小波分解变换次数,根据现实需求输出原始信号数据或是上一次变换后的系数数据,信号数据选择模块a与信号数据存储模块c的输入端相连,同时与小波分解系数存储模块f的输出端相连;地址信号生成模块b,用于产生读写数据的地址信号,判断读写信号值,根据需求产生读写数据地址,地址信号生成模块b与信号数据存储模块c的输入端相连;信号数据存储模块c,用于存储和读取需要进行滤波处理的数据,判断读写信号值,根据需要存储和读取数据,信号数据存储模块c与滤波器组模块d的输入端相连,同时与信号数据选择模块a和地址信号生成模块b的输出端相连;滤波器组模块d,用于对需要滤波的信号进行滤波,滤波器组模块d与小波分解系数存储模块f的输入端相连,同时与信号数据存储模块c的输出端相连;工作时钟变换模块e,用于对工作时钟进行频率变换,工作时钟变换模块e与小波分解系数存储模块f的输入端相连;小波分解系数存储模块f,用于存储和读取进行过下采样后的数据,小波分解系数存储模块f与信号数据选择模块a的输入端相连,同时与滤波器组模块d和工作时钟变换模块e的输出端相连。其中,地址信号生成模块b包含两个子模块,分别是读写信号判断和小波分解次数判断子模块、地址产生子模块。其中,地址产生子模块与读写信号判断和小波分解次数判断子模块的输出端相连,同时地址产生子模块与信号数据存储模块c的输入端相连。其中,信号数据存储模块c包含多于原始信号数据一倍的存储空间。其中,滤波器组模块d包含两个滤波器子模块,分别是低通分解滤波器lo_d子模块和高通分解滤波器hi_d子模块。其中,低通分解滤波器lo_d子模块和高通分解滤波器hi_d子模块分别与信号数据存储模块c的输出端相连,低通分解滤波器lo_d子模块与小波分解系数存储模块f中近似系数存储子模块的输入端相连,高通分解滤波器hi_d子模块与小波分解系数存储模块f中细节系数存储子模块的输入端相连。其中,工作时钟变换模块e包含两个子模块,分别是时钟分频子模块和工作时钟选择子模块。其中,工作时钟选择子模块与时钟分频子模块的输出端相连,同时工作时钟选择子模块与小波分解系数存储模块f的输入端相连。其中,小波分解系数存储模块f包含两个子模块,分别是近似系数存储子模块和细节系数存储子模块。其中,细节系数存储子模块与滤波器组模块d中高通分解滤波器hi_d子模块的输出端相连,近似系数存储子模块与滤波器组模块d中低通分解滤波器lo_d子模块的输出端相连,同时近似系数存储子模块与信号数据选择模块a的输入端相连。为实现上述目的,本发明一种基于fpga的小波分解变换的实现方法,包括如下步骤:(1)信号数据选择步骤,信号数据选择模块a对输入的原始信号数据和上一次分解变换的信号数据进行选择性输出,当给入使能信号时,初始化状态下输出原信号的数据,其他状态均输出上一次小波变换后的数据;(2)地址信号生成步骤,地址信号生成模块b首先判断小波分解变换次数,初始化状态下初始地址信号为0,其他状态下地址信号根据小波分解变换次数的不同变化,然后判断读写信号的值,向信号数据存储模块c读取、写入信号时地址信号变化的范围有所不同;(3)滤波器组滤波步骤,滤波器组模块d从信号数据存储模块c中读取数据,分别通过低通分解滤波器lo_d和高通分解滤波器hi_d进行滤波;(4)工作时钟变换步骤,工作时钟变换模块e从小波分解系数存储模块f中读取数据时工作时钟不变,从小波分解系数存储模块f中写入数据时工作时钟为原先的一半,实现下滤波后采样的过程;(5)小波分解系数存储步骤,小波分解系数存储模块f通过工作时钟的变换,对滤波后的信号进行抽取后存入两个子模块(近似系数存储子模块和细节系数存储子模块)中,完成滤波后下采样的过程,输出小波分解系数并将近似系数送入信号数据选择模块a中进行判断。其中,所述的滤波器组滤波步骤,在设计滤波器时先要设定低通分解滤波器和高通分解滤波器的系数。根据双尺度方程和其中为尺度函数、ψ(t)为小波函数、h0(n)是低通滤波器系数、h1(n)是高通滤波器系数、n是滤波器系数个数,计算出滤波器的系数,设计滤波器组。其中,所述的小波分解系数存储步骤,是对滤波后的信号数据进行下采样处理后再进行存储,并将存储的近似系数信号数据输出至信号数据选择模块进行判断。根据一维mallat分解算法,且其中,cj+1,m是本次小波分解的近似系数、dj+1,m是本次小波分解的细节系数、cj,k是上一次小波分解的近似系数、h0是低通滤波器系数、h1是高通滤波器系数、k表示上一次小波分解的近似系数第k位、m表示本次小波分解系数的第m位。由此可知,信号经过滤波器滤波后还需要一个下采样处理才能得到小波分解系数,所以在数据读入小波分解系数存储模块的时候,根据工作时钟变换模块生成的时钟信号进行写入,实现滤波后下采样的过程;由于每一次小波分解都与上一次小波分解变换后的近似系数有关,且每一次变换的滤波器组均相同,所以将存储的近似系数信号数据输出至信号数据选择模块进行判断,循环执行步骤(1)~步骤(5)。本发明一种基于fpga的小波分解变换系统及实现方法,具有如下优点:本发明的小波分解变换系统,在硬件上可以实现三层小波分解变换;本发明的小波分解变换系统,计算精度高;本发明的小波分解变换系统,采用了循环方法,只使用了一组滤波器组,降低了硬件上逻辑元件的数量。附图说明图1为本发明基于fpga的小波分解变换的系统结构图。图2为本发明基于fpga的小波分解变换的方法流程图。图3为本发明的小波分解系数曲线图。图4为本发明的小波分解系数误差图。具体实施方式参照图1,本发明一种基于fpga的小波分解变换系统包括:信号数据选择模块a,地址信号生成模块b,信号数据存储模块c,滤波器组模块d,工作时钟变换模块e和小波分解系数存储模块f。其中,地址信号生成模块b包含读写信号判断和小波分解次数判断子模块、地址产生子模块,信号数据存储模块c包含多于原始信号数据一倍的存储空间,滤波器组模块d包含低通分解滤波器lo_d子模块和高通分解滤波器hi_d子模块,工作时钟变换模块e包含时钟分频子模块和工作时钟选择子模块,小波分解系数存储模块f包含近似系数存储子模块和细节系数存储子模块两个存储模块。信号数据选择模块a实现信号数据选择,判断小波分解变换次数,输出原始信号数据或是上一次小波分解变换后的信号数据,接收小波分解系数存储模块f的输出数据同时输出的数据送入信号数据存储模块c中。地址信号生成模块b实现地址信号的生成,根据读写信号的不同、小波变换次数的不同,生成不同的地址信号,用于对信号数据进行存储,产生的地址信号送入信号数据存储模块c中。信号数据存储模块c实现信号数据的存储和读取,根据地址信号生成模块b生成的地址信号将信号数据选择模块a输出的数据进行存储或是将信号数据存储模块c中的数据取出,输出的数据送入滤波器组模块d中。滤波器组模块d实现信号的滤波,从信号数据存储模块c中取出的数据通过滤波器组,对信号进行低通滤波和高通滤波,得到低通滤波后的信号和高通滤波后的信号,输出的数据送入小波分解系数存储模块f中。工作时钟变换模块e实现工作时钟的变换,当对滤波器组输出的信号进行下采样时工作时钟频率为滤波器组时钟频率的一半,当向小波分解系数存储模块f中读取数据时时钟频率与滤波器组时钟频率相同,产生的时钟信号送入小波分解系数存储模块f中。小波分解系数存储模块f实现小波系数的存储和读取,存储时将工作时钟变换模块e输出的信号经过下采样后存入小波分解系数存储模块f中,高通滤波器滤出的信号下采样后存储在细节系数存储子模块,低通滤波器滤出的信号下采样后存储在近似系数存储子模块;读取时将小波分解系数存储模块f中存储的数据读出,将细节系数存储子模块中的细节系数和近似系数存储子模块的近似系数同时输出,其中近似系数还要输入到信号数据选择模块a中。本系统的工作原理如下:信号数据选择模块a是对需要进行小波分解变换的信号数据进行选择,初始状态下没有进行过小波分解变换,此时信号数据选择模块a输出原始信号数据;当进行过小波分解变换时,信号数据选择模块a输出上一次小波分解变换后的信号数据。地址信号生成模块b是生成存储器的地址信号,在存储信号数据选择模块a输出的m个数据时,地址信号接着上一次存储信号地址再生成m个地址;在读取信号数据存储模块c中的数据时,滤波器的系数为l个,需要输出(m+l-1)个数据,地址信号从上一次存储信号地址的初始地址再生成(m+l-1)个地址。信号数据存储模块c是对信号数据选择模块a输出的信号数据进行存储,输出的信号数据作为滤波器组模块d的输入。根据地址信号生成模块b输出的地址信号,在相应的地址中存储数据或从相应的地址中读取数据。滤波器组模块d是对信号数据存储模块c输出的信号数据进行滤波。滤波器组模块d包含低通分解滤波器lo_d子模块和高通分解滤波器hi_d子模块,从信号数据存储模块c输出的n个信号数据经过滤波器lo_d和滤波器hi_d后分别得到n个滤波后的信号数据。工作时钟变换模块e是小波分解系数存储模块f的工作时钟信号。根据mallat算法,且其中,cj+1,m是本次小波分解的近似系数、dj+1,m是本次小波分解的细节系数、cj,k是上一次小波分解的近似系数、h0是低通滤波器系数、h1是高通滤波器系数、k表示上一次小波分解的近似系数第k位、m表示本次小波分解系数的第m位。所以在将滤波器组模块d的输出数据存入小波分解系数存储模块f中时,小波分解系数存储模块f的工作时钟频率应为滤波器组模块d的工作时钟频率的一半,实现滤波后下采样过程。在读取小波分解系数存储模块f中的数据时,则不用对工作时钟信号频率做改变,与滤波器组模块d的工作时钟频率相同即可。小波分解系数存储模块f是对小波系数的存储和读取。高通滤波器滤出的信号下采样后存储在细节系数存储子模块,低通滤波器滤出的信号下采样后存储在近似系数存储子模块。根据mallat算法,本层近似系数、细节系数是对上一层近似系数做小波分解变换得到的,所以近似系数存储器中的信号数据需要输入到信号数据选择模块a中。参照图2,本发明一种基于fpga的小波分解变换方法,包括以下步骤:步骤1,对输入的信号数据进行选择,输出所需要处理的信号数据。信号数据选择模块a判断系统是否进行过小波分解变换,如果没有进行过小波分解变换或已完成三层小波分解变换则表示小波分解变换次数的标志信号为“00”,此时输出的为原始信号数据;如果表示小波分解变换次数的标志信号不为“00”,即小波变换已进行过小波分解变换且未完成三层小波分解变换,此时输出的为上一次小波分解变换的近似系数信号数据。步骤2,产生信号数据存储模块的地址信号。2.1)判断系统此时是否进行过复位操作,如果系统复位,则地址信号数据清零。2.2)根据读写信号的值,判断系统此时是对信号数据存储模块进行读操作还是写操作。如果读写信号的值为‘1’,则系统此时是对信号数据存储模块进行读操作,已知滤波器系数为l个,从本次初始地址开始生成与(m+l-1)个地址;如果读写信号的值为‘0’,则系统此时是对信号数据存储模块进行写操作,从本次初始地址开始生成与信号数据选择模块输出个数相同的m个地址。2.3)根据表示小波分解变换次数的标志信号确定初始地址位置,预留出地址空间。由于每进行一次小波分解变换,数据个数均减少一半,若上一次小波分解变换预留的地址空间为n,则本次小波分解变换预留的地址空间为n/2。步骤3,信号数据存储模块对需要进行小波分解变换的信号数据进行存储和读取。根据读写信号和地址信号,对需要进行小波分解变换的信号数据进行存取和读取。当读写信号的值为‘1’时,进行读操作;当读写信号的值为‘0’时,进行写操作。步骤4,对信号数据存储模块输出的信号数据进行低通滤波和高通滤波。步骤5,对小波分解系数存储模块的工作时钟进行变换。5.1)对与滤波器组的工作时钟同频的时钟信号进行分频变换,生成的新工作时钟频率为原先的一半。5.2)对工作时钟进行选择。根据读写信号的值,判断系统此时是对小波分解系数存储模块进行读操作还是写操作。当读写信号的值为‘1’时,进行读操作,此时输出对与滤波器组的工作时钟同频的工作时钟;当读写信号的值为‘0’时,进行写操作,此时输出5.1)中生成的新工作时钟。步骤6,小波分解系数存储模块对小波系数进行存储和读取。6.1)采用步骤5中的工作时钟对小波系数进行存储,此时读写信号的值为‘0’,将通过高通分解滤波器hi_d的信号数据存入细节系数存储器,将通过低通分解滤波器lo_d的信号数据存入近似系数存储器。6.2)采用步骤5中的工作时钟将小波系数存储模块中的信号数据输出,此时读写信号的值为‘1’。其中,近似系数存储器中的近似系数在输出的同时输入到信号数据选择模块中。本发明的设计与仿真实验说明:本发明实施例使用的是altera公司的quatusii开发软件进行设计和仿真实验的。采用cycloneivgx系列芯片实现本发明提出的小波分解变换系统。本发明中涉及到的滤波器、存储器、除法器均是用quatusii提供的ip核实现的。本发明一种基于fpga的小波分解变换系统,采用一组滤波器组循环使用的方式进行三层小波分解,与将三个滤波器组罗列的非循环设计方式相比,在很大程度上降低了硬件上资源的消耗。资源消耗对比如表1所示。表1资源消耗表1中,资源消耗降低百分比为本发明循环方式实现的系统相对于滤波器组罗列非循环方式实现的系统,资源消耗降低的百分比。本发明的仿真实验采用三组不同类型的信号做小波变换,分别是正弦波信号、非正弦波信号和存在突变性质的信号。正弦波信号使用的是正弦信号s=25600sin(ωt+π/4);非正弦波信号使用的是三个正弦信号叠加而成的信号,s=5120(sin(ωt+π/4)+sin(3ωt+π/6)+sin(5ωt-π/2));存在突变性质的信号使用的是在一个周期内的分段信号,假设基波信号周期为t,当0<t<t/2时,s=20480sin(ωt+π/4)+1024sin(3ωt+π/2)+6144sin(5ωt-π/6),当t/2<t<t时,s=20480sin(ωt+π/4)+1024sin(3ωt+π/2)。在系统平稳时,系统计算的小波系数与理论值之间的相对误差如表2所示。正弦波信号非正弦波信号突变信号最大值1.6961e-025.2988e-027.1376e-03最小值4.7110e-061.0421e-072.8824e-06平均值3.0530e-047.8767e-042.2644e-04方差2.0201e-061.2695e-052.4421e-07表2平稳时计算的相对误差表2中,可以看到在系统平稳时计算的小波分解系数的误差很小,计算十分精确,对于突变信号的小波系数计算尤为明显。图3表示小波系数理论计算值与本发明提出的小波分解变换系统计算的小波系数值的的对比图。图4表示本发明提出的小波分解变换系统计算的小波系数值与理论值之间的误差图。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1