View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from

Be the first to rate this file! 3 Downloads (last 30 days) File Size: 2.66 KB File ID: #41913 Version: 1.0




Near Instantaneously Companded Audio Multiplex

| Watch this File

File Information

Although NICAM is now defunct technology, it is still an interesting and compact method of audio bit rate reduction, that may provide an introduction to more advanced bit rate reduction strategies such as those found in MPEG.

y = NICAM(x,fs)
[y,x14] = NICAM(...)

y = NICAM(x,fs) applies the NICAM audio bit-rate reduction algorithm to the input column vector or matrix x sampled at fs Hz. If x is a matrix, then the NICAM algorithm is applied down the columns of x. The input x should be in the range [-1,1]. The NICAM algorithm has the following steps:

1. Convert samples to 14-bit accuracy.
2. Divide the signal into 1 ms frames.
3. Define the "coding range" for each frame from the largest (absolute) sample in the frame.
4. Remove a number of LSBs for each sample in a frame according to the coding range for the frame. The number of LSBs is:
  - 4 if coding range 1 (max abs amplitude is 1XXXXXXXXXXXXX);
  - 3 if coding range 2 (max abs amplitude is 01XXXXXXXXXXXX);
  - 2 if coding range 3 (max abs amplitude is 001XXXXXXXXXXX);
  - 1 if coding range 4 (max abs amplitude is 0001XXXXXXXXXX);
  - 0 if coding range 5 (max abs amplitude is 00001XXXXXXXXX).
  (Note that this notation uses binary integer rather than twos complement)
5. Removed bits are replaces with intermediate values and samples are converted back to 14-bit.

[y,x14] = NICAM(...) returns the 14-bit version of the input. The algorithm re-dithers the audio, using TPDF dither, before it is companded to 14-bit resolution.

MATLAB release MATLAB 8.0 (R2012b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.

Contact us