Why standard Waveform from audio out gets distorted when i reduce the amplitude?

In my attempt to generate a standard sine wave out of a sound card, i started using matlab which has a function soundsc for scaling the output
t = 0:1/48000:10;
y = sin(1000*2*pi*t);
soundsc(y,48000,[a b]);
its ok when my a and b are -1 and 1 respectively, when i try to make them even -0.9 and 0.9 respectively the standard sine wave of 1Khz gets distorted why so ?
are our sound cards will not be able to handle standard sounds ??

 Respuesta aceptada

Shyam,
The reason for this distortion is that some of the signal values are being clipped. When you specify [a, b], it is assumed that signal you are attempting to playback has values in the range [a, b] and it allows you to scale it to the the range [-1, 1].
In your case, the signal "y" has values in the range [-1, 1] and by specifying [a, b] t be [-0.9 0.9], the values between [-0.9 0.9] in "y" are being scaled to [-1 1]. Values greater than 0.9 are scaled out of range and hence clipped.
The help for the soundsc function makes this clear.
Dinesh

2 comentarios

thanks i understood,but i have tried with some other experiment like replacing the y=sin(..) line with y = 0.5 sine(..) but the output was not halved but its response was not linear what may be the problem ?
I am not sure I understand your question.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Audio I/O and Waveform Generation en Centro de ayuda y File Exchange.

Preguntada:

el 28 de Jul. de 2015

Comentada:

el 28 de Jul. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by