摘要:在通信系统中,希尔伯特变换是被广泛应用的重要变换。为了实现数字解调,通常需要借助希尔伯特变换器对信号进行分解,利用Matlab设计希尔伯特变换器是一种最为快捷、有效的方法。通过具体的设计、仿真及对原始信号和经过希尔伯特变换器输出延迟信号的比较,说明Matlab是一个在滤波器设计方面很有力的工具。

关键词:Matlab;Hilbert变换器;remez;FDATool工具

0 引言

通信系统中,经常需要对一个信号进行正交分解,即分解为同相分量和正交分量。由于希尔伯特变换可以提供90°的相位变化而不影响频谱分量的幅度,即对信号进行希尔伯特变换就相当于对该信号进行正交移相,使它成为自身的正交对。因此,希尔伯特变换在通信领域获得了广泛应用。

在传统的设计中,希尔伯特变换器可由一个FIR滤波器和一个时延模块实现,也可由一组滤波器对实现,而实现FIR型希尔伯特变换器的一个简单方法就是对原型低通滤波器作正弦/余弦变换。但是,无论哪种方法都需要通过计算对低通滤波器的系数进行转换,其计算繁琐且存在一定的误差。Matlab作为滤波器设计的基础软件,不仅可以快速有效地实现希尔伯特变换器的设计、分析仿真和最优化,而且可以直接计算出希尔伯特变换器的系数,加之Matlab具有强大的接口功能,为后续的设计提供了方便。

1 希尔伯特变换器的基本原理

连续时间信号x(t)的希尔伯特变换

定义为:

由式(1)可得单位冲击响应h(t)=1/(πt),由于jh(t)=j/(πt)的傅里叶变换是符号函数sgn(w),所以希尔伯特变换器的频率特性为:

信号x(t)的希尔伯特变换可以看成是信号x(t)通过一个幅度为1的全通滤波器输出,信号通过希尔伯特变换器后,其负频率成分作+90°的相移,而正频率成分作-90°的相移。

这类滤波器要求滤波器的零频响应为0,若滤波器阶数为偶数,则还要求Nyquist频率(归一化频率为1)处的响应为0。即如果滤波器的阶数为偶数,那么增益在频率为0 Hz和fs/2处必须降为零,希尔伯特滤波器必须是一个带通滤波器。如果滤波器的阶数为奇数,那么增益在频率为0 Hz处必须降为零,希尔伯特滤波器必须是一个高通滤波器。

2 希尔伯特变换器的Matlab设计

2.1 直接程序法

Matlab信号处理工具箱提供了firls函数和remez函数,它们的调用格式语法规则相同,只是优化算法不同,函数firls利用最小二乘法使期望的频率响应和实际的频率响应间的误差最小;函数remez实现Park-McClellan算法,这种算法利用remez交换算法和Che-byshev近似理论设计滤波器,使实际频率响应拟合期望频率响应达到最优。

函数调用格式为b=remez(n,f,m,‘h’)或b=firIs(n,f,m,‘h’),其中,n为滤波器的阶数;f为滤波器期望频率特性的频率向量标准化频率,取值0~1,是递增向量,允许定义重复频点;m为滤波器期望频率特性的幅值向量,向量m和f必须同长度且为偶数;b为函数返回的滤波器系数,长度为n+1,本文将采用remez函数法。

下面设计一个希尔伯特变换器,要求采样频率为2 000 Hz,通频带为50~950 Hz,滤波器阶数为60阶。实现程序如下:

设计的希尔伯特变换器的特性如图1,图2所示。

从仿真结果可以观察到增益在0 Hz和1 000 Hz处降为零,即为带通滤波器;同时具有严格的线性相位特性,符合设计要求。在设计中如果特性不满足要求,原有的参数必须作相应的调整,在程序中只需对参数进行重新设定,就可以得到所需要的希尔伯特变换器。

2.2 利用FDATool工具设计法

FDATool是Matlab信号处理工具箱专用的滤波器设计分析工具,操作简单、灵活,可以采用多种方法设计不同的滤波器,同时可以实现滤波器的最小阶数设计。在Matlab命令窗口输入FDATool后回车就会弹出FDATool界面。

根据2.1中的设计实例,首先在Filter Type栏中选择Hilbert Transformer,在Design Method栏中选择Equiripple法,在filter order中选择60,在Frequencyand Magnitude Specifications中设置F=[50 950];M=[1 1];Fs=2 000,最后点击Design Filter,通过菜单选项Analysis可以在特性显示区看到滤波器的各种特性,如图3~图5所示。

在幅频特性和相频特性满足要求的同时,由图3可知单位脉冲响应为奇对称,即h(n)=-h(N-n-1),也符合希尔伯特变换器的特性。若设计不满足要求,则可以直接在FDATool界面中改变参数,在设计满足要求后,还可以把希尔伯特变换器的系数导出为Matlab变量,文本文件或C语言头文件等,这为后续的设计提供方便。

3 希尔伯特变换器的效果验证

3.1 直接程序验证法

对于所设计的希尔伯特变换器,频率为10 Hz的振动作为输入信号,采样频率为100 Hz,验证对应的数据点是否满足相位相差90°的特点,主要实现程序如下:

由图6可知,该希尔伯特变换器对阻带和通带波纹进行了控制,输出信号的相位比输入信号的相位前移了90°,符合希尔伯特变换的性质。如若把输入信号的频率变为-10Hz,则输出信号较之输入信号会后移90°,如图7所示。通过验证可知,该希尔伯特变换器实现了π/2移相。

3.2 Simulink仿真法

利用Matlab提供的Simulink工具对该希尔伯特变换器进行仿真,输入信号以3.1节中的要求为例,仿真系统如图8所示,在建立仿真系统时,注意对所选择的模块进行相应的参数设计。仿真结果如图9,图10所示。

4 结语

在Matlab平台上,采用直接程序法和FDATool工具法均可以快捷有效地完成希尔伯特变换器的设计,可以随时对比设计要求和希尔伯特变换器的特性,以使设计达到最优化。由于Matlab具有强大的接口功能,设计的结果可以很方便地移植到DSP,FPGA等器件中。在实际使用中,只需按要求修改参数,即可实现不同的希尔伯特变换器,实用性较强。

matlab 设计 希尔伯特变换器,基于Matlab的FIR型希尔伯特变换器设计相关推荐

  1. 基于matlab的pcm设计实验报告,基于MATLAB的PCM系统仿真课程设计

    基于MATLAB的PCM系统仿真课程设计 通信专业课程设计一 课课 程程 设设 计(论计(论 文)文) 设计设计 论文论文 题目题目基于基于 MATLABMATLAB 的的 PCMPCM 系统仿真系统 ...

  2. matlab gui 播放音频,基于MATLAB的GUI(Graphical User Interface)音频实时显示设计

    [博主原创] 摘要:本文章的设计主要讲基于matlab的gui音频实时显示设计,此次设计的gui相当于一个简洁的音乐播放器,界面只有"录音"和"播放"两个控件, ...

  3. matlab在杨氏单缝,基于matlab的单缝衍射和双缝干涉可视化模拟(毕业学术论文设计).doc...

    PAGE 1 ? 闽江学院 本科毕业论文(设计) 题 目 基于matlab的单缝衍射 和双缝干涉可视化模拟 学生姓名 学 号 1200810011031 系 别 物理学与电子信息工程系 年 级 08级 ...

  4. matlab生产计划问题,基于MATLAB的生产计划最优化系统设计

    龙源期刊网 http://www.doczj.com/doc/d0588b0949d7c1c708a1284ac850ad02de8007fa.html 基于MATLAB的生产计划最优化系统设计作者: ...

  5. matlab功率谱的峰值,基于Matlab功率谱密度估计方法.doc

    基于Matlab功率谱密度估计方法 基于Matlab功率谱密度估计方法要在实际情况下, 许多平稳信号无法导出数学表达式, 要准确获取这些信号的功率谱密度存在一定的困难.根据维纳辛钦 (Wiener K ...

  6. matlab求解常系数线性差分方程,基于matlab的线性常系数差分方程求解

    基于matlab的线性常系数差分方程求解 数字信号处理课程设计 题目: 基于MATLAB的线性常系数差分方程求解 学院: 专业: 班级: 学号: 姓名: 指导教师: 目 录 摘 要.1 第一章 背景3 ...

  7. Matlab之DNN:基于Matlab利用神经网络模型(epochs=10000000)预测勒布朗詹姆斯的2018年总决赛(骑士VS勇士)第一场得分、篮板、助攻

    Matlab之DNN:基于Matlab利用神经网络模型(epochs=10000000)预测勒布朗詹姆斯的2018年总决赛(骑士VS勇士)第一场得分.篮板.助攻 目录 输出结果 预测勒布朗詹姆斯的20 ...

  8. 基于matlab数字基带,基于MATLAB的数字基带传输的 FIR滤波器的设计

    O 引言目前,数字基带传输已广泛地应用于利用对称电缆构成的近程数据通信系统之中.随着数字通信技术的发展,基带传输方式不仅可以用于低速数据传输,而且也可以用于高速数据传输.然而数字基带传输也同样不可避免 ...

  9. 基于matlab数字处理系统设计新颖,基于MATLAB的单相光伏并网逆变系统的设计

    广西民族大学学报(自然科学版) 第 14 卷第 4 期 JOURNAL OF GUANGXI UNIVERSITY FOR NATIONALITIES Vol. 14 No. 4 2008 年 11 ...

  10. 基于matlab的捷联惯导算法设计及仿真,基于 Matlab 的捷联惯导算法设计及仿真1doc.doc...

    基于 Matlab 的捷联惯导算法设计及仿真1doc 基于 Matlab 的捷联惯导算法设计及仿真1 严恭敏 西北工业大学航海学院,西安 (710072) E-mail:yangongmin@163. ...

最新文章

  1. 计算机硬件技术基础东北大学,东北大学19春学期《计算机硬件技术基础》在线作业123答案...
  2. WebApi接口 - 响应输出xml和json
  3. [裴礼文数学分析中的典型问题与方法习题参考解答]4.3.13
  4. 如何让控件span的id调用ajax_微服务架构之「 调用链监控 」
  5. Vue2.0 $set()的正确使用方式
  6. Eclipse 高亮显示选中的相同变量
  7. linux服务器cuda,cudnn的安装与卸载
  8. perl anyevent socket监控web日志client
  9. could not perform addBatch
  10. 【51单片机快速入门指南】5.3:SPI控制晶联讯JLX12864G_08602 LCD屏幕
  11. 你是农村人吗?小时候没有自来水,每天喝的是什么水?
  12. 模仿SpringMVC的DispatcherServlet 手撸300行代码提炼精华设计思想并保证功能可用(1.0版本)
  13. PUN☀️一、基础配置、搭建大厅程序
  14. php测试数组函数,PHP-数组函数
  15. 软件测试分为哪几个阶段?
  16. 如何引导机器?如何面临人机结合?《​人工智能与人类未来》
  17. win10 仿照linux终端,[菜鸟win10系统]类似Windows界面的Linux发行版
  18. 王者荣耀战力查询微信小程序源码下载支持安卓苹果微信Q等多区查询
  19. js md5加密 无法md5解密
  20. Web性能压力测试工具-Webbench

热门文章

  1. Trained Tesseract on 瘦金体 successfully!!
  2. 平面应变四节点matlab,matlab-四节点四边形等参元的刚度矩阵计算程序.doc
  3. c语言tc2.0编译器下载,c语言tc2.0下载
  4. 禅道项目管理——bug管理工具
  5. java哪些地方用到了工厂模式_【java】实际开发中哪些场景需要用到工厂模式?...
  6. 中国大陆IP过滤器-Java实现
  7. k620显卡linux驱动下载,NVIDIA英伟达Quadro系列专业显卡官方驱动
  8. JavaScript网页游戏开发实战视频教程
  9. ip 纯真数据库查找
  10. MFC分析工具—Resource Hacker