How to express or write short integers in MATLAB?

13 visualizaciones (últimos 30 días)
Imtiaz nabi
Imtiaz nabi el 14 de Jun. de 2022
Respondida: Arjun el 8 de Oct. de 2024
Hi there, I am replicating some lines of code from C language in MATLAB evironment. Although I have completed the code but I am still getting some issues therefore, I am having some issue in the generated DATA.
Kindly if someone tell me how to properly use short in MATLAB as shown in the following picture
Here is what I am currently doing in my code
i_acc = bitshift(int16(i_acc+64),-7);
q_acc = bitshift(int16(q_acc+64),-7);
% % converting data
% i_acc = typecast(i_acc, 'int16');
% q_acc = typecast(q_acc, 'int16');
%
% Buffer
iq_buff(isamp*2)= i_acc;
iq_buff(isamp*2+1) = q_acc;
  1 comentario
Bjorn Gustavsson
Bjorn Gustavsson el 14 de Jun. de 2022
You'll get more better help faster if you explain what "some issue" is.

Iniciar sesión para comentar.

Respuestas (1)

Arjun
Arjun el 8 de Oct. de 2024
I see that you want to convert code from C language to MATLAB code.
In MATLAB, you can use int16 in the same way you use short in C code. In the converted code you provided, there are some dissimilarities with the C code. You have type-cast the values and then performed the bit operation, but in the original C code, the order of operations is different, which can result in inconsistent values.
Here is how you can correct it:
% Assuming i_acc and q_acc are previously defined integers
i_acc = bitshift(i_acc + 64, -7); % Equivalent to (i_acc + 64) >> 7
q_acc = bitshift(q_acc + 64, -7); % Equivalent to (q_acc + 64) >> 7
% Assuming iq_buff is a preallocated array and isamp is an index
iq_buff(isamp*2) = int16(i_acc); % Store as a 16-bit integer
iq_buff(isamp*2 + 1) = int16(q_acc); % Store as a 16-bit integer
Kindly go through the documentation of “int16” for better understanding: https://www.mathworks.com/help/releases/R2022a/matlab/ref/int16.html
I hope this helps!

Categorías

Más información sobre Logical en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by