Detect the error position in a vector and correct it (Matlab)
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Afluo Raoual
el 18 de Mzo. de 2021
Comentada: Afluo Raoual
el 18 de Mzo. de 2021
Dear members;
I have the code word C of length 'M' and I have also the received vector V after decoding of the same length 'M' as C
For example:
V=[1 0 0 1 0 1 0 1 0 0]
C=[1 1 0 1 0 0 0 1 0 0]
I want firstly detecting the position of each bold bit of V and than correct it by adding 1 to those bits (because in mod2: 0+1=1 and 1+1=0) in order to obtain V=C
How can I do that please
4 comentarios
Adam Danz
el 18 de Mzo. de 2021
> I want firstly detecting the position of each bold bit of V
Ah, so what you really want to do is find the index of the vector where V(i) is not equal to C(i).
Respuesta aceptada
Christopher McCausland
el 18 de Mzo. de 2021
Hi Afluo,
You can try something like the below to assess where the diffrences between the arrays are; after this just cycle to these locations and change the value as you need.
I hope this helps,
Christopher
V=[1 0 0 1 0 1 0 1 0 0]
C=[1 1 0 1 0 0 0 1 0 0]
diff_Check = V ~= C;
4 comentarios
Adam Danz
el 18 de Mzo. de 2021
Editada: Adam Danz
el 18 de Mzo. de 2021
I agree with Christopher McCausland , this does describe what you want to do but is missing the final step which is quite straightforward and something you could fill in yourself,
V=[1 0 0 1 0 1 0 1 0 0];
C=[1 1 0 1 0 0 0 1 0 0];
V(V~=C) = V(V~=C) + 1;
mod(V,2)
Más respuestas (0)
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!