问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

消除信号中的谐波

创作时间:
作者:
@小白创作中心

消除信号中的谐波

引用
CSDN
1.
https://blog.csdn.net/zhuoqingjoking97298/article/details/137173030

谐波是信号处理领域中的一个重要概念,它不仅影响信号的传输质量,还可能产生电磁干扰等问题。本文将深入探讨周期方波信号的谐波分量及其与信号波形的关系,通过理论分析和实际测量相结合的方式,揭示如何通过调整信号波形来消除特定的谐波分量。

01 信号谐波

一、谐波分量

周期方波信号具有很多离散的谐波分量,频谱的包络线是sinc函数。信号的周期记作T1,信号高电平的时间设为τ。频谱的间隔为T1分之2π。τ决定了频谱包络线的过零点,对应τ分之2π的整数倍数。

如果周期T1逐步减小,直到T1等于τ,此时信号变成了直流信号。可以看到所有的谐波分量恰好都处在包络线的过零点,最后只剩下频谱中的直流分量。

如果周期T1逐步增加,当T1等于2倍的τ,此时,所有2的倍数谐波都恰好位于包络线的过零点,所以只剩下奇次谐波。这种信号被称为奇谐信号。

当占空比继续减小,周期和信号宽度的比值为3的时候,所有三的倍数谐波都消失了。对于占空比为四分之一的时候,四的倍数谐波也消失了。占空比为五分之一,五的倍数谐波也消失了。六次的情况也一样。

反过来,当占空比变成了三分之二,实际上它等于直流信号减去占空比为三分之一的方波,所以对应的三次谐波也不存在。由此可见,只要周期与脉冲宽度为整数,或者有理数的时候,总是会有某种谐波消失。这种规律也可以用于设计信号波形。

比如,要求信号中所有三次谐波都消失,此时对应的信号可以是占空比为三分之一,或者三分之二的方波信号。这是占空比为四分之三的方波信号,可以看到对应的四的倍数谐波也都消失了。这是占空比为八分之七方波,所有八次谐波都消失了。以上是理论计算的结果。下面通过示波器和频谱仪来观察一下实际的信号波形和频谱。

二、实际波形

这是信号源DG1062产生的占空比为三分之一的周期方波信号,信号的频率为1MHz,频谱仪DSA815显示了20MHz之内的信号频谱。可以看到,其中存在着1、2、4、5、7等等谐波。所有三的倍数谐波都不存在。

将信号的占空比修改为50%,对应信号的频谱中则只有奇次谐波,所有偶次谐波都不存在。将信号的占空比修改为三分之二,可以看到它的谐波分布,与占空比为三分之一相同,都没有三次谐波。它们相当于反相,所以交流分量是相同的。




三、作业题目

在第五次信号与系统作业中,有两个信号谐波分析的题目。第一个题目是在已知周期方波信号的三的倍数谐波都不存在的情况下,求信号的平均值。根据前面分析,此时信号的占空比要么是三分之一,要么是三分之二,由此,再根据信号的峰值便可以得到信号的平均值。

第二个题目,是已知信号的二次和三次以及对应的倍数谐波不存在。求信号的波形。实际上就是将占空比为三分之一的方波减去占空比为三分之二的方波即可。因此此时,对应的信号恰好满足奇谐对称的条件。

这里是DG1062产生的两个矩形脉冲。一个占空比为三分之一,一个占空比为三分之二。将它们通过电阻叠加在一起。下面青色波形显示的是叠加后的信号波形。频谱仪测量叠加后的信号的频谱。可以看到其中所有2的倍数,3的倍数的谐波都不存在了。特别是,2和3的共同倍数的谐波,残存的特别少。只是2倍频率谐波,在高频处还是有些残存。


总结

本文分析了周期矩形信号谐波与波形占空比之间的关系。通过示波器和频谱仪实际观察了信号的频谱,结果与理论分析是一致的。


图2.1 没有2次三次谐波的频谱

此外,文章还提供了Python代码示例,帮助读者更好地理解和应用相关知识:

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2024-03-30
#
# Note:
#============================================================
from headm import *
from tsmodule.tsvisa        import *
dsa815open()
s,f = dsa815readresult()
plt.plot(f, s, lw=3)
plt.xlabel("Frequency(Hz)")
plt.ylabel("Spectrum(dB)")
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号