What is wrong with this code, please help!

this is the code to qam modulate a quantized sine wave, for some reason i get only 15 constellation points instead of 16.
==================================================================
t = 0:.001:2*pi; % Times at which to sample the sine function
sig = sin(2*t); % Original signal, a sine wave
partition = [-1:2/15:1]; % Length 16, to represent 17 intervals
codebook = [0:1:16]; % Length 17, one entry for each interval
quants= quantiz(sig,partition,codebook); % Quantize.
x=quants;
M = 16;
yy = qammod(x,M);
y = awgn(yy,10)
% demodulate
z = qamdemod(y,M);
plot(t,sig, 'cd', t,quants,'bo', t,z,'rx'),grid
legend('Original signal','Quantized signal','recovered signal');
scatterplot(y)
title('scatterplot QAM')

回答(1 个)

Your line
codebook = [0:1:16]; % Length 22, one entry for each interval
will only assign 17 values, not 22. This is right after your line
partition = [-1:2/15:1]; % Length 21, to represent 22 intervals
which only assigns 16 values...

7 个评论

Oops! that was a mistake in the comment only. I forgot to change it, what I actually meant was
partition = [-1:2/15:1]; % Length 16, to represent 17 intervals
codebook = [0:1:16]; % Length 16, one entry for each interval
codebook length is still 17 not 16
i tried codebook = [0:1:15] but it still only gives 15 points only :(
>> length([0:16])
ans =
17
i tried changing the codebook to [0:1:15], [0:16] etc, but nothing seems to work, i still have only 15 points :(
Are you referring to the groups of points in the scatterplot?
yes, there has to b 16 points, but i am getting only 15 points

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Test and Measurement 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by