分贝,功率,功率谱,功率谱密度,信噪比

分贝,能量,功率,功率谱,功率谱密度,信噪比

  • 分贝:(decibel,/'dɛsɪ.bɛl/,用dB表示)是量度两个相同单位之数量比例的计量单位,主要用于度量声音强度。“分”(deci-)指十分之一,个位是“贝”(bel),一般只采用分贝。分贝是以美国发明家亚历山大·格雷厄姆·贝尔(Alexander Graham Bell)的名字命名的。
    贝尔(B),即1B = 10dB

  • 功率和分贝的关系:分贝是描述功率增益的单位,表示一个相对值。当bai计算A的功率比B大多少dB时,采用公式10lg(A/B)计算。例du如:A功率比B功率大一倍,则10lg(A/B)=10lg2=3dB,也就是说,A的功率比B的功率大3dB。

  • 能量谱也叫能量谱密度,能量谱密度描述了信号或时间序列的能量如果随频率分布。能量谱是原信号 FFT 变换的平方。(所有周期信号都是功率信号,所有有限数量的脉冲信号都是能量信号。)

  • 功率谱:信号在每个频率分量上的功率。(频谱其实是一个幅度谱,表示信号在各个分量上的幅度值)
    功率谱:信号先自相关再作FFT。
    频谱:信号直接做FFT。

  • 功率谱和功率谱密度是不同的。若能量为E,时间为T,频带为F,则功率谱是表示为E/T;而功率谱密度是表示为E/T/F。所以它们的量纲和单位是不同的,表示了不同的物理量。功率谱密度表是单位频率的功率。功率谱密度定义为单位频带内的信号功率。它表示了信号功率随着频率的变化情况,即信号功率在频域的分布状况。功率谱表示了信号功率随着频率的变化关系。但有些地方又把功率谱当作功率谱密度的简称,所以易混淆。
    例如,matlab里:
    功率谱表示为: Pw=abs(fft(x)).^2/N
    而功率谱密度表示为:psd = abs(fft(x)).^2/length(x)/fs;
    当length(x)=N时为:psd = abs(fft(x)).^2/N/fs;

  • 功率谱密度:
    信号的功率谱密度当且仅当信号是广义的平稳过程的时候才存在。如果信号不是平稳过程,那么自相关函数一定是两个变量的函数,这样就不存在功率谱密度,但是可以使用类似的技术估计时变谱密度。
    f(t) 的谱密度和 f(t) 的自相关组成一个傅里叶变换对(对于功率谱密度和能量谱密度来说,使用着不同的自相关函数定义)。
    通常使用傅里叶变换技术估计谱密度,但是也可以使用如Welch法(Welch’s method)和最大熵这样的技术。
    傅里叶分析的结果之一就是Parseval(帕塞瓦尔)定理(Parseval’s theorem,其有时也被称为瑞利能量定理,Rayleigh’s energy theorem),这个定理表明函数平方的和(或积分),也就是其能量,等于其傅里叶转换式平方之和(或者积分):
    在这里插入图片描述
    其中 X(f) = F.T. { x(t) } 为x(t) 的连续傅立叶变换,f 是 x 的频率分量。
    上面的定理在离散情况下也是成立的 (DTFT 和 DFT)。另外的一个结论是功率谱密度下总的功率与对应的总的平均信号功率相等,它是逐渐趋近于零的自相关函数。

总结:
在这里插入图片描述
对于能量信号和周期信号,其傅里叶变换收敛,因此可用频谱Spectrum来描述;
对于随机信号,傅里叶变换不收敛,因此不能用频谱描述,而用功率谱Power Spectrum;
因此不严谨的说,功率谱可以看作是随机信号的频谱。

  • 信噪比
    信号功率/噪声功率
    信号功率:时域幅度的平方,频域幅度的平方都行(帕斯瓦尔定理)
    在这里插入图片描述

补充:以音频信号为例
用audition打开一段音频信号
在这里插入图片描述
区域一:该音频的振幅的详细信息(峰值幅度、采样值、RMS振幅等)
区域二:音频左右声道的波形
区域三:音频的输入电平

这里需要明确的概念:
人类一般可以接受的声音在0-70dB,这里为什么分贝值是负的?
回顾一下分贝的概念:通常表示两个信号在功率或强度方面的相对差别。

响度 = 能量 / 时间*面积 = 功率 / 面积 (瓦/m^2)

以声响做单位时计算分贝的公式:
dB = 10*log(x/y)

以声压做单位时计算分贝的公式,此时单位为Pa:
W/m^2 dB = 10log(x/y) ^2 = 20log(x/y)

有关分贝的名词很多,如:dBSPL,dBu,dBVU,dBFS;我们通常讲到的分贝,就是dBSPL(Sound Pressure Levels。dBFS(全分贝刻度),是一种为数字音频设备创立的分贝值表示方法。参考值就是最大值,即y = x_max ,所以10*log(x_max / x_max ) = 0,就是说0dBFS就是数字音频设备能够达到的最高响度水平。这也就是为什么分贝值是负的,最大值就是0。

例子:以精度为16bit语音为例,采样信号的最大值就是65536,分贝计算:dBFS = 20log(x / 65536 )
20
log(1 / 65536 ) = -96dBFS
20*log(65536 / 65536 ) = 0dBFS
所以该信号输出电平为-96~0dBFS。

  • 20
    点赞
  • 139
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
MATLAB实现谱减法去噪信噪比的步骤如下: 1. 获取输入信号的噪声能量:首先,通过计算输入信号的功率谱密度或能量谱密度来获取信号的噪声能量。 2. 获取估计信号的能量:使用谱减法算法对输入信号进行处理,得到估计信号。然后,计算估计信号的功率谱密度或能量谱密度,以获取估计信号的能量。 3. 计算信噪比:将估计信号的能量除以噪声能量,得到信噪比。 MATLAB中可以使用以下函数来实现以上步骤: - `pwelch`函数用于计算信号的功率谱密度或能量谱密度。 - `db2pow`函数用于将分贝单位的功率转换为线性单位的功率。 - `mag2db`函数用于将线性单位的功率转换为分贝单位的功率。 具体的MATLAB代码如下所示: ```matlab % 输入信号 input_signal = % 输入信号数据 % 噪声信号 noise_signal = % 噪声信号数据 % 采样率 fs = % 采样率 % 计算输入信号的功率谱密度 [P_input, ~] = pwelch(input_signal, [], [], [], fs); % 计算噪声信号的功率谱密度 [P_noise, ~] = pwelch(noise_signal, [], [], [], fs); % 计算输入信号的噪声能量 noise_energy = sum(P_noise); % 使用谱减法算法对输入信号进行处理,得到估计信号 % 估计信号的处理过程略 % 计算估计信号的功率谱密度 [P_estimate, ~] = pwelch(estimate_signal, [], [], [], fs); % 计算估计信号的能量 estimate_energy = sum(P_estimate); % 计算信噪比 SNR = estimate_energy / noise_energy; % 打印信噪比结果 fprintf('信噪比:%.2f dB\n', mag2db(SNR)); ``` 以上代码中的`input_signal`和`noise_signal`为输入信号和噪声信号的数据,`fs`为采样率。其中,`pwelch`函数的输入参数可根据具体情况进行设置,例如,窗长、重叠等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值