How to quantise a sin wave with amplitude between -1 to 1?

1 view (last 30 days)
I have to quantise a continuous sin wave into a 16 bit signal and obtain the vector of the quantised signals in the binary form? How to get the binary of a decimal number which might be negative. Can anyone provide me with the code snippet for that?

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 7 Feb 2014
ts=0.01 % sample time
t=0:ts:10; % time vector
y=sin(t); % your signal
pas=(1-(-1))/(2^15-1) % quantization interval
ye=round(y/pas)
s=sign(ye')
s(s<=0)=0
yq=[num2str(s) dec2bin(abs(ye))] % use the first bit to define positive and negative numbers
  2 Comments
Sarah Ghosh
Sarah Ghosh on 9 Feb 2014
Thanks a lot for the answer. Now, I need each of those 15 bits as the output. How do I do that?
Azzi Abdelmalek
Azzi Abdelmalek on 9 Feb 2014
Sarah, if you have another question, post a new one and make it as clear as possible

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 7 Feb 2014
Edited: Walter Roberson on 7 Feb 2014
dec2bin(typecast(int16(floor(sin(t) * 32767)), 'uint16'), 16) - '0'

Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!