Clipping an audio signal

2 Ansichten (letzte 30 Tage)
MR T
MR T am 12 Dez. 2016
Beantwortet: Greg Dionne am 12 Dez. 2016
I want to clip an audio signal X like this :
X(X>=(max(X)-0.5)) = max(X)-0.5;
X(X<=(min(X)+0.5)) = min(X)+0.5;
But with a for-loop. I've written this:
for k = 1:length(X)
if X(k)>=(max(X)-0.5)
X(k) = max(X)-0.5;
elseif X(k)<=(min(X)+0.5)
X(k) = min(X)+0.5;
end
end
But it does not seem to do the same thing. What am I doing wrong?

Antworten (1)

Greg Dionne
Greg Dionne am 12 Dez. 2016
You're clobbering the values in your for-loop. Try defining maxX = max(X) and minX = min(X) before modifying X.

Kategorien

Mehr zu Audio I/O and Waveform Generation finden Sie in Help 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