Simulinkで2つのint16データを上位ビット下位ビットとして結合して32bitデータとして出力する方法について
조회 수: 9 (최근 30일)
이전 댓글 표시
simulinkにて2つの符号付きint16データがあり一方を上位ビット、他方を下位ビットとして結合し32bitデータとして出力したいのですが、方法が分かりません。方法の分かる方、ご教示いただけますでしょうか?
今のところ上位ビットのint16に2^16を乗算してint32として下位ビットと足し合わせて32bitデータとして出力を試みていますが、上位ビットのデータが正しく格納されず困っております。
MATLAB/SimulinkのバージョンはR2021bになります。
댓글 수: 0
답변 (1개)
Toshinobu Shintai
2023년 9월 15일
MATLAB Functionブロックを使うのが一番手っ取り早いかと思います。"typecast"コマンドを使って、以下のようにモデリングできます。
MATLAB Functionブロックの中身は以下の通りです。
function concatenated_num = fcn(upper, lower)
%%
upper_unsigned = typecast(upper, 'uint16');
lower_unsigned = typecast(lower, 'uint16');
%%
concatenated_num = uint32(lower_unsigned) + ...
bitshift(uint32(upper_unsigned), 16);
end
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Simulink Function에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!