Main Content

comm.BasebandFileWriter

ベースバンド信号のファイルへの書き込み

説明

comm.BasebandFileWriter System object™ は、特定のタイプのバイナリ ファイルを書き込み、ベースバンド信号データを格納します。ベースバンド信号は、通常はゼロでない中心周波数から 0 Hz にダウンコンバートされます。SampleRate プロパティと CenterFrequency プロパティはファイルの作成時に保存されます。

ベースバンド信号をファイルに書き込むには、次のようにします。

  1. comm.BasebandFileWriter オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とは を参照してください。

作成

説明

bbw = comm.BasebandFileWriter は、ベースバンド ファイル ライター System object を作成し、ベースバンド信号を特定のタイプのバイナリ ファイルに書き込みます。

bbw = comm.BasebandFileWriter(fname) は、Filename プロパティを fname に設定します。

bbw = comm.BasebandFileWriter(fname,fs) はさらに、SampleRate プロパティを fs に設定します。

bbw = comm.BasebandFileWriter(fname,fs,fc) はさらに、CenterFrequency プロパティを fc に設定します。

bbw = comm.BasebandFileWriter(fname,fs,fc,md) はさらに、Metadata プロパティを md に設定します。

bbw = comm.BasebandFileWriter(___,Name=Value) は、前述の任意の構文の入力引数の組み合わせに加えて、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば、SampleRate=2 は、ベースバンド ファイル ライターのサンプル レートを 2 に設定します。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。

書き込むベースバンド ファイルの名前。string スカラーまたは文字ベクトルとして指定します。ファイル名には相対パスまたは絶対パスを含めることができます。

データ型: string | char

出力ベースバンド信号のサンプル レート (Hz 単位)。正のスカラーとして指定します。

データ型: double

ベースバンド信号の中心周波数 (Hz 単位)。正のスカラーまたは行ベクトルとして指定します。このプロパティが行ベクトルの場合、各要素はマルチチャネル信号内のチャネルの中心周波数です。

データ型: double

ベースバンド信号を記述するデータ。構造体として指定します。構造体は任意の数のフィールドおよび任意のフィールド名をもつことができます。フィールド値は任意の数値型、論理型、または文字データ型で、任意の次元数をもつことができます。

データ型: struct

保存するサンプル数。正の整数または Inf として指定します。

  • すべてのベースバンド信号サンプルをファイルに書き込むには、このプロパティを Inf に設定します。

  • 最後の NumSamplesToWrite のサンプルだけをファイルに書き込むには、このプロパティを正の整数に設定します。

データ型: double

使用法

説明

bbw(samples) は、Filename プロパティで指定されたファイルにベースバンド サンプルの 1 つのフレームを書き込みます。ファイルに書き込まれるサンプルの数は、NumSamplesToWrite プロパティによって決まります。

入力引数

すべて展開する

ファイルに書き込むベースバンド信号。Nsample 行 Nchannel 列の数値の行列として指定します。Nsample はベースバンド サンプルの数、Nchannel は入力信号のチャネル数です。NumSamplesToWriteInf の場合、オブジェクトは入力信号のすべてのサンプルをファイルに書き込みます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
複素数のサポート: あり

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて展開する

infoベースバンド ファイル ライターに関する特性情報
stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

すべて折りたたむ

1 kHz のサンプル レートと 0 Hz の中心周波数を指定するベースバンド ファイル ライター オブジェクトを作成します。

bbw = comm.BasebandFileWriter('baseband_data.bb',1000,0);

今日の日付を Metadata 構造体に保存します。

bbw.Metadata = struct('Date',date);

QPSK 変調されたデータのチャネルを 2 つ作成します。

d = randi([0 3],1000,2);
x = pskmod(d,4,pi/4,'gray');

ベースバンド データをファイル baseband_data.bb に書き込みます。

bbw(x)

ベースバンド ファイル ライターに関する情報を表示します。次に、オブジェクトを解放します。

info(bbw)
ans = struct with fields:
             Filename: '/tmp/Bdoc22b_2089663_3128628/tp09cb531e/comm-ex66490302/baseband_data.bb'
      SamplesPerFrame: 1000
          NumChannels: 2
             DataType: 'double'
    NumSamplesWritten: 1000

release(bbw)

ベースバンド ファイル リーダー オブジェクトを作成して、保存したデータを読み取ります。ファイルからのメタデータを表示します。

bbr = comm.BasebandFileReader('baseband_data.bb', ...
    'SamplesPerFrame',100);
bbr.Metadata
ans = struct with fields:
    Date: '10-Oct-2022'

ファイルからデータを読み取ります。

z = [];

while ~isDone(bbr)
    y = bbr();
    z = cat(1,z,y);
end

ベースバンド ファイル リーダーに関する情報を表示します。次に、オブジェクトを解放します。

info(bbr)
ans = struct with fields:
    NumSamplesInData: 1000
            DataType: 'double'
      NumSamplesRead: 1000

release(bbr)

元の変調されたデータ x が、ファイル baseband_data.bb から読み取ったデータ z と一致することを確認します。

isequal(x,z)
ans = logical
   1

ヒント

  • comm.BasebandFileWriter は、ベースバンド信号を圧縮なしのバイナリ ファイルに書き込みます。これらのファイルを共有するために、関数 zip を使用して zip ファイルに圧縮できます。詳細については、zip アーカイブの作成と解凍を参照してください。

拡張機能

バージョン履歴

R2016b で導入