CVSD Encoder Input Issues
Original Post: CVSD (SIG Forum) Date: 2000-01-31
Section 12.2 of Bluetooth Specification version 1.0 B states; "The input
to the CVSD encoder is 64k samples/s linear PCM."
However could you create the 64 kbit/s encoder output using just using
a 8k samples/s input? And if so would this creat issues in trying to recereate
the 8 ksample/s linear output from the decoder which is fed by 64
kbits/s?
Two slightly different views to approach this:
1
- As you have had a CODEC working at 8k samples/s, the input to the
CVSD encoder requires 64k sample/s. Remember the CVSD encoder generates 1
bit/sample. Hence the orignal samples at 8k samples/s must be interpolated to
64k samples/s. Thus also the output of the CVSD decoder must be decimated from
64k samples/s to 8k samples/s.
2
- You have a CODEC that takes 8ksamples/sec and generates 64kb/s. you
can sure use the CVSD encoder in cascade with your CODEC, but the problem here
is that you are (very likely) using a voice CODEC which introduces
non-linearities. But if your CODEC has an option of selecting linear coding,
then simply take the 64kb/s signal from your CODEC and feed it directly to the
CVSD encoder (assuming 1bit represents a sample).
-
- The CVSD decoder will then provide you with 64kb/s signal which can then be
used in your CODEC to generate the 8ksamples/sec signal. If your CODEC can't
perform linear (or uniform) quantization, you will have to use some mapping
(easy!) between the output of your CODEC and input to the CVSD encoder (See
conversion table from non-linear to linear codes in any text/handbook on voice
coding).
One key issue is the difference between BITS and SAMPLES. It is 64kb/s but 8k
samples/s. If there are 8 quantization levels, this is the same as saying
64kb/s. It all depends on the number of distinct levels the sample can
represent.
|