I am trying to distort an audio file. How can I adjust the amplitude of the waveform so that the peaks are all maximized to a predetermined value? The idea is to be able to manipulate the amplitude level and thus manipulate the level of distortion. I am using a .wav file.

 Akzeptierte Antwort

Anathea Pepperl
Anathea Pepperl am 10 Dez. 2014

0 Stimmen

I'm assuming that you are using a .wav file. First you will want to use wavread to read the audio data into Matlab. Then you could use logical indexing, like audio_data(audio_data > thresh) = max_value; in order to force values above a certain value.
You could also find peaks by finding where the derivative is 0 (use the second derivative to find if that value is a min or a max), and set the local maxima to your predetermined value.
Hope this helps!

Weitere Antworten (0)

Kategorien

Mehr zu Audio I/O and Waveform Generation finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by