What is wrong with this code, please help!
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
>> 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 commentaires
Réponse acceptée
Walter Roberson
le 13 Mar 2011
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 commentaires
Walter Roberson
le 14 Mar 2011
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.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Source Coding dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!