What is wrong with this code, please help!
    조회 수: 8 (최근 30일)
  
       이전 댓글 표시
    
>> t = [0:.1:2*pi]; % Times at which to sample the sine function
sig = sin(t); % Original signal, a sine wave
partition = [-1:.2:1]; % Length 11, to represent 12 intervals
codebook = [-1.2:.2:1]; % Length 12, 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 = 4;
>> y = dpskmod(quants,M,pi / 8 ) ;
but i still keep getting the error
??? Error using ==> dpskmod at 41
Elements of input X must be integers in the range [0, M-1].
댓글 수: 0
채택된 답변
  Walter Roberson
      
      
 2011년 3월 13일
        Your codebook needs to be 0:3 (the integers) if you want to use M=4. However, you are quantizing into 12 bins that you presumably want to distinguish, and that implies 0:11 for the codebook and M=12.
댓글 수: 4
  Walter Roberson
      
      
 2011년 3월 14일
				No, just a quantized version.
You quantized at particular locations. Those are, I suspect (but have not looked), hard edges -- anything up to (and maybe equal to) the value gets put in to that bin (if not already in a previous bin.) So to reconstruct, you could take a representative value of each quantization bin (min, max, value at the half-way point, whatever) and put those in an array. Index the array by 1 plus the symbol number (which starts at 0) to get the representative values approximating the signal.
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Transforms에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

