How to add multiplicative noise to audio?

Hello everyone, I want to add multiplicative noise on top of the sounds. There is an example in the link attached to the picture. Can I add this code to my audio file in the same way?
J = imnoise(I,'speckle')
adds multiplicative noise using the equation J = I+n*I, where n is uniformly distributed random noise with mean 0 and variance 0.05.

 Accepted Answer

Jan
Jan on 31 May 2022
Edited: Jan on 31 May 2022
According to the name "multiplicative noise" I'd expect this to work also:
t = linspace(0, 5, 5 * 1000);
yourSound = sin(2 * pi * 8000 * t);
noise = randn(size(t)) * 0.05;
result = yourSound .* (1 + noise);

3 Comments

First of all, thank you very much for your answer. How do we know there is multiplicative noise here? my sound is available as a .wav file. For example, I downloaded the car noise from the internet as a .m file and added it to my sound file as follows.
randind = randi(numel(noise) - numel(audio),[1 1]);
noiseSegment = noise(randind : randind + numel(audio) - 1);
I do not understand, what this means: "How do we know there is multiplicative noise here?" The code I've posted creates multiplicative noise explicitly. So we know this, because we did this on purpose.
Additive noise means: output = signal + noise
Multiplicative noise means: output = signal * (1 + noise)
ı was confused. Now i understand. Thank you so much.

Sign in to comment.

More Answers (1)

Most image processing functions will also work with 1-D signals, as is the case with imnoise
v = 1 : 100;
vNoisy = imnoise(v, 'speckle', 2);

Categories

Find more on Measurements and Spatial Audio in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!