Question
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 ??
Expert Answer
Neeta Dsouza
PhD Expert
Answered Aug 13, 2026
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.
100% Run Guarantee
3-Hour Fast-Track Delivery
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here
Related matlab Questions & Solutions
Browse All →
Explore similar technical troubleshooting questions and verified MATLAB solutions:
Ready-to-Run MATLAB & Simulink Projects
Browse All Projects →