How to Find Bit Error Rate for an Image?

37 views (last 30 days)
ahmed alshammari
ahmed alshammari on 5 Apr 2012
Edited: Walter Roberson on 12 Jun 2020
I am working in a project and I do not know how to get the BER between my orignal image and the one received.
so basically If do this
I should get zero ber but this method is not working for me and i am getting an error message. Can somebody help please.
ahmed alshammari
ahmed alshammari on 10 Apr 2012
??? Error using ==> de2bi at 159
Specified number of columns must be scalar.
Error in ==> biterr>toBinary at 299
b = de2bi(a(:), num_bits);
Error in ==> biterr at 216
a2 = toBinary(a, num_bits);
Error in ==> untitled2 at 6
I do not have the first three commands in my code I do not know where matlab brought them from. and the pictures are same size because they are the same <540*720*3 unit8>. Please help me if you know any other way to find bit error rate for 2 similar jpg images.

Sign in to comment.

Answers (1)

Tasos Giannoulis
Tasos Giannoulis on 27 Jan 2017
You are receiving this error because your inputs are 3-dimensional, while BITERR works at most with 2-D data.
More important, BITERR works with the equivalent binary representation. For example,
>> biterr(8, 7)
ans =
because 8 = 1000 and 7 = 0111, therefore all 4 bits are different.
Is this what you want? Or do you want to count the number of "pixels" that are different? If your goal is the latter, then you can use this code:
>> sum( sum( A ~= B ) ) / numel(A)
which counts the number of differing numbers and calculates their ratio.
  1 Comment
ARUN SANKARAN on 9 Jun 2020
Can u send me the complete codes ?
Thx you...

Sign in to comment.


Find more on Get Started with Communications Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!