【信号获取】获取一个实信号的谐波(Matlab实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

一、引言 在信号处理领域,实信号广泛存在于众多工程应用和自然现象观测中,如电力系统中的电流电压信号、音频信号以及各种传感器采集的物理量对应的电信号等。而实信号中往往包含着谐波成分,获取这些谐波对于深入理解信号特性、分析系统状态以及进行相关的故障诊断、优化设计等工作有着至关重要的作用。

 二、谐波基本概念 谐波是指对周期性的非正弦电量进行傅里叶级数分解后,得到频率为基波频率整数倍的各次分量。例如,对于一个频率为$f_0$的基波信号,其二次谐波的频率就是$2f_0$,三次谐波频率为$3f_0$等等。这些谐波与基波共同构成了复杂的实信号,它们携带了不同的信息,可能反映出信号产生源的非线性特性、系统中的干扰因素或者是一些潜在的异常情况。

三、获取谐波的常见方法 1. 傅里叶变换方法 :傅里叶变换是分析信号频谱的基础工具,离散傅里叶变换(DFT)及其快速算法快速傅里叶变换(FFT)在实际应用中最为常用。通过对实信号进行离散采样后,应用FFT算法,可以将时域的实信号转换到频域,得到信号的频谱分布,进而清晰地识别出各个谐波分量的频率、幅值以及相位信息。这种方法计算效率相对较高,能够快速地对较长时间段内的信号进行谐波分析,适用于各种数字化的信号处理场景。 2. 小波变换方法:小波变换能够提供时频局部化分析的能力,它可以根据信号的不同频率成分自适应地调整分析窗口的大小。对于包含突变、瞬态等复杂特性的实信号,小波变换可以更精细地捕捉到谐波的出现时刻以及其随时间变化的情况。通过选择合适的小波基函数,对实信号进行多尺度分解,从而提取出不同尺度下对应的谐波信息,在非平稳信号的谐波获取方面有着独特优势。 3. 滤波器组方法:可以设计一系列具有不同中心频率的滤波器,这些滤波器的中心频率按照谐波频率的规律进行设置,例如对应基波频率的整数倍。让实信号依次通过这些滤波器,就可以将相应频率的谐波分量从原始信号中分离出来,获取到每个谐波的时域波形,便于进一步观察和分析其具体的时域特性,常用于对特定谐波进行针对性研究或者需要实时获取谐波的场合。

 四、获取谐波的应用场景 1. 电力系统领域 在电力传输和分配过程中,电气设备产生的谐波会影响电能质量,通过获取电力信号中的谐波,可以监测设备运行状态、评估电网的稳定性,及时发现如变压器饱和、非线性负载等问题导致的谐波畸变,进而采取相应的治理措施来保障电力系统的正常供电。 2. **音频处理领域** 乐器演奏发出的声音信号、语音信号等都包含谐波成分,获取这些谐波有助于分析音色特点、进行语音识别以及音频特效的制作等。不同乐器演奏同一音符时,其谐波成分的差异造就了独特的音色,利用谐波分析能够更好地进行音频的合成与优化。 3. **机械故障诊断领域** 机械系统在运转过程中,由于零部件的磨损、松动等故障情况,其振动信号会产生谐波变化。通过获取振动信号中的谐波,对比正常状态下的谐波特征,可以判断机械是否存在故障以及故障的具体位置和严重程度,实现早期预警和精准维护。 ### 五、总结 获取一个实信号的谐波是一项在多学科多领域都有着重要意义的工作,通过运用合适的方法准确提取谐波信息,并结合具体应用场景深入分析,可以为相关系统的优化、监测以及故障诊断等诸多方面提供有力的支持,并且随着信号处理技术的不断发展,获取谐波的手段也将更加精准、高效。

📚2 运行结果

主函数部分代码:

%demo
clc;
clear
a0=10;a1=5;a2=-4;a3=0;a4=-2;a5=0;
b1=-3;b2=15;b3=0;b4=0;b5=0;
w0=2; % a pulse (rd/s) of a signal y
pas=pi/10
t=0:pas:pi-pas; % in this examle a period is T=2pi/w0=2pi/2=pi
y=a0+a1*cos(w0*t)+b1*sin(w0*t)+a2*cos(2*w0*t)+b2*sin(2*w0*t)+a4*cos(4*w0*t);
%note that a wmax=4*w0=8rd/s which means that a sample pulse we must be
%>=2*wmax , we>= 16rd/s, then pas<= 2pi/16 (Shanon theorem)
plot(t,y);
[wc,w0,a0,ak,bk,c0,ck]=get_harmonics(y,pas);
figure;
stem(wc,abs(ck));
xlabel('pulse w(rd/s)');
ylabel('abs(C_k)')
title ('Amplitude spectrum')
[a0 ak(1:5) bk(1:5)]
%check the ak and bk

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]田先洋,郑泽希,陶嘉庆,等.基于Blinn-Phong技术的颈部弱脉搏振动连续拍照法获取脉搏波信号[J].北京生物医学工程,2024,43(05):486-492+519.

[2]孟庆增,任宗金,李新阳,等.压电力传感器信号处理与采集系统设计[J].仪表技术与传感器,2024,(09):13-17.

🌈4 Matlab代码实现

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值