【调剂】北京石油化工学院2024年16个专业接受调剂
查看: 1591  |  回复: 15
【悬赏金币】回答本帖问题,作者沉默18将赠送您 20 个金币

沉默18

新虫 (职业作家)

[求助] matlab处理声音已有2人参与

利用matlab已经读出声音波形图,并用fft得到频谱图,请问我该怎么做才能得到声音的dB?谢谢各位

发自小木虫Android客户端
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

somomo91

专家顾问 (职业作家)

【答案】应助回帖

★ ★
jjdg: 金币+2, 感谢参与 2018-05-25 17:23:52
正常是
CODE:
Pref=20; % 20microPascal
Y = fft(y)
db = 20*log10((abs(Y)/Pref))

但有很多解释,比较啰嗦

或者你可以用最新的 MATLAB 2018A,语音处理工具箱 新添加了一个 splMeter ,专门量 spl 的,这个比较标准,最好用这个
2楼2018-05-23 02:19:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

沉默18

新虫 (职业作家)

引用回帖:
2楼: Originally posted by somomo91 at 2018-05-23 02:19:50
正常是

Pref=20; % 20microPascal
Y = fft(y)
db = 20*log10((abs(Y)/Pref))

但有很多解释,比较啰嗦

或者你可以用最新的 MATLAB 2018A,语音处理工具箱 新添加了一个 splMeter ,专门量 spl 的,这个比 ...

非常感谢您!Y=fft(y),Y不是是声压才可以用您下面那个分贝计算公式?您知道怎么才能得到声压吗?

发自小木虫Android客户端
3楼2018-05-23 08:34:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

somomo91

专家顾问 (职业作家)

【答案】应助回帖

引用回帖:
3楼: Originally posted by 沉默18 at 2018-05-23 08:34:24
非常感谢您!Y=fft(y),Y不是是声压才可以用您下面那个分贝计算公式?您知道怎么才能得到声压吗?
...

计算声压有很多方法,用FFT 也可以,或者用其他的 filter
通常,更好的是用  A-weighting
CODE:
AWeighting = weightingFilter('A-weighting', 48000)

我现在没法用MATLAB测试,你可以先试试这个例子,用 butter filter,
CODE:
[wav,fs_Hz]=audioread( "audiofile.wav");  %load the WAV file
my_cal_factor = 1.0;  %the value for your system to convert the WAV into Pascals
wav_Pa = wav * my_cal_factor;

%extract the envelope
smooth_sec = 0.125;  %"FAST" SPL is 1/8th of second.  "SLOW" is 1 second;
smooth_Hz = 1/smooth_sec;
[b,a]=butter(1,smooth_Hz/(fs_Hz/2),'low');  %design a Low-pass filter
wav_env_Pa = sqrt(filter(b,a,wav_Pa.^2));  %rectify, by squaring, and low-pass filter

%compute SPL
Pa_ref = 20e-6;  %reference pressure for SPL in Air
SPL_dB = 10.0*log10( (wav_env_Pa ./ Pa_ref).^2 ); % 10*log10 because signal is squared

%plot results
figure;
subplot(2,1,1);
t_sec = ([1:size(wav_Pa)]-1)/fs_Hz;
plot(t_sec,wav_Pa);
xlabel('Time (sec)');
ylabel('Pressure (Pa)');

subplot(2,1,2)
plot(t_sec,SPL_dB);
xlabel('Time (sec)');
ylabel('SPL (dB)');
yl=ylim;ylim(yl(2)+[-80 0]);

» 本帖已获得的红花(最新10朵)

4楼2018-05-23 14:58:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

沉默18

新虫 (职业作家)

送红花一朵
引用回帖:
4楼: Originally posted by somomo91 at 2018-05-23 14:58:15
计算声压有很多方法,用FFT 也可以,或者用其他的 filter
通常,更好的是用  A-weighting
AWeighting = weightingFilter('A-weighting', 48000)
我现在没法用MATLAB测试,你可以先试试这个例子,用 butter fil ...

谢谢,非常感谢您

发自小木虫Android客户端
5楼2018-05-23 16:50:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

沉默18

新虫 (职业作家)

引用回帖:
4楼: Originally posted by somomo91 at 2018-05-23 14:58:15
计算声压有很多方法,用FFT 也可以,或者用其他的 filter
通常,更好的是用  A-weighting
AWeighting = weightingFilter('A-weighting', 48000)
我现在没法用MATLAB测试,你可以先试试这个例子,用 butter fil ...

请问,怎么能得到横轴为频率,纵轴为db呢?

发自小木虫Android客户端
6楼2018-05-24 17:44:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qqinly

专家顾问 (著名写手)

至人无己,神人无功,圣人无名

【答案】应助回帖

引用回帖:
6楼: Originally posted by 沉默18 at 2018-05-24 17:44:43
请问,怎么能得到横轴为频率,纵轴为db呢?
...

dB 是个相对值,要看你以什么参考功率为基准,而绝对值是 dBm 和 dBW,参考功率分别为 mW 和 W ,举个例子:

matlab处理声音

效果如下:

matlab处理声音-1
学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
7楼2018-05-25 22:33:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

沉默18

新虫 (职业作家)

引用回帖:
7楼: Originally posted by qqinly at 2018-05-25 22:33:16
dB 是个相对值,要看你以什么参考功率为基准,而绝对值是 dBm 和 dBW,参考功率分别为 mW 和 W ,举个例子:



效果如下:

...

我现在只有声音文件,我需要以频率为横坐标,db(0-120)为纵坐标,做出他们的关系图。请问我该怎么做?

发自小木虫Android客户端
8楼2018-05-25 22:37:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qqinly

专家顾问 (著名写手)

至人无己,神人无功,圣人无名

【答案】应助回帖

引用回帖:
7楼: Originally posted by qqinly at 2018-05-25 22:33:16
dB 是个相对值,要看你以什么参考功率为基准,而绝对值是 dBm 和 dBW,参考功率分别为 mW 和 W ,举个例子:



效果如下:

...

再加一句,如果你的信号是用 ADC 这类器件采样得到的话,时域是用固定位宽来表示的,纵坐标则需要用 dBFS 和 dBm 或者 dBW 之间的关系换算一下:即要知道 dBFS 为 0 的时候的绝对功率,再根据采样得到的信号的位宽换算成对应的 dBm 或者 dBW 功率值
学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
9楼2018-05-25 22:39:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qqinly

专家顾问 (著名写手)

至人无己,神人无功,圣人无名

【答案】应助回帖

引用回帖:
8楼: Originally posted by 沉默18 at 2018-05-25 22:37:31
我现在只有声音文件,我需要以频率为横坐标,db(0-120)为纵坐标,做出他们的关系图。请问我该怎么做?
...

dB 是个相对值,要看你以什么参考功率为基准,你的参考功率是多少?dB 是个相对值!相对值!相对值!重要的话说三遍。慢慢研究,公式在这里:dB = 10*log10(power/参考功率)
学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
10楼2018-05-25 22:43:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 沉默18 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[教师之家] 国内科研环境差导致国内科研水平差的根源 +3 zju2000 2024-04-18 3/150 2024-04-19 21:46 by songwz
[找工作] 家乡二本高校/沿海传统私企,如何抉择? 10+6 化学巷 2024-04-15 15/750 2024-04-19 20:43 by jiayouqf7
[硕博家园] +5 s150535912 2024-04-18 6/300 2024-04-19 20:33 by s150535912
[论文投稿] 一审一个审稿人,小修,会怎么样呀? +9 林师妹 2024-04-18 9/450 2024-04-19 20:00 by nono2009
[教师之家] 美国教授开除中国研究生:我就不该录取你! +7 苏东坡二世 2024-04-15 7/350 2024-04-19 16:20 by feng6531
[基金申请] 下雨了 +13 zju2000 2024-04-16 19/950 2024-04-19 09:24 by duxin_30
[论文投稿] 求助 100+3 guhangyu 2024-04-15 3/150 2024-04-19 08:48 by bobvan
[考研] 267求调剂 +3 工科材料267 2024-04-15 3/150 2024-04-18 19:45 by lature00
[考研] 一志愿北化085600 328求线上调剂 +10 Mrshark 2024-04-13 10/500 2024-04-18 08:30 by 刘国宁
[有机交流] 怎么清洗烧瓶 20+5 ww34523 2024-04-16 6/300 2024-04-17 15:20 by 591950582
[考博] 25年申博求助,射频方向 +4 SherlockAH 2024-04-15 10/500 2024-04-16 18:06 by ljysudaee
[考研] 329求调剂 +6 Kaylawander 2024-04-13 7/350 2024-04-16 12:00 by 风来花开1
[考研] 320求调剂 +5 陆志伟 2024-04-15 5/250 2024-04-16 11:11 by 19862091
[考研] 296求调剂 +3 Cclocomotive 2024-04-16 4/200 2024-04-16 10:04 by 19862091
[考研] 求调剂 +4 桃岸雪 2024-04-15 5/250 2024-04-15 18:49 by mthwyj
[有机交流] 求乙二醇检测方法 13+3 YaShang 2024-04-14 4/200 2024-04-15 15:16 by Byltest
[考研] 322求调剂 +6 本己上岸 2024-04-15 7/350 2024-04-15 14:19 by mthwyj
[考研] 300求调剂 +5 @Xqy668800 2024-04-14 6/300 2024-04-14 23:03 by lincunhui
[考研] 290求调剂 +3 杨yhr 2024-04-14 5/250 2024-04-14 21:50 by coco1981
[考研] 086000生医没考数学304分,一志愿西农求调剂 +3 王有田有学上 2024-04-13 5/250 2024-04-13 16:18 by coco1981
信息提示
请填处理意见