I have a 32768x2 double array that contains a 2 bit binary signal. I want to convert this 2 bit binary signal to a value between 1 and -1. For example:
01 ----- 1
00 ----- 0.5
10 ----- -0.5
11 ----- -1
I want to store the results in a 32768x1 array
Thank you

 Réponse acceptée

Deepak Kumar
Deepak Kumar le 10 Oct 2019
Modifié(e) : Deepak Kumar le 10 Oct 2019
Try the below code. It should work fine.
clc
clear all
a=your_array; %Assign your array to the vaiable 'a'
L=size(a,1);%Get number of rows in a
d=bi2de(a,'left-msb'); %Convert binary vectors to decimal numbers with 1st column as MSB. use, d=bi2de(a) if you want 1st column as LSB
for i=1:L
switch d(i)
case 1
b(i)=1;
case 0
b(i)=.5;
case 2
b(i)=-.5;
case 3
b(i)=-1;
end
end
b=b'; % Final answer

1 commentaire

Yusuf Dhoda
Yusuf Dhoda le 24 Oct 2019
Thank you very much for your help. The code worked well

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by