网站首页 > 技术文章 正文
1. 补偿系数
前面文章已经讲过信号加入窗函数可以减少频谱的泄露,但是加入窗函数后会引起信号值的衰减,此时需要对信号值进行修正。如下图是幅值为3,频率为80Hz的一个正弦信号。
对该信号加入汉宁窗作fft变换,此时频谱曲线如下图所示:
如果我们只关心信号的幅值,此时需要采用的是幅值修正,此时从图中可看出应该在200Hz处应该乘以2。
如果此时采用能量修正的话,此时正弦信号的所有能量:
此时信号需要修正的系数是:
常用的窗函数的幅值和能量修正系数如下表格所示,表格中的点数为1024:
窗函数 | 幅值系数 | 能量系数 |
矩形窗 | 1 | 1 |
汉宁窗 | 2 | 1.6338 |
汉明窗 | 1.8516 | 1.5863 |
三角窗 | 1.998 | 1.7312 |
高斯窗 | 2.401 | 1.8399 |
布莱克曼窗 | 2.3810 | 1.8119 |
Matlab代码实现:
clc
clear all
N=1024;
w=hann(N);
fAmp=sum(w);
fAmp=1.0/(fAmp/(N))
psdscale=w'*w;
psdscale=1.0/(psdscale/(N));
psdcsale=sqrt(psdscale)
2.主瓣
窗函数除了修正系数,还需要关注主瓣宽度等参数。
在这里主瓣分为两种,一种是主瓣带宽(ENBW),还有一种是主瓣3dB带宽。
主瓣3dB带宽一般指的是窗的频谱,指的是频谱峰值的半功率带,一般就是指的是峰值的处的带宽。
主瓣带宽即等效噪声带宽(ENBW),指的是双边的噪声带宽。
Pxx = periodogram(x,hanning(length(x)),[],Fs,'centered','psd');
Sxx = periodogram(x,hanning(length(x)),[],Fs,'centered','power');
plot(1:1:N,Sxx./Pxx)
在Matlab中代码实现,ENBW代表的信号的功率谱密度函数与能量的比值或者直接用ENBW函数。
当信号通过幅值系数修正后,窗函数的能量与实际信号的比值的系数:
以上图中80Hz幅值为3的正弦信号,经汉宁窗后,此时对信号进行幅值比例系数调整,将幅值都乘以2:
此时:
即。
3.栅栏效应
除了信号存在泄露原因外,由于傅里叶频谱变换是离散的,当信号的频率不存在频率分辨率上,此时信号的能量就会在频率左右的谱线。比如当点数为1024,采样率是1024时,此时频率分辨率是1Hz,当频率80.5Hz,幅值为3的正弦信号经过矩形窗时,此时对信号作频谱变换,此时的频谱为:
从图中可以明显看出80.5Hz的正弦信号分布到80Hz与81Hz的谱线上,该现象存在栅栏现象。当信号频率不同,频率分辨率不同时,信号的幅值误差即栅栏损失是不同的。当信号的频率在谱线中间时,栅栏损失是最大的即幅值误差最大。
最高旁瓣,旁瓣衰减
最高旁瓣指的是最大边瓣的幅值,边瓣衰减指的是边瓣谱峰渐进衰减速度。如图所示。
常用窗函数的参数如下图所示:
窗函数 | 主瓣 ENBW | 主瓣 3dB带宽 | 最大幅值误差(栅栏损失)(dB) | 最高旁瓣/dB | 旁瓣衰减/每倍频程 |
矩形窗 | 1 | 0.89 | -3.92(36.3%) | -13 | -6dB |
汉宁窗 | 1.5 | 1.44 | -1.42(15.1%) | -32 | -18dB |
汉明窗 | 1.36 | 1.3 | -1.78(20.6%) | -43 | -6dB |
布莱克曼窗 | 1.73 | 1.68 | -1.10(12.5%) | -58 | -18dB |
猜你喜欢
- 2024-12-18 深度学习工程师必看:更简单的超分辨重构方法拿走不谢
- 2024-12-18 机器学习:理解损失和损失函数 损失函数是干嘛的
- 2024-12-18 NeurIPS 2024 | 大模型的词表大小,同样适用于Scaling Law
- 2024-12-18 CLIP微调简明教程 微调怎么调
- 2024-12-18 一文读懂线性回归、岭回归和Lasso回归
- 2024-12-18 大模型预训练的降本增效之路——从信息密度出发
- 2024-12-18 大模型:BERT模型和GPT模型的损失函数
- 2024-12-18 ISO随便开!神经网络学习降噪算法解析
- 2024-12-18 20K star!搞定 LLM 微调的开源利器
- 2024-12-18 “升维的降维打击”-参数训练的驻点分析
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)