Changing intensities (dB) of a sound file at certain frequencies?
19 ビュー (過去 30 日間)
古いコメントを表示
Is there a way to parse through a sound file (in .wav format) and adjust (increase/decrease) its intensity in decibels at certain frequencies? I have tried to do FFT to get the frequency domain, then adjusting the magnitude of the soundfile by multiplying with a constant value. Then use ifft to return to the time domain.
[y1, Fs] = audioread('sound.wav');
Y = fft(y1);
% decrease intensity of lower frequencies
Y(1:1000)= Y(1:1000) .* 0.25;
y2 = ifft(Y);
soundsc(y2, Fs);
This does not work and gives the error : "Error using soundsc (line 25) Audio data must be real and floating point."
Here is an example of what I want to do in Matlab (0:50 - 1:20): https://youtu.be/YantpouC4Mk?t=50
Any help is appreciated, thanks in advanced!
1 件のコメント
Adam
2016 年 6 月 15 日
If you don't alter the negative frequencies equally with the positive ones you will end up with a complex result when you use iift to return to the time domain.
採用された回答
Star Strider
2016 年 6 月 15 日
See my Answer to your duplicate Question on this topic: http://www.mathworks.com/matlabcentral/answers/290073-amplify-and-dampen-certain-frequencies
0 件のコメント
その他の回答 (1 件)
Sachin Shrestha
2016 年 6 月 15 日
Hi Sven,
Regarding your error, you could listen to the audio by simply changing the last line of the code from
soundsc(y2, Fs);
to
soundsc(real(y2), Fs);
You may proceed with your testings now.
Hope this will help. Good Luck!
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Audio Processing Algorithm Design についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!