已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 1 页 共 38 页 1 1 绪论绪论 随着国民经济的发展和人们生活水平的提高 电力电子产品广泛地应用于工业 控制领域 用户对电能质量的要求也越来越高 其中最为突出的是电压质量和谐波 的问题 因此 如何提高电压质量 治理谐波就成为输配电技术中最为迫切的问题 之一 所以 面对我国目前电网结构薄弱和输配电技术普遍存在的技术手段的落后 自动化水平低的现状 针对电压质量和谐波问题 研究电网谐波治理问题和无功补 偿新技术及新装备 具有十分重要的理论和现实意义 3 1 1 1 1 谐波的定义谐波的定义 谐波 这一名词起源于声学 在声学中谐波表示一根弦或一个空气柱以基波 频率的倍数频率振动 电气学中所谓电网谐波 就是电网正弦电压波形畸变后 其 波形可以按傅立叶级数进行分解 除了基波 50HZ 之外 还有一系列频率为基波 频率整数倍的正 余 弦波 这些正 余 弦波称之为谐波 正是由于这些谐波注 入了电网 就使得电网电压波形畸变 14 1 1 2 2 谐波的危害谐波的危害 电网谐波的危害主要有以下几点 1 相同频率的谐波电压余谐波电流要产生同此谐波的有功功率与无功功率 从 而降低电网电压 浪费电网容量 2 高次谐波能使电容器出现过电流与过负荷 温度增高 寿命减少 甚至出现 发热 鼓肚 击穿或爆炸事故 同时在电压已经畸变的电网中 电容器的投入 还 可能使电网的谐波加剧 谐波放大现象 3 谐波往往引起继电保护不工作或误动作 从而造成设备与系统的事故 尤其 是半导体继电保护与整流型继电保护更为严重 4 谐波能增大仪表的计量误差 干扰通讯网络的正常工作 5 电机中有谐波电流 且频率接近某个零件的固有频率时 使电机产生机械振 动并发出很大的噪声 6 谐波对人体有影响 从人体生理学来看 人体细胞在受到刺激兴奋时 会在 细胞膜静息电位基础上发生快速电波动或可逆翻转 其频率如果与谐波频率相接近 电网谐波的磁辐射就会直接影响人的脑磁场和心磁场 1 1 3 3 谐波的产生谐波的产生 第 2 页 共 38 页 电网谐波来源于三个方面 其一是发电源质量不高产生谐波 其二是输电网产 生谐波 其三是用电设备产生的谐波 其中以电气设备产生的谐波最多 具体情况 如下 1 整流设备 由于晶闸管整流的广泛应用 如电力机车的 路电解槽 电池充 电器等 给电网造成大量的谐波 统计表明 由于整流装置产生的谐波占所有谐波 的 40 左右 这是最大的谐波源 2 电弧炉 电石炉 由于加热原料时电炉的三项电极很难同时接触到高低不平 的炉料 使得燃料不稳定 引起三项负荷不平衡 产生谐波电流 经变压器的 形 连接线圈而注入电网 其中主要是 2 7 次的谐波 平均可达基波的 8 20 最大 可达 45 3 电力变压器 由于变压器铁心的饱和 磁化曲线的非线性 加上设计变压器 时考虑经济型 其工作磁密选择在磁化曲线的近饱和段上 这样就使得磁化电流呈 尖顶波形 因而含有奇次谐波 其次谐波电流可达额定电流的 0 5 另外变压器空 载合闸时出现的涵流中也含有大量的谐波量 4 家用电器 如电视机 录像机 电子调光灯具 调温炊具等 因具有调压整 流装置 会产生较深的奇次谐波 在洗衣机 电风扇 空调器等有绕组的设备中 因不平衡电流的变化也能是波形改变 1 1 4 4 谐波抑制的三种方法谐波抑制的三种方法 为了产少谐波的危害 根据谐波的来源 抑制谐波的方法大致从三个方面考虑 1 确保电源的质量 从发电机本身来说 产生谐波是很少的 这主要就是要从 管理上保证发配电的质量 尤其是对于自发电设备的企业 要制定相应的措施予以 保证 2 减少输电网谐波的产生与磁辐射 如尽可能采用高压直流输电 低压供电尽 可能采用地下电缆 高层建筑内部的供电线应用铁管来防止磁辐射 还应做好大楼 建筑的接地系统的设计与实施安装 3 限制用电负荷产生的谐波前已述及 用电负荷是电网谐波的最主要的来源 首先要求用户对电网电压的畸变率与谐波电流的限制要做到负荷国家要求 根据国 家水电部颁发的 SD126 84 规定 如果超过极限值 则应采取抑制措施 其次 就是 要把维护电网不受谐波污染定成规章制度 用户与电气设备制造厂商都要配合发供 第 3 页 共 38 页 电部门齐抓共管 具体来说应做到下面几点 1 对容量在 100kVA 以上的整流装置与非线性用电设备 必须就地增设滤波 装置 吸收高次谐波 2 具有整流元件的设备 虽是小型用电器 也要增加整流相数与脉冲数 或 把晶闸管移相触发改为过零触发 或者增设滤波装置 做到尽可能减少谐波 例如 有些厂家生产的晶闸管调光台灯就增设了滤波原件 虽然成本有所增加 但能抑制 谐波对电视机等设备的干扰 应受到推广 3 制造电磁感应式设备的厂家 要采用高质量的电磁材料 也可适当降低磁 密 对于劣质元件的电磁设备要限制出售使用 4 对于电容器组等大容量的设备 应在回路内串电抗器或增设限流装置 抑 制高次谐波 5 合理选择供电电压 尽量保持三相平衡 对能产生谐波的大容量设备还可 采用较高电压供电 以减少系统的阻抗 从而减少谐波引起的网损 6 在产品的设计上还可采用干扰频率转嫁措施 如在变压器降压整流稳压的 设备中 采用开关电源的逆变技术 就能大大降低低频段的污染 而转嫁到 150kHz 以上频率的污染 而这种较高频率的谐波容易被抑制 总之 面对日趋严重的电网谐波污染 必须引起高度重视 这就需要发供电部 门 用户及电气设备的制造厂商都从大局出发 共同努力 清扫和维护电网的 公 共卫生 同时只有这样 才能有利于各行各业的生产发展 才能有利于人民生活水 平的不断提高 2 2 课题分析课题分析 2 2 1 1 课题来源课题来源 随着电力电子技术的迅速发展 各种变频器 变流器 开关电源和电抗器的应 用日益增多 电网随之产生的谐波污染也日益严重 影响了电力系统的安全运行及 线路周围的电磁环境 因此电网谐波测量成为热门研究课题 2 2 2 2 设计思路设计思路 将220V的交流电压通过电压采样环节 得到模拟量电压 将得到的模拟量电压 接到USB2002采样卡模拟输入通道 接着由采样卡的采样环节变换成离散的数字量 然后运用傅立叶变换作谱分析 由于栅栏效应 谱线位置与分析点可能不重合 可 第 4 页 共 38 页 采用具有实谱特性的窗函数对信号进行加窗处理 然后对信号及其时移连续作两次 FFT分析 实为一次复时域信号分析 则在窗谱的主瓣内将含有若干个由窗泄漏造 成的相位相同的谱分析值 据此可以判定这些分析值由同一条真实谱线引起 继而 可精确求出诸分立谱线的频率 幅度 然后将计算获得的数据显示在计算机屏幕上 本课题是从电网中采集数据然后运用 DFT 来分析电网中存在的谐波 根据课题 的需要可分成两大块 一块是数据采集 一块是数据处理 在数据采集模块里包括 数据的采集和保存 本设计采用北京阿尔泰科贸有限公司生产的 USB2002 型号的采 集卡进行采集 在数据处理模块中将采用 DFT 来进行数据处理从而得到谱线的幅度 和频率 进而求出纹波系数 由于要用到编程来解决数据的采集 存盘和处理 我 们将采用 VC6 0 做用户界面 通过调用 MATLAB 引擎的方法处理数据 以实现本课题 的要求 3 3 数据采集数据采集 3 13 1 数据采集卡的介绍数据采集卡的介绍 USB 又称之为通用串行总线 它将计算机和外设连接在一起 能进行数字图象 处理 同时为数字化设计提供了许多创造空间 课题中我们所用的采集卡型号是 USB2002 它是 USB 总线兼容的数据采集板 可经过 USB 电缆接入计算机 构成实验室 产品质量检验中心 野外测控 医疗设 备等领域的数据采集 波形分析和处理系统 也可构成工业生产过程控制的系统 而且它具有体积小 即插即用等特点 因此是便捷式系统用户的最佳选择 现在我 们使用的是 USB2 0 的版本 它的传输速度最高达到 480MBit 同时本卡的使用是由 软硬件共同完成的 3 23 2 数据采集卡的技术指标及应用数据采集卡的技术指标及应用 1 模拟信号输入部分 模拟通道输入数 32 路单端 16 路双端模拟信号输入 支持通道扫描及伪同时 采集 同步采集 扫描模式 注 伪同步模式 即模拟同步采集模式 采样被定时 器或外部时钟启动后 USB2002 以 400KHZ 的最大速度对用户设置的一组通道采样 结束后等待下一次启动 如此循环采样 1 模拟电压输入范围 5V 10V AD7899 1 第 5 页 共 38 页 2 模拟输入阻抗 100M 3 模拟输入共模电压范围 2V 4 放大器建立时间 2 S 2 A D 转换电路部分 1 A D 分辨率 14Bit 16384 2 非线性误差 1LSB 最大 3 转换时间 2 5 S 4 系统测量精度 满量程 0 1 5 采样速度 400KHZ 3 应用 数据采集卡的主要应用在以下几个方面 野外采集 信号采集和医疗设备 3 33 3 程序调试程序调试 现在由于在实验室操作 为了安全问题 我们先将电网 220V 的电压通过变压 器降压 然后再用电阻分压 当然使用了变压器会对我们要处理的电网谐波有一定 的影响 将电压采样电路和数据采集卡连好后 我们便将电源打开 接着打开我们 要运行的程序 点击程序运行按钮 系统自动弹出一个框 在这个框中 我们进行 一些参数的设置 参数设置完后我们便开始数据采集 采集的数据将在左半边出现 而图形以正弦波的形式在右半边出现 采集结束后点击存盘按钮 数据将存入相应 的盘中 在操作中我们发现如果使用单通道输入会有一些干扰 而使用双通道输入 则可以抑制一些干扰 4 4 数据处理数据处理 4 4 1 1 综述综述 数据处理就是对采集到的信号进行分析 分析的步骤有以下几方面 首先取两 组相差为一个采样周期的两组数据 然后对数据加布莱克曼 哈里斯窗 接着对数 据作 DFT 变换 最后用查询方法寻找真实谱线 流程图如图 4 1 所示 4 4 2 2 VC VC 调用调用 MATLABMATLAB 4 2 1 VC调用MATLAB的三种方法 Visual C 是基于Windows平台下的一种应用程序开发环境 现在已升级到了6 0 版本 应用VC6 0可以方便地开发各种用户需要的界面和工具 并且能够直接与系统 第 6 页 共 38 页 的底层硬件交换数据 在VC6 0环境下开发的软件 具有容易维护 界面友好及运行 速度快等许多优点 但是 在VC6 0下进行编程是比较烦琐的 不易掌握 因此 将 VC6 0 VC 调用 MATLAB 引擎 结束 开始 查找完 查找真实谱线 作 DFT 变换 加窗 取两组数据 图 4 1 数据处理部分流程图 环境与MATLAB进行有效连接将会使得VC程序的开发大大简化 13 以下是三种VC调用MATLAB的方法 它们各具特色 在应用中要结合具体需求进行 选择 第一种 MCC 编译器法可以直接对MATLAB 产生的 m文件进行编译 在MATLAB 提供的C C 函数库 图形库的支持下 能将绘制各种复杂图形的MATLAB程序高效的 转化为C C 代码 与单纯用VC编程实现相比大大减轻编程人员的工作量和编程难度 第二种 采用Matcom 编译法进行转换更加方便 且生成的C C 代码的可读性较好 是解决图形 图像处理问题的一种理想方法 第三种 使用MATLAB计算引擎法时 由 第 7 页 共 38 页 于其工作时MATLAB后台工作 只有小部分引擎通信函数库与程序相连 因此节省了资 源 提高了应用程序的整体性能和处理效率 4 2 2 调用 MATLAB 引擎 MATLAB 允许用户通过 MATLAB 引擎调用 MATLAB 的函数 即将 MATLAB 当作应用程 序进行数据计算的引擎 MATLAB 提供了一系列操作 MATLAB 引擎的 API 函数 通过 这些 API 函数 用户可以充分发挥 MATLAB 进行矩阵计算的优势 将应用程序的计算 功能交给 MATLAB 引擎完成 而界面部分则可以通过采用 VC 来实现 这些为应用 程序的实现提供了很大的灵活性 1 API 函数介绍 1 int engClose Engine ep 退出 MATLAB 引擎 2 int engEvalString Engine ep const char string 使 MATLAB 引擎执行字符串 string 中的表达式 3 mxArray engGetVariable Engine ep const char name 从 MATLAB 引擎工作空间中复制名字为 name 的变量 4 int engGetVisible Engine ep bool value 判断 MATLAB 引擎工作窗口是否可见 5 Engine engOpen const char startcmd 启动一个 MATLAB 引擎 在 Windows 操作环境下 startcmd 参数必须为 NULL 6 Engine eng OpenSingleUse const char startcmd void dcom int retstatus 启动一个只允许用户使用的 MATLAB 引擎 在 Windows 系统中 startcmd 和 dcom 参数始终为 NULL retstatus 为返回 engOpenSingleUse 函数的执行状态 7 int engOutputBuffer Engine ep char p int n 设置 MATLAB 引擎的输出内存 存储 engEvalString 函数执行字符串后的输出结 果 其中 n 表示设置的输出内存可以存放的字符个数 如果输出结果的字符串大于 n 则只存储前 n 个字符 8 int engPutVariable Engine ep const char name const mxArray mp 向 MATLAB 引擎工作空间中写入一个 MATLAB 阵列变量 其中 name 为写入变量在 第 8 页 共 38 页 MATLAB 引擎工作空间中的名字 9 int engSetVisible Engine ep bool value 设置 MATLAB 引擎工作窗口是否可见的属性 如果 value true 则 MATLAB 引擎 窗口可见 如果 value false 则 MATLAB 引擎窗口不可见 2 Visual C 6 0 MFC 工程中调用 MATLAB 引擎 首先创建一个单文档的 Visual C 6 0 工程 matlabenginetest 其中 view 类的 基类选为 CFormView 添加到 CMatlabenginetestView 中的界面元素及其 ID 如下表所列 表 4 1 matlabenginetest CmatlabenginetestView 控件列表 ID 控件类型界面元素 IDC SrartEngineButton 启动 Engine IDC DrawSincButton 计算并绘制 Sinc 图象 IDC CloseEngineButton 关闭 Engine IDC HIDEENGINECHECKCheck button 隐藏 MATLAB 引擎窗口 IDC CMDEDITEdit 命令输入编译框 IDC EVALUATESTRINGButton 执行用户输入的命令 IDC OUTPUTEDITEdit MATLAB 引擎结果显示编译框 Matlabenginetest 通过 engEvalString 函数调用 MATLAB 引擎执行相应的命令 并计算显示 sinc 函数曲线 通过函数 engOutputBuffer 将 m outbuff 设为 MATLAB 引擎输出的结果存储的缓冲区 另外需要注意的是 由于本工程调用 MATLAB 引擎的 API 函数 因此需要在工程设置中加入静态链接库 libeng lib 7 4 2 3 程序代码 matlabenginest h if defined AFX MATLABENGINETESTVIEW H 2BA448E9 DCB7 4CAB 8DE3 46 FED317C086 INCLUDED define AFX MATLABENGINETESTVIEW H 2BA448E9 DCB7 4CAB 8DE3 46FED317 C086 INCLUDED if MSC VER 1000 第 9 页 共 38 页 pragma once endif MSC VER 1000 include engine h define MAX BUFF CHAR NUM 2000 class CMatlabenginetestView public CFormView protected create from serialization only CMatlabenginetestView DECLARE DYNCREATE CMatlabenginetestView public AFX DATA CMatlabenginetestView enum IDD IDD MATLABENGINETEST FORM CEditm outputedit BOOL m nIsCheck CString m cmdedit AFX DATA Attributes public CMatlabenginetestDoc GetDocument Operations public Engine m ep char m outbuff MAX BUFF CHAR NUM Overrides ClassWizard generated virtual function overrides AFX VIRTUAL CMatlabenginetestView public virtual BOOL PreCreateWindow CREATESTRUCT protected virtual void DoDataExchange CDataExchange pDX DDX DDV support 第 10 页 共 38 页 virtual void OnInitialUpdate called first time after construct virtual BOOL OnPreparePrinting CPrintInfo pInfo virtual void OnBeginPrinting CDC pDC CPrintInfo pInfo virtual void OnEndPrinting CDC pDC CPrintInfo pInfo virtual void OnPrint CDC pDC CPrintInfo pInfo AFX VIRTUAL Implementation public virtual CMatlabenginetestView ifdef DEBUG virtual void AssertValid const virtual void Dump CDumpContext endif protected Generated message map functions protected AFX MSG CMatlabenginetestView afx msg void OnCloseEngine afx msg void OnDrawSinc afx msg void OnStartEngine afx msg void OnPaint afx msg void OnHideenginecheck afx msg void OnEvaluatestring afx msg void OnSize UINT nType int cx int cy afx msg void OnChangeOutputedit AFX MSG DECLARE MESSAGE MAP ifndef DEBUG debug version in matlabenginetestView cpp inline CMatlabenginetestDoc CMatlabenginetestView GetDocument 第 11 页 共 38 页 return CMatlabenginetestDoc m pDocument endif AFX INSERT LOCATION Microsoft Visual C will insert additional declarations immediately before the previous line endif defined AFX MATLABENGINETESTVIEW H 2BA448E9 DCB7 4CAB 8DE3 46 FED317C086 INCLUDED matlabenginetest cpp include stdafx h include matlabenginetest h include matlabenginetestDoc h include matlabenginetestView h ifdef DEBUG define new DEBUG NEW undef THIS FILE static char THIS FILE FILE endif CMatlabenginetestView IMPLEMENT DYNCREATE CMatlabenginetestView CFormView BEGIN MESSAGE MAP CMatlabenginetestView CFormView AFX MSG MAP CMatlabenginetestView ON BN CLICKED IDC CloseEngine OnCloseEngine ON BN CLICKED IDC DrawSinc OnDrawSinc ON BN CLICKED IDC StartEngine OnStartEngine ON WM PAINT ON BN CLICKED IDC HIDEENGINECHECK OnHideenginecheck ON BN CLICKED IDC EVALUATESTRING OnEvaluatestring ON WM SIZE 第 12 页 共 38 页 ON EN CHANGE IDC OUTPUTEDIT OnChangeOutputedit AFX MSG MAP Standard printing commands ON COMMAND ID FILE PRINT CFormView OnFilePrint ON COMMAND ID FILE PRINT DIRECT CFormView OnFilePrint ON COMMAND ID FILE PRINT PREVIEW CFormView OnFilePrintPreview END MESSAGE MAP CMatlabenginetestView construction destruction CMatlabenginetestView CMatlabenginetestView CFormView CMatlabenginetestView IDD AFX DATA INIT CMatlabenginetestView m nIsCheck FALSE m cmdedit T AFX DATA INIT TODO add construction code here m ep NULL memset m outbuff 0 MAX BUFF CHAR NUM sizeof char CMatlabenginetestView CMatlabenginetestView if m ep NULL engClose m ep void CMatlabenginetestView DoDataExchange CDataExchange pDX CFormView DoDataExchange pDX AFX DATA MAP CMatlabenginetestView 第 13 页 共 38 页 DDX Control pDX IDC OUTPUTEDIT m outputedit DDX Check pDX IDC HIDEENGINECHECK m nIsCheck DDX Text pDX IDC CMDEDIT m cmdedit AFX DATA MAP BOOL CMatlabenginetestView PreCreateWindow CREATESTRUCT void CMatlabenginetestView OnInitialUpdate CFormView OnInitialUpdate GetParentFrame RecalcLayout ResizeParentToFit m outputedit SetWindowText CMatlabenginetestView printing BOOL CMatlabenginetestView OnPreparePrinting CPrintInfo pInfo default preparation return DoPreparePrinting pInfo void CMatlabenginetestView OnBeginPrinting CDC pDC CPrintInfo pInfo TODO add extra initialization before printing void CMatlabenginetestView OnEndPrinting CDC pDC CPrintInfo pInfo 第 14 页 共 38 页 TODO add cleanup after printing void CMatlabenginetestView OnPrint CDC pDC CPrintInfo pInfo TODO add customized printing code here CMatlabenginetestView diagnostics ifdef DEBUG void CMatlabenginetestView AssertValid const CFormView AssertValid void CMatlabenginetestView Dump CDumpContext CMatlabenginetestDoc CMatlabenginetestView GetDocument non debug version is inline ASSERT m pDocument IsKindOf RUNTIME CLASS CMatlabenginetestDoc return CMatlabenginetestDoc m pDocument endif DEBUG CMatlabenginetestView message handlers void CMatlabenginetestView OnCloseEngine TODO Add your control notification handler code here engClose m ep m ep NULL 第 15 页 共 38 页 void CMatlabenginetestView OnDrawSinc TODO Add your control notification handler code here if m ep NULL engEvalString m ep x1 0 01 0 01 10 pi engEvalString m ep x2 10 pi 0 01 0 01 engEvalString m ep y1 sin x1 x1 engEvalString m ep y2 sin x2 x2 engEvalString m ep plot x2 x1 y2 y1 engEvalString 中为调用的 MATLAB 程序 产生一个错误 从而验证 MATLAB 引擎的输出已经被捕获 engEvalString m ep 1 0 m outputedit SetWindowText m outbuff else AfxMessageBox 请启动 MATLAB 引擎 MB OK NULL void CMatlabenginetestView OnStartEngine TODO Add your control notification handler code here m ep engOpen NULL engOutputBuffer m ep m outbuff MAX BUFF CHAR NUM void CMatlabenginetestView OnPaint CPaintDC dc this device context for painting 第 16 页 共 38 页 TODO Add your message handler code here Do not call CFormView OnPaint for painting messages void CMatlabenginetestView OnHideenginecheck TODO Add your control notification handler code here if m ep NULL return UpdateData true engSetVisible m ep m nIsCheck void CMatlabenginetestView OnEvaluatestring TODO Add your control notification handler code here UpdateData true LPSTR pstr m cmdedit GetBuffer m cmdedit GetLength if m ep NULL engEvalString m ep const char pstr m outputedit SetWindowText m outbuff else AfxMessageBox 请启动 MATLAB 引擎 MB OK NULL void CMatlabenginetestView OnSize UINT nType int cx int cy CFormView OnSize nType cx cy TODO Add your message handler code here 第 17 页 共 38 页 if IsWindow m outputedit GetSafeHwnd m outputedit MoveWindow 0 140 cx cy 140 true void CMatlabenginetestView OnChangeOutputedit TODO If this is a RICHEDIT control the control will not send this notification unless you override the CFormView OnInitDialog function and call CRichEditCtrl SetEventMask with the ENM CHANGE flag ORed into the mask TODO Add your control notification handler code here 图 4 2 VC 调用 MATLAB 引擎的用户界面 第 18 页 共 38 页 40 30 20 10010203040 0 4 0 2 0 0 2 0 4 0 6 0 8 1 图 4 3 通过调用方法实现绘制 sinc 图形 4 4 3 3 数据分组数据分组 本课题为一路数据采集 得到一组电压信号数据 谱线的精确辨识需要相继两次 DFT 分析 考虑到完全对称窗的选取 需从数据 采集得到的数据中取 N 2 个数据 这里取 4098 个数据 将 1 a 2 a 4098 a 和的平均值作为第一个点 其余不变 得到第一组数据 记为 x n 将 1 a 4097 a 和的平均值作为第一点 其余依次 得到第二组数据 记为 y n 两组 2 a 4098 a 数据相差一个采样周期 4 4 4 4 加窗加窗 4 4 1 窗函数的选取 对时域信号作DFT分析首先应作加窗处理 选取理想的窗函数的基本原则是 1 窗函数频谱的主瓣应尽量窄 能量尽可能集中在主瓣内 从而在谱分析时 获得较高的频率分辨力 在数字滤波器设计中获得较小的过渡带 2 窗谱的旁瓣高度应尽量小而且随频率尽快衰减 以减小谱估计时的泄漏失 真 在设计数字滤波器时减小通带的波动 提高阻带的衰减 但主瓣既窄 旁瓣又小衰 减又快的窗函数是不容易找到的 比如矩形窗的旁瓣很大 但其主瓣宽度是最窄的 因 此 在数据处理时通常需要做综合考虑取其折中 在应用窗函数时 除了要考虑窗谱本身的特性外 还应当充分考虑被分析信号的 特点以及具体的处理要求 在谱分析中 如果仅要求分析谱峰的频率而不计及幅值的 第 19 页 共 38 页 精度 则可选用主瓣较窄而便于分辨的矩形窗 如果要分析窄带信号且具有较强的干 扰噪声时 则应选用旁瓣幅度较小的窗函数如Hamming 窗等 如果干扰距离信号较远 则 可以采用旁瓣衰减速度较快的窗函数如Papoulis 窗等 对于随时间衰减的信号如脉 冲响应信号等 可以应用指数窗等来提高分析的信噪比 12 下面是几种常见的窗函数 1 矩形窗 5 时域 N w nRn 窗谱 1 2 N j j RR WeWe 幅频函数 sin 2 sin 2 R N W 波形 图4 4 矩形窗及其频谱 2 三角形窗 时域 21 0 12 21 21 12 nN n N w n nN nN N 窗谱 第 20 页 共 38 页 2 1 2 2 1 2 1 sin 42 1 sin 2 sin 42 sin 2 N j j B N j N Wee N N e N 幅频函数 2 sin 42 sin 2 B N W N 3 汉宁窗 时域 12 1 cos 21 N n w nRn N 窗谱 1 2 N j j HH WeWe 幅频函数 22 0 50 25 11 HRRR WWWW NN 当N 1 N 1近似N 所以此式能使三部分之和相互抵消 能量更集中在主瓣 但主瓣宽度却比矩形窗宽一倍 为 8N 波形 图4 5 汉宁窗及其频谱 4 海明窗 时域 2 0 540 46cos 1 N n w nRn N 第 21 页 共 38 页 窗谱 1 2 N j j HMHM WeWe 幅频函数 22 0 540 23 HMRRR WWWW NN 波形 图4 6 海明窗及其频谱 下面是五种常见窗函数的基本参数比较 2 表4 2 五种窗函数基本参数 窗函数类型旁瓣峰值 dB n 过渡带宽度B 阻带最小衰减 dB s 矩形窗 134 N 21 三角窗 258 N 25 汉宁窗 318 N 44 海明窗 418 N 53 布莱克曼窗 5712 N 74 一般电网信号主要含有整数次谐波 因而常采用基于余弦窗的组合窗 这类窗 只要选取观测时间是信号周期的整数倍 其频谱在各次整数倍谐波频率处幅值为零 因而谐波之间不发生相互泄漏 即使信号频率作小范围波动 泄漏误差也较小 余 弦窗一般可以表达为 H为窗的项数 1 公式4 1 0 12 cos H h h nh w na NN 窗的项数越多 主瓣宽度越大 从而引起频谱分辨力的降低 但同时较多项数 的窗函数能够产生较大的旁瓣衰减 有利于提高频谱计算精度 但组合窗的项数一 般不大于4 容易推得 第 22 页 共 38 页 公式4 2 0 1 c 2 H hRR h waWhWh 把式公式1代入公式2并简化得到 公式4 3 00 2 sin sin 2 sinsin HH j h h hh a N weja hhN NN 公式4 3表明 欲使组合窗具有线形相位特性 应满足故常用的窗 0 0 1 H h h aH 为两项汉宁 Hanning 窗 三项布莱克曼 Blackman 窗 四项布莱克曼哈里斯 Blackman Harris 窗 如果测量时间为信号周期整数倍 且大于等于4 则基波和各次谐波频率归一 化后正好位于上述组合窗幅频特性零点 此时整数次谐波相互干扰误差为零 当信 号频率波动时 各次谐波频率在窗零点附近也作一定的波动 不同窗的零点附近特 性不同 故产生的泄漏误差也不相同 相同条件下 窗宽L和采样点数同时增大 频 谱泄漏减小 四项布莱克曼 哈里斯窗大多数谐波衰减90dB以上 性能最优 布莱克 曼窗次之 15 4 4 2 布莱克曼 哈里斯窗 blackman harris 的定义 布拉克曼窗也称二阶升余弦窗 布拉克曼利用更多的矩形窗频谱线性组合构成 布拉克曼窗 其偶对称表示为 1 0 2 cos K m m w namn N 1 0 1 22 NN n 单边表示 1 0 2 1cos K m m m w namn N 0 1 21nN 单边表示的布拉克曼窗幅度频谱函数为 1 0 22 1 2 m K m RR m a WWmWm NN 这个窗函数中系数的选择应满足以下约束条件假如布拉克曼窗有 K 1 0 1 0 K m m a 个非零的系数 则其振幅频谱将由 2K 1 个中心频率不同的矩形窗频谱线性组 m a 合而成 显然 要使窗函数频谱的主瓣宽度窄 则 K 值不能选得很大 第 23 页 共 38 页 哈利斯曾找到了布拉克曼窗的一组三项及四项非零系数 如表 4 3 所示 表 4 3 系数值 m a 三项系数四项系数 最大副瓣电平 67dB 92dB A00 423230 35875 A10 497550 48829 A20 079220 14128 A30 01168 由这些系数所构成的窗函数成为布拉克曼 哈利斯窗 可获得很小的副瓣电 平 布拉克曼 哈利斯窗取三项时得最大副瓣电平为 67dB 取四项系数时可得最 大副瓣电平为 92dB 4 在本课题设计中 我采用的是四项布莱克曼 哈里斯窗 其窗函数为 其波形图如图 4 7 所示 a 第 24 页 共 38 页 b 图 4 7 布莱克曼 哈里斯窗及其频谱 a 时域特性 b 频域特性 4 4 3 窗函数的使用 设连续时域信号为 截断用窗函数为 其宽度为 则相应的分辨力为 tx twT 1 其傅立叶变换谱为 即fT fW fW twF 周期为的采样脉冲序列可写为 s T tg tg n nTst 其傅立叶变换谱为 fG s f m s mff 式中 为采样频率 则相应的数字窗 的窗谱 为 s f s T1 s nTw G W f fWG tgtwF fW fG 2 1 N Nn nTsw e fnTsj 2 s f m s mffW 第 25 页 共 38 页 对信号的 DFT 分析实质上是的加权截断采样脉冲序列 tx tx 公式 4 4 txwg tx tw tg 的傅立叶变换在诸离散频率点 上的谱密度采样值 即fkf 公式 4 5 kX txF wg fkf fXWG fkf 设信号具有有限条分立谱线 即 tx 公式 4 6 fX i j i i ffeA i 则依公式 4 4 可得 fXWG fX fWG iG j i i ffWeA i 引用公式 4 5 公式 4 6 有 公式 4 7 kX iG j i i ffkWeA i 虽然公式 4 7 表明是具有真实谱线的函数 但如果采用具有实域化窗谱的 kX 窗函数 以致在主瓣之外可完全忽略 则当诸真实谱线频差大于的主 fWG fWG 瓣宽度 即 时 只可能有一条与相差在主瓣半宽范围 B ji ff B ji fk 内的真实谱线对有影响 即当 1 时 使 N 点 DFT 的运算量近似下降一半 所以 应当继续分解下去 将每个 N 2 点 DFT 分解为 2 个 N 4 点 DFT 依次 类推 经过 M 级时域奇偶抽取 可分解为 N 个 1 点 DFT 和 M 级蝶形运算 每级有 N 2 个蝶形 而 1 点 DFT 就是 1 点时域序列本身 N 8 点 DIT FFT 的运算流图如图 4 10 所示 第 30 页 共 38 页 3 N W 1 N W 2 N W 2 N W 2 N W 0 N W 0 N W 0 N W 0 N W 0 N W 0 N W 0 N W x 0 x 4 x 2 x 6 x 0 x 1 x 5 x 3 x 7 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 A 0 A 7 图 4 10 8 点 DIT FFT 运算流图 4 5 2按频域抽取算法 DIF FFT 频率推导的方式是将频域的元素重新作排列 找出与时域数据之间的关系 设序列长度为 首先将前后对半分开 得到两个子序列 其 nxN M 2 nx DFT 可表示为如下形式 DFT kX nx 1 0 N n kn N Wnx 12 0 N n kn N Wnx 1 2 N Nn kn N Wnx 12 0 N n kn N Wnx 12 0 2 2 N n Nnk N W N nx 公式 4 9 12 0 2 2 N n kN N N nxWnx kn N W 式中 为偶数时等于 1 为奇数时等于 1 2Nk N W k 1 kk 将分解成偶数组与奇数组 当取偶数 0 1 kXkkr2r12 N 时 2 rX 12 0 2 N n N nxnx rn N W 2 第 31 页 共 38 页 公式 4 10 12 0 2 N n N nxnx rn N W 2 当取奇数 0 1 时 kk12 rr12 N 12 rX 12 0 2 N n N nxnx 12 rn N W 公式 4 11 12 0 2 N n N nxnx nr N n NW W 2 令 0 1 2 n N W N nxnxng N nxnxnf 2 2 n12 N 将和分别代入 4 10 和 4 11 式 可得 nf ng 公式 4 12 12 0 2 12 0 2 12 2 N n rn N N n rn N WngrX WnfrX 公式 4 10 表明 按奇偶值分为两组 其偶数组是的点的 kXk nf2N DFT 奇数组则是的点的 DFT ng2N 这种算法是对进行奇偶抽取分解的结果 所以称之为频域抽取法 FFT 观 kX 察图 4 11 可知 DIF FFT 算法共 M 级运算 每级共有个蝶形运算 输入是序列2N 为自然顺序 而输出为倒序排列 因此 M 级运算完后 要对输出数据进行倒序才 能得到自然顺序的 kX 在本课题设计中 我采用的是用C 调用MATLAB引擎的方法 在MATLAB中有直接 的fft函数 使用十分方便 第 32 页 共 38 页 1 N W 0 N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物理下册物质的密度课件苏科版
- 江浙地区西语学生的发音特点调研及原因分析
- 疾病预防控制机构绩效考核工作
- 海尔商用空调营销方案
- 分析化学非水滴定
- 核医学工作场所的防护要求
- 机械通气常用模式临床医学医药卫生专业资料
- 回填土压实度检测方案
- 2026年药剂辅助员药品存储环境真题练习卷及答案
- 2026年建筑八大员(材料员)岗位考试试题及答案
- 2026北京师范大学万宁实验学校秋季学期教师招聘考试参考题库及答案解析
- (2026年)帕金森病患者护理业务学习课件
- 分布式光伏施工质量控制措施
- 2026年教育数字化转型测试真题
- 2026年新高考一卷语文试卷及解析答案
- 铁路“四电”工程施工质量验收新标准培训考试试题(含答案)
- 江苏省扬州市邗江区2025-2026学年高一上学期期中调研英语试卷(含答案)
- 2025年山西联通招聘真题及答案
- 泡泡玛特展示设计
- 员工自驾车安全培训课件
- 中粮企业文化设计案例解析
评论
0/150
提交评论