xiangyuecn/Recorder

关于信号处理方法的两个小问题

Open

#161 ouverte le 21 mai 2022

Voir sur GitHub
 (3 commentaires) (0 réactions) (0 assignés)JavaScript (1 096 forks)github user discovery
good first issue

Métriques du dépôt

Stars
 (5 608 stars)
Métriques de merge PR
 (Métriques PR en attente)

Description

1. Recorder.SampleData() (1) 命名建议:这个方法的功能相当于是重采样,而且本质上只会降低采样率,建议改名为ResampleData/DownsampleData更合适。 (2) 现在的的降低采样率实现方式只是按比例舍弃采样(decimation),但是从信号处理的角度,单纯这样做的话会有aliasing effect(混叠),引起严重失真(注意,此现象并非由于采样点减少本身导致的音质变差)。标准的降低采样率方式应当在处理之前加入低通滤波过程。如采样比非整数,则应先提高采样率再降低采样率。参见https://zh.wikipedia.org/zh-my/%E9%99%8D%E9%87%87%E6%A0%B7

2. pcmAbsSum 目前音量显示用信号绝对值之和的平均值,此方法据我所知并非标准做法,而且不反映能量/功率(power)。常规处理方式是用信号平方和的平均值(或者最后开个平方得到方均根RMS,与最大值的比值就是平均振幅百分比)来表示能量(与感知的音量直接相关,与标准值作比再取对数就可以得到分贝值)。如果此操作不是特别占用计算能力,建议考虑适当修改。

Guide contributeur