这个希尔伯特
函数查找有限数据块的精确分析信号。您还可以通过使用有限脉冲响应(FIR)希尔伯特变换器滤波器来计算虚部的近似值来生成分析信号。
生成一个由三个频率为203、721和1001 Hz的正弦波组成的序列。该序列在10 kHz下采样约1秒。使用希尔伯特
函数计算分析信号。在0.01秒和0.03秒之间绘制分析信号。
fs=1e4;t=0:1/fs:1;x=2.5+cos(2*pi*203*t)+sin(2*pi*721*t)+cos(2*pi*1001*t);y=hilbert(x);plot(t,real(y),t,imag(y))xlim([0.01 0.03])图例(“真的”,“想象的”)头衔(“希尔伯特函数”)xlabel(‘时间’)
计算原始序列和分析信号的功率谱密度的韦尔奇估计。将序列分成长度为256的汉明窗非重叠部分。验证分析信号在负频率下没有功率。
pwelch([x;y]),256,0,[],fs,“居中”)传奇(“原件”,“希尔伯特”)
使用设计过滤器
函数设计60阶希尔伯特变换FIR滤波器。指定400 Hz的过渡宽度。可视化滤波器的频率响应。
fo=60;d=designfilt(“希尔伯特菲尔”,“过滤器订单”,fo,...“过渡宽度”,400,“采样器”频率(d,1024,fs)
对正弦序列进行滤波,以近似分析信号的虚部。
hb=过滤器(d,x);
滤波器的群延迟,grd
,等于过滤器顺序的一半。补偿这一延误。取下第一个grd
虚部和末部的样本grd
真实部分和时间向量的样本。在0.01秒和0.03秒之间绘制结果。
grd=fo/2;y2=x(1:end grd)+1j*hb(grd+1:end);t2=t(1:终点grd);图(t2,real(y2),t2,imag(y2))xlim([0.01 0.03])图例(“真的”,“想象的”)头衔(“FIR滤波器”)xlabel(‘时间’)
估计近似分析信号的功率谱密度(PSD),并将其与希尔伯特
后果
pwelch([y;[y2零(1,grd)]),,256,0,[],fs,“居中”)传奇(“希尔伯特”,“FIR滤波器”)