Modulate a sine wave after quantizing it
1 次查看(过去 30 天)
显示 更早的评论
Help! I am trying to modulate a sine wave after quantizing it, but keep getting an error. =================================
t = [0:.1:2*pi]; % Times at which to sample the sine function
sig = sin(t); % Original signal, a sine wave
partition = [-1:2/15:1]; % Length 15, to represent 16 intervals
codebook = [-1.2:2/15:1]; % Length 16, one entry for each interval
[index,quants] = quantiz(sig,partition,codebook); % Quantize.
plot(t,sig,'x',t,quants,'.')
legend('Original signal','Quantized signal');
axis([-.2 7 -1.2 1.2])
M=16;
y=qammod(quants,M)
==============
??? Error using ==> qammod at 39
Elements of input X must be integers in the range [0, M-1].
>>
I checked the max and min value of quants and found it to be:
>> max(quants)= 0.8000
>> min(quants)= -1
Is there some way i can scale quants so I get in the specified range?
0 个评论
采纳的回答
Walter Roberson
2011-3-20
No. You need to fix your codebook. Your codebook must be integers from 0 to M-1 .
2 个评论
Walter Roberson
2011-3-21
You haven't read the quantiz documentation carefully enough, which has been the source of your problem for several days. The last quantization index will only be used if the signal *exceeds* the last partition parameter, which has never been the case in your calculation as your maximum signal value _equals_ the last partition parameter.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Modulation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!