MATLAB: Question about significancy of wavelet coefficients


I'm doing watermarking project based on discrete wavelet transform. According to various research paper i understand that, the watermark should be embedded into highest wavelet coefficients. Now consider some wavelet coefficients: 12, -23 ,34 ,-123,56 Can anybody tell me which are the three highest coefficients?
Thanks in advance.

Best Answer

  • Does this do what you want?
    coefficients = [12,-23,34,-123, 56];
    sortedCoefficients = sort(coefficients,'descend');
    topThree = sortedCoefficients(1:3)
    If you need the three highest by magnitude (e.g. -123 is the largest), then it's just a bit trickier:
    coefficients = [12,-23,34,-123, 56];
    [sortedCoefficients,sortingIndex] = sort(abs(coefficients),'descend');
    topThree = sign(coefficients(sortingIndex(1:3))).*sortedCoefficients(1:3)
  • Related Question