Simulinkで2​つのint16データ​を上位ビット下位ビッ​トとして結合して32​bitデータとして出​力する方法について

17 Ansichten (letzte 30 Tage)
yuhei
yuhei am 15 Sep. 2023
simulinkにて2つの符号付きint16データがあり一方を上位ビット、他方を下位ビットとして結合し32bitデータとして出力したいのですが、方法が分かりません。方法の分かる方、ご教示いただけますでしょうか?
今のところ上位ビットのint16に2^16を乗算してint32として下位ビットと足し合わせて32bitデータとして出力を試みていますが、上位ビットのデータが正しく格納されず困っております。
MATLAB/SimulinkのバージョンはR2021bになります。

Antworten (1)

Toshinobu Shintai
Toshinobu Shintai am 15 Sep. 2023
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

Kategorien

Mehr zu Simulink Function finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!