收稿日期 2005 03 16 作者简介 张鸿博 1980 男 河南舞钢人 硕士生 第16卷第2期中原工学院学报Vol 16 No 2 2005年04月JOURNAL OF ZHONG YUAN INSTITUTE OF TECHNOLOG YApr 2005 文章编号 1671 6906 2005 02 0040 04 Matlab实现电网谐波测量加窗插值算法 张鸿博1 蔡晓峰2 许 珉1 1 郑州大学 电气工程学院 河南 郑州 450002 2 郑州经济管理干部学院 机电工程系 河南 新郑 451191 摘 要 简述了电网谐波测量非同步采样加窗插值算法的原理 给出了用Matlab系统实现该算法的具体程序和仿真方 法 仿真结果表明 用Matlab实现该算法准确性高 实现方便 能快速地在普通PC机上完成信号的频谱分析 关 键 词 谐波测量 窗函数 FFT 中图分类号 TM930 9文献标识码 A FFT加窗插值修正算法可以较好地提高电力系统 谐波测量的准确度 减少由于栅栏效应带来的误差 但 该算法比较复杂 编程实现比较困难 而Matlab有强大 的数字信号处理功能 有专门用于快速傅立叶变换的 FFT函数和良好的图形显示功能 因此用Matlab实现 加窗插值算法 降低了算法实现的复杂度 无论是在仿 真方面还是在实用上都能达到事半功倍的效果 1 算法原理 设电力系统中电流 电压信号可用一个周期函数 来表示 即 u t u t kT 式中T为周期函数的 周期 且k 0 1 2 3 f 1 T代表电力系统的频 率 2 f为其相应的角频率 电力系统中电流 电压 一般都满足狄里赫利条件 因此可以分解成如下形式 的傅立叶级数 u t A0 n 1 A ncos n t Bnsin n t 或 u t A0 n 1 Cnsin n t n 其中Cn A2n B2n A0为函数的直流分量 C1sin n t 1 称为基波 分量 Cnsin n t n n 2 为高次谐波 实际对非 正弦周期信号的测量中 一般无法得到实际电压 或电 流 的函数 各种录波装置记录数据一般都不是连续 的 而是在一段连续时间内 使电压 或电流 信号经过 模数转换并按一定频率来采样得到用有限字长表示的 离散时间信号 为了计算出各次谐波的幅值 只需从采 样序列中截取整数个周期就可以计算各次谐波的幅 值 设在一段连续时间内 对电压 或电流 进行均匀 采样得到了采样序列uk 从中取出一个周期T内的N 个点 记为 uk u0 u1 u3 uN 1 此时若离散时 间点为t kT N 采样时间间隔dt T N 在此离散 点 u t 的采样值为u k 则 n t n 2 T k T N 2 N kn 根据离散时间序列 uk 的数据 按照离散傅立叶 变换的理论 可以导出计算第n次谐波系数an bn的 公式 1 an 2 N N 1 k 0 ukcos 2 N kn 1 bn 2 N N 1 k 0 uksin 2 N kn 2 其中n 1 2 3 N 1 则第n次谐波的幅值cn为 cn a2n b2n 根据离散序列的FFT变换的定义及Matlab定义数 组下标从1开始的性质 周期为N的离散序列X n X 1 X 2 X 3 X N 的FFT表示为 FFT X k N n 1 x n e j2 k 1 n 1 n 1 n N 需要注意的是FFT的结果并不直接是谐波系数 现分 析如下 X k N 1 n 0 x n e j2 kn N N 1 n 0 x n cos 2 k n N jsin 2 k n N 两边同乘以2 N 得 2 N X k 2 N N 1 n 0 x n cos 2 k n N jsin 2 k n N 3 将式 1 式 2 代入得 2 N X k an jbn 对于一个周期为N的离散的有限长序列 利用 Matlab中的FFT函数计算出各次谐波系数只需再乘以 2 N后求模即可得到与基于连续信号傅立叶级数等效 的各次谐波幅值计算公式 即得到各次谐波的真正幅 值 序列加窗后在进行FFT时 各次谐波的幅值将会 出现偏差 这主要是因为加窗是对信号的不等加权 导 致分析结果变化 不同的窗函数对应不同的幅值恢复 系数 如表1所示 2 表1 窗函数及其幅值恢复系数 窗函数表达式恢复系数 哈宁窗 w n 0 5 0 5cos 2 n N 2 哈明窗 w n 0 54 0 46cos 2 n N 1 852 布 莱 克 罗 窗 w n 0 42 0 5cos 2 n N 0 08cos 4 n N 2 381 但是在应用快速傅立叶变换时很难做到整数个周 期采样 因此出现了影响测量准确性的频谱泄漏问题 频谱泄漏包括长范围泄漏和短范围泄漏两部分 长范 围泄漏是由于信号截断造成的信号频谱旁瓣之间的相 互干扰 短范围泄漏是指由于离散频谱的栏栅效应导 致的信号峰值点观测上的偏差 长范围泄漏通过加合 适的窗函数加以抑止 短范围的泄漏通过插值算法进 行修正 文献 3 提出了双峰谱线插值修正算法 本文 简述如下 假设一个频率为f0幅值为A初相位为 的单一 频率信号x t 在经过了采样率为fs的模数变换后得 到如下形式的离散信号 xn Asin 2 f0 fs n 4 如果所加窗函数的时域形式为 n 其连续频 谱为 W 2 f 则加窗后该信号的连续傅立叶变换为 X f n x n n e j2 fn 1 2j ej W 2 f f0 fs e j W 2 f f0 fs 5 如果忽略负频点 f0处频峰的旁瓣影响 在正频 点f0附近的连续频谱函数可以表达为 X f A 2j ej W 2 f f0 fs 6 对式 6 进行离散抽样 即可得到它的离散傅立叶 变换的表达式为 X k f A 2j ej W 2 k f f0 f s 7 式中离散频率间隔为 f fs N N是数据截断长 度 峰值频率f0 k0 f很难正好位于离散谱线频点 上 也就是说 k0一般不是整数 设峰值点左右两侧的 谱线分别为第k1和k2条谱线 这两条谱线也应该是 峰值点附近幅值最大和次最大的谱线 显然 k1 k0 k2 k1 1令这两条谱线幅值分别是y1 X k1 f y2 X k2 f 由于0 k0 k1 1 所以可以引入 一个辅助参数a k0 k1 0 5 显然 a的数值范围 是 0 5 0 5 这样 y2 y1 y2 y1 W 2 a 0 5 N W 2 a 0 5 N W 2 a 0 5 N W 2 a 0 5 N 8 令 y 2 y1 y2 y1 文献 3 通过多项式 逼近的方法得到不同窗函数所对应的修正公式 为了 便于下面算法的理解 本文对修正公式摘录如下 3 1 哈宁窗函数 w n 0 5 0 5cos 2 n N n 0 1 N 1 a 1 5 arg X ki f 2 a 1 i 0 5 i 1 2 A N 1 y 1 y2 2 356 194 03 1 155 436 82a2 0 326 078 73a4 0 078 914 61a6 2 哈明窗 w n 0 54 0 46cos 2 n N n 0 1 N 1 a 1 218 749 43 0 133 495 31 3 0 053 014 20 5 0 036 560 14 7 arg X ki f 2 a 1 i 0 5 i 1 2 14 第2期 张鸿博等 Matlab实现电网谐波测量加窗插值算法 A N 1 y 1 y2 2 265 571 03 1 227 199 78a2 0 376 077 75a4 0 097 673 89a6 3 布莱克曼窗函数 w n 0 42 0 5cos 2 n N 0 08cos 4 n N n 0 1 N 1 a 1 960 431 63 0 152 773 25 3 0 074 258 38 5 0 049 985 48 7 arg X ki f 2 a 1 i 0 5 i 1 2 A N 1 y 1 y2 2 702 057 74 1 071 151a2 0 233 619 15a4 0 040 176 68a6 2 Matlab算法实现 电力系统多数情况下关心的只是谐波的幅值 下 面根据以上结论 用Matlab实现对谐波幅值的修正算 法 相角的修正可以类比得到 以下是实现算法的文 件 myfft m clear N 128 采样点数 1 n 0 1 127 循环变量 load sam s 从数据文件sam中装入采样 数 据到数组s fs 50332 实际的采样频率 w 0 54 0 463cos 23pi3n N 窗函数 2 r s 3w 对信号的加窗 v fft r 128 快速傅立叶变换 vz abs v 6431 852 VZ存放未经过插值 的 谐波系数 以便和插值后的做对比分析stem abs v 6431 852 绘图 使结果显示 更加直观 u abs v 为下面插值修正做准备 注意插 值修正公式用到的是未经过幅值修正的FFT 结果 与VZ有区别 A zeros 1 7 A存放修正后的结果 for I 0 6 I对应谐波次数 y1 u 5 43I 找到第I次谐波峰值两侧的值 也是最大和次最大的值 y2 u 6 43I y3 u 4 43I max y2 if y3 y2 max y3 end if max y3 t y1 y1 max y2 t end b y2 y1 y2 y1 相当于参数 a 1 218 749 433b 0 133 495 313b 3 0 053 014 203b 5 0 036 563b 7 相当于参数 3 A I 1 y1 y2 3 2 265 571 03 1 227 199 783a 2 0 376 13a 4 0 097 673 893a 6 128 修 正幅值 4 end 循环结束 通过修改语句 1 2 3 4 可以实现对加不 同窗函数插值修正的分析 此外 本程序通过读取数据 文件得到采样数据 数据文件为二进制码 为和其它程 序接口提供了方便 4 3 仿真验证 首先建立生成模拟采样数据文件的文件proddata m f0 50 5 系统频率 fs 50332 采样频率 n 0 1 127 采样点数 xb 11 2 1 0 5 0 3 0 1 0 05 基波和各次 谐波 幅值 Q 0 9 0 8 0 7 0 6 0 5 0 3 0 2 基波和 各次谐 波初相角 弧度数 s zeros 1 128 仿真采样序列 for i 1 7 迭加成采样序列 s s xb i 3cos 23pi3i3f03n fs Q i end save sam 把数据保存到sam文件 保存为 二进制码 运行上面的程序 建立模拟采样序列的数据文件 文件名sam 后缀 mat 再运行myfft m文件 所得结果 见表 2 证明了该算法的准确性 4 结 语 本文用Matlab系统实现谐波测量的非同步采样加 窗插值算法 充分发挥了Matlab强大的科学计算和图 下转第56页 24 中原工学院学报 2005年 第16卷 参考文献 1 Hammar J Garcia2Molina H Cho j et al Extraction semi2structured information from the Web A In Proceedings of the Workshop on Management of Semi2structured Data C Tucson Arizona 1997 2 张成洪 肖军建 张 诚 Web内容抽取及其数据管理方法 J 复旦大学学报 自然科学版 2001 40 2 177 183 3 欧建雄 张礼平 HTML数据内容的抽取与集成 J 华东理工大学学报 2003 29 6 613 616 4 蔡 霞 张 森 周 宇 模式发现在Web抽取中的应用及设计 J 控制工程 2003 10 3 227 269 The Information Extraction from Web Based on Logical Definition PAN Hui2yong1 G AO Li2ping1 XUE Hui2zhong2 1 Zhongyuan Institute of Technology Zhengzhou 450007 2 Southeast University Department of Computer Science and Engineering Nanjing 210096 China Abstract This paper proposes a new method to perform web information extraction defined logically and another pro2 gram performs this process This method enables the web data extracting from Web to be more satisfied to the user and pro2 vides a valuable tool to make the huge Web2data more available Key words semi2structured information extraction from Web data integration 上接第42页 表2 谐波幅值修正前后结果对比表 谐波次数 谐波幅值 1234567 各次谐波的实际幅值11210 50 30 10 05 非同步采样未修正结果10 9921 983 80 980 380 481 40 282 360 089 0870 042 062 非同步采样修正结果11 0041 995 10 994 250 494 970 295 920 097 8610 049 252 形显示功能 仿真结果表明 用Matlab实现该算法 准 确性很高 在数字信号仿真和离线谐波分析方面有一 定的应用价值 参考文献 1 丁玉美 高西全 数字信号处理 M 西安 西安电子科技大学出版社 2000 2 张学玲 唐 毅 数字信号的加窗处理 J 计算机应用 2003 20 67 68 3 庞 浩 李东霞 俎云霄 等 应用FFT进行电力系统谐波分析的改进算法 J 中国电机工程学报 2003 23 6 50 54 4 张志涌 精通MAT LAB6 5 M 北京 北京航空航天大学出版社 2003 The Realization of the Utilization of Window Functions and Interpolation Algorithms Based on Matlab ZHANG Hong2bo1 CAI Xiao2feng2 XU Min1 1 The Electrical Engineering School of Zhengzhou University Zhengzhou 450002 2 Zhengzhou Economic Management Institute Xinzheng 451191 China Abstract This article introduce how to realize the utilization of windowfunctions and the interpolation algorithms based on Matlab Matlab is good at scientific Computation and graphics display The result of simulation shows that this algorithm is simple in programming and the veracity is high This makes it come true to do the harmonic analysis of electrical power sys2 tem on personal computer Key words harmonic analysis window functions FFT 65 中原工学院学报 2005年 第16卷
展开阅读全文