[討論] 關於聲音pre-emphasis問題已回收

看板MATLAB作者 (wweerr1210)時間15年前 (2010/12/13 16:21), 編輯推噓0(0016)
留言16則, 2人參與, 最新討論串1/1
讀Wav檔後進行分割音框 waveFile='D:\wav\w01.wav'; [y, fs, nbits]=wavread(waveFile); w = buffer(y, 240, 120, 'nodelay'); 下一步進行pre-emphasis部分 公式 y[0]=x[0] y[n]=x[n]-0.95x[n] 我的寫法 a=0.95 P=(w(2)-a*w(2)) 這樣好像只計算w(2)數值 我要怎麼改成w[240]計算 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.101.58.9

12/13 16:27, , 1F
應該是說我要怎麼計算一個音框
12/13 16:27, 1F

12/13 17:02, , 2F
y進來就先預強調 yy=([1 -0.95],1,y); 之後再buffer(yy)
12/13 17:02, 2F

12/13 17:19, , 3F
只接再a=0.95 加寫yy=([1 -a],1,y);
12/13 17:19, 3F

12/13 17:20, , 4F
buffer(yy)=w[1]-a*w[1] 這是我目前想到的寫法
12/13 17:20, 4F

12/13 17:22, , 5F
W[1]是想計算[1]中240個數值的預強調
12/13 17:22, 5F

12/13 17:44, , 6F
請問一下 加這行yy=filter([1 -a],1,y); 是要表達什麼意
12/13 17:44, 6F

12/13 18:16, , 7F
yy就是預強調過後的語音信號, 所以buffer完後不用再處理了
12/13 18:16, 7F

12/13 18:21, , 8F
請問我程式寫法對嗎
12/13 18:21, 8F

12/13 18:22, , 9F
waveFile='D:\wav\w01.wav';
12/13 18:22, 9F

12/13 18:22, , 10F
[y, fs, nbits]=wavread(waveFile);
12/13 18:22, 10F

12/13 18:23, , 11F
w = buffer(y, 240, 120, 'nodelay');
12/13 18:23, 11F

12/13 18:23, , 12F
a=0.95
12/13 18:23, 12F

12/13 18:24, , 13F
yy=filter([1 -a],1,y);
12/13 18:24, 13F

12/13 18:24, , 14F
buffer(yy)=w[1]-a*w[1]
12/13 18:24, 14F

12/13 18:26, , 15F
前兩行相同; 然後 yy=filter([1 -a],1,y);
12/13 18:26, 15F

12/13 18:26, , 16F
w=buffer(yy, 240, 120, 'nodelay'); 就結束了
12/13 18:26, 16F
文章代碼(AID): #1D1TUFRR (MATLAB)