このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Raised Cosine Receive Filter
レイズド コサイン FIR フィルターを使用した整合フィルターの適用
ライブラリ:
Communications Toolbox /
Comm Filters
Communications Toolbox HDL Support /
Comm Filters
説明
Raised Cosine Receive Filter ブロックは、レイズド コサイン有限インパルス応答 (FIR) フィルターを使用して入力信号をフィルター処理します。また、必要に応じてフィルター処理後の信号を間引きます。この FIR フィルターは、([Filter span in symbols]×[Input samples per symbol] + 1) 個のタップ係数をもちます。ブロックのアイコンはフィルターのインパルス応答を示します。詳細については、アルゴリズムを参照してください。
例
Simulink のレイズド コサイン フィルター ブロックを使用したフィルター処理
Raised Cosine Transmit Filter ブロックと Raised Cosine Receive Filter ブロックは、レイズド コサイン (RC) フィルター処理のために設計されています。各ブロックは、ルート レイズド コサイン (RRC) フィルターまたはレイズド コサイン フィルターを信号に適用できます。フィルターのロールオフ係数とスパンは可変です。
Raised Cosine Transmit Filter ブロックと Raised Cosine Receive Filter ブロックは、それぞれ送信側および受信側で使用するためにカスタマイズされています。送信フィルターは出力信号をアップサンプリング (内挿) します。受信フィルターは、入力信号がアップサンプリングされていることを想定し、構成済みのブロックの設定に基づいて、出力信号をダウンサンプリング (間引き) します。
群遅延で説明されているように、Raised Cosine Transmit Filter ブロックと Raised Cosine Receiver Filter ブロックの各々で伝播遅延が発生します。
doc_rrcfiltercompare.slx
モデルは、一対のルート レイズド コサイン フィルターを使用して、送信側と受信側の間でフィルター処理を均等に分ける方法を示しています。互いに対応するルート レイズド コサイン フィルターのペアを使用することは、単一の通常のレイズド コサイン フィルターを使用することと等価です。フィルターは同じ区間を共有し、シンボルごとに同じ数のサンプルを使用しますが、上のパスの 2 つのフィルター ブロックでは平方根の形状になり、下のパスの単一のフィルター ブロックでは標準的な形状になります。
モデルを実行し、アイ ダイアグラムおよびコンスタレーション ダイアグラムを観察します。2 つの方式の性能はほぼ同じです。実際のルート レイズド コサイン フィルターはインパルス応答が制限されているため、2 つのカスケードに結合されているルート レイズド コサイン フィルターの応答と 1 つのレイズド コサイン フィルターの応答の間には、わずかな違いがあります。
Simulink での送信/受信ルート レイズド コサイン フィルター処理の適用
送信/受信ルート レイズド コサイン (RRC) フィルター処理を入力信号に適用することにより、レイズド コサイン整合フィルター処理を変調後の信号に適用します。入力信号電力を調整して正しい SNR を計算する方法、および遅延を調整して正しい誤り率を計算する方法を示します。
cm_tx_rx_rrc_filter
モデルは、Random Integer Generatorブロックを使用して、ランダムな整数から成るフレームを出力します。このデータ フレームは、QPSK Modulator Basebandブロック、Raised Cosine Transmit Filter、AWGN Channelブロック、Raised Cosine Receive Filter、およびQPSK Demodulator Basebandブロックに渡されます。QPSK 復調の実行後、各Error Rate Calculationブロックは、送受信フィルター処理による受信信号の遅延を考慮した場合とそうでない場合について、ビット エラー レートを計算します。
このモデルは、コールバック関数 PreLoadFcn
を使用して、ブロック パラメーターを構成する変数を初期化します。詳細については、モデル コールバック (Simulink)を参照してください。このモデルでは、フィルターのオーバーサンプリングに基づいて AWGN の入力信号電力レベルを設定するパラメーター、およびフィルターの遅延に基づいて誤り率計算パスの遅延を設定するパラメーターの構成を示します。
QPSK 変調信号の電力は 1 ですが、送信 RRC フィルター処理による信号のオーバーサンプリングによって、オーバーサンプリング レートの分だけ信号レベルが低下します。正しいノイズ レベルを適用するには、フィルターによるオーバーサンプリングによって低下した信号レベルを考慮して、AWGN ブロックで入力信号電力を調整しなければなりません。Varianceブロックによって計算される分散は、オーバーサンプリング レートが 1/8 のときに約 1 となります。
Computed variance = 0.1250
Time Scopeは、"受信" 信号、"遅延がある" 信号、"遅延がない" 信号をプロットします。"遅延がある" 信号は "受信" 信号と位置が揃っていますが、"遅延がない" 信号は 10 サンプルだけシフトされています。誤り率の計算は、フィルターによる遅延を考慮した場合に正しい BER を示しています。
Delay not accounted for: BER = 0.75 Delay accounted for: BER = 0.00466
シンボルおよびフレーム同期
変化するタイミング誤差によって劣化した QPSK システムからフレーム同期を復旧します。この例では、フレーム同期を支援するためのシンボル同期を実行する利点を示します。
cm_ex_symbol_frame_sync
モデルは、変化するタイミング誤差によって生じたフレーム同期を復旧させます。Variable Fractional Delay ブロックは、ルート レイズド コサイン (RRC) フィルター処理された QPSK 信号に対して、変化するタイミング誤差を発生させます。AWGN ブロックの後に、受信パスが複製され、パスに Symbol Synchronizer ブロックがある場合とない場合のパフォーマンスが比較されます。Symbol Synchronizer ブロックは、送信機と受信機間のクロック スキューを補正し、出力信号を有効なクロック リファレンスに一致させます。この例でのタイミング誤差の条件では、シンボル同期装置は、200 個のサンプルを含む入力ベクトルに対して、99、100 または 101 個のシンボルを含むベクトルを返します。
Frame Synchronizer ブロックは、信号内に存在するフレーム ヘッダーを使用して、シンボル ストリームを正しいフレーム境界に沿って配置します。また、ビット エラー レート (BER) を計算する BER Data Decoding サブシステムに、有効なフレーム インジケーター信号も提供します。無効なフレームに基づいて BER が計算されるのを防ぐため、BER Data Decoding サブシステムは、Bit Generation ブロック出力を使用する代わりに入力データ ビットを再生成します。
S/N 比が 20 dB、タイミング誤差の変動範囲が [0, 0.9] サンプルの場合、シンボル同期を行う受信機パスで信号再生が成功します。Constellation Diagram ブロックの "Before Sym Sync" 信号に見られるように、タイミング誤差が時間の経過とともに変化することにより、コンスタレーションが破損した状態とクリーンな状態の間で変動します。コンスタレーション ダイアグラムの "After Sym Sync" 信号は、変化するタイミング誤差信号による劣化がシンボル同期装置により除去されることを示しています。
シンボル同期がある場合とない場合の BER は、Symbol Synchronizer ブロックによってパフォーマンスが向上することを示しています。
Error rate with symbol synchronization: 0.000 Error rate without symbol synchronization: 0.010
拡張例
端子
入力
In — 入力信号
列ベクトル | 行列
入力信号。列ベクトルまたは Ki 行 N 列の行列として指定します。Ki は信号チャネルあたりの入力サンプル数、N は信号チャネルの数です。
Ki 行 N 列の行列入力の場合、オブジェクトは、入力行列の列を N 個の独立したチャネルとして扱います。
データ型: single
| double
| fixed point
出力
パラメーター
ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。
メインフィルターの形状 — Filter shape
平方根
(既定値) | ノーマル
フィルターの形状。[平方根]
または [標準]
として指定します。詳細については、フィルター特性を参照してください。
Rolloff factor — ロールオフ係数
0.2
(既定値) | スカラー
フィルターのロールオフ係数。範囲が [0
, 1
] のスカラーとして指定します。
Filter span in symbols — Filter span in symbols
10
(既定値) | 偶数の正の整数
シンボル内のフィルター スパン。正の偶数として指定します。このブロックは、理想的なレイズド コサイン フィルターの無限インパルス応答の長さを、このパラメーターの値と等しい長さをもつ FIR に合わせて切り捨てます。
Input samples per symbol — シンボルあたりの入力サンプル数
8
(既定値) | 1
より大きい整数
シンボルあたりの入力サンプル数。1
より大きい整数値として指定します。このパラメーターは、入力信号の 1 つのシンボルを表す入力サンプルの数を定義します。
間引き係数 — 入力信号の間引き係数
8
(既定値) | 正の整数
ブロックにより入力信号に適用される間引き係数。正の整数として指定します。シンボルあたりの出力サンプル数は、シンボルあたりの入力サンプル数を間引き係数で除算した値と同じでなければなりません。間引き係数が 1 の場合、ブロックはフィルター処理のみを適用し、間引きは行いません。
Decimation offset — サンプル単位の間引きオフセット
0
(既定値)
サンプル単位の間引きオフセット。範囲 [0
, ([間引き係数] – 1
) の整数として指定します。
Linear amplitude filter gain — 線形フィルター ゲイン
1
(既定値) | 正のスカラー
線形フィルター ゲイン。正のスカラーとして指定します。このブロックは、指定した線形フィルター ゲインの値により、正規化されたフィルター係数をスケーリングします。
入力処理 — 入力処理の制御
チャネルとしての列 (フレーム ベース)
(既定値) | チャネルとしての要素 (サンプル ベース)
入力処理の制御。以下のいずれかのオプションを指定します。
チャネルとしての列 (フレーム ベース)
— ブロックは入力の各列を別々のチャネルとして扱います。チャネルとしての要素 (サンプル ベース)
— ブロックは入力の各要素を別々のチャネルとして扱います。
レート オプション — ブロック処理レート
シングルレート処理を適用
(既定値) | マルチレート処理を許可
入力信号のダウンサンプリングとフィルター処理を行うためのブロック処理レート。以下のいずれかのオプションとして指定します。
Enforce single-rate processing
— このオプションを選択すると、K のファクターで出力フレーム サイズを減らすことで、ブロックは入力サンプル レートを維持し、信号を処理します。Allow multirate processing
— このオプションを選択すると、ブロックは、出力サンプル レートが入力サンプル レートよりも K 倍低速な信号を処理します。
依存関係
[シングルレート処理を適用]
を使用するには、[入力処理] を [チャネルとしての列 (フレーム ベース)]
に設定しなければなりません。
Export filter coefficients to workspace — フィルター係数のエクスポート
off
(既定値) | on
[Coefficient variable name] パラメーターで指定した MATLAB® ワークスペース変数としてフィルター係数を保存するには、このパラメーターを選択します。
Coefficient variable name — 係数変数の名前
rcRxFilt
(既定値)
フィルター応答の表示 — フィルターの可視化ツールを開く
ボタン
レイズド コサイン フィルター応答を解析するには、[フィルター応答の表示] ボタンをクリックします。MATLAB でフィルターの可視化ツール FVTool
が開きます。ブロック マスク パラメーターの設定を変更する場合は、このボタンを再度クリックして FVTool
の新しいインスタンスを開き、新しいフィルター特性を表示します。FVTool
の前のインスタンスは開いたままになり、前のマスク設定が表示されます。モデルを閉じても FVTool
のインスタンスは開いたままになります。
丸めモード — 固定小数点演算の丸めモード
負方向
(既定値) | 正方向
| 最も近い偶数方向
| 最も近い正の整数方向
| 最も近い整数方向
| 最も簡潔
| ゼロ方向
固定小数点演算の丸めモードを選択します。固定小数点演算の結果を、データ型で表現できる値に正確にマッピングできない場合、このブロックは丸めモードを使用します。フィルターの係数は、このパラメーターには従いません。これらは常に [Nearest]
に丸められます。詳細については、丸めモードまたは丸めモード: 最も簡潔 (Fixed-Point Designer)を参照してください。
整数オーバーフローで飽和 — 固定小数点演算のオーバーフロー モード
off
(既定値) | on
固定小数点演算のオーバーフロー モードを選択します。フィルターの係数は、このパラメーターには従いません。これらは常に飽和します。
係数 — 係数のデータ型
継承: 入力と同じ語長
(既定値) | fixdt(1,16)
| fixdt(1,16,0)
フィルター係数 (分子と分母) の語長と小数部の長さを指定します。
このブロックは FIR Decimation ブロックを含むサブシステムです。このブロックの係数のデータ型を使用する方法を示す図については、Discrete FIR Filter (Simulink) ブロックのフィルター構造図を参照してください。
[継承: 入力と同じ語長]
を選択すると、フィルターの係数の語長はブロックへの入力の語長と一致します。このモードでは、係数の小数部の長さは 2 進小数点のみのスケーリングに自動的に設定されます。このスケーリングは、与えられた係数の値と語長で最高の精度になります。
フィルター係数は [丸めモード] パラメーターおよび [整数オーバーフローで飽和] パラメーターには従わず、常に飽和して [最も近い正の整数方向]
に丸められます。
データ型の指定に関する詳細については、データ型アシスタントを参照してください。
乗算出力 — 乗算出力のデータ型
継承: 入力と同じ
(既定値) | fixdt(1,16,0)
乗算出力の語長と小数部の長さを指定します。このブロックの乗算出力のデータ型を使用する方法を示す図については、Discrete FIR Filter (Simulink) ブロックおよび乗算のデータ型のフィルター構造図を参照してください。
[継承: 入力と同じ]
を選択すると、これらの特性はブロックへの入力の特性と一致します。
データ型の指定に関する詳細については、データ型アシスタントを参照してください。
アキュムレータ — アキュムレータのデータ型
継承: 乗算出力と同じ
(既定値) | 継承: 入力と同じ
| fixdt(1,16,0)
アキュムレータの語長と小数部の長さを指定します。このブロックのアキュムレータのデータ型を使用する方法を示す図については、Discrete FIR Filter (Simulink) ブロックおよび乗算のデータ型のフィルター構造図を参照してください。
[継承: 入力と同じ]
を選択すると、これらの特性はブロックへの入力の特性と一致します。[継承: 乗算出力と同じ]
を選択すると、これらの特性は乗算出力の特性と一致します。
データ型の指定に関する詳細については、データ型アシスタントを参照してください。
出力 — 出力データ型
継承: アキュムレータと同じ
(既定値) | 継承: 入力と同じ
| fixdt(1,16,0)
出力の語長と小数部の長さを指定します。
[継承: 入力と同じ]
を選択すると、これらの特性はブロックへの入力の特性と一致します。[継承: アキュムレータと同じ]
を選択すると、これらの特性はアキュムレータの特性と一致します。
データ型の指定に関する詳細については、データ型アシスタントを参照してください。
固定小数点ツールによる変更に対してデータ型の設定をロックする — 固定小数点ツールによるデータ型のオーバーライドの回避
off
(既定値) | on
ブロック ダイアログ ボックスで指定するデータ型が固定小数点ツールによってオーバーライドされないようにするには、このパラメーターを選択します。詳細については、固定小数点ツール (Fixed-Point Designer)を参照してください。
詳細
データ型アシスタント
[データ型アシスタント] は、データ属性の設定を支援します。[データ型アシスタント] を使用するには、[データ型アシスタントを表示] をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。
ヒント
MATLAB ワークスペースへのフィルター係数のエクスポート
このブロックで設計するフィルターの係数を確認または操作するには、[Export filter coefficients to workspace] を選択します。[Coefficient variable name] パラメーターを、ブロックが MATLAB ワークスペースに作成する変数の名前に設定します。シミュレーションを実行すると、ブロックが変数を作成し、その変数が既にある場合は、以前の内容を上書きします。
アルゴリズム
レイズド コサイン受信フィルターの特性は、Raised Cosine Transmit Filter ブロックのものと同じですが、受信フィルターの場合、フィルターの入力応答の長さが [Input samples per symbol] パラメーターの値によって決まる点が異なります。
フィルター特性
[フィルターの形状] パラメーターは、ブロックが使用するフィルターのタイプを決定します。選択肢には [標準]
および [平方根]
があります。
ロールオフ係数が R、シンボル周期が T である通常のレイズド コサイン フィルターのインパルス応答は、次のとおりです。
ロールオフ係数が R であるルート レイズド コサイン フィルターのインパルス応答は以下のとおりです。
それ自体に畳み込みをしたルート レイズド コサイン フィルターのインパルス応答は、通常のレイズド コサイン フィルターのインパルス応答とほぼ同じです。
このブロックは、無限インパルス応答 (IIR) がある理想的なレイズド コサイン フィルターとは異なり、FIR フィルターであるため、[Filter span in symbols] パラメーターで指定されるシンボル数でインパルス応答を切り捨てます。このフィルターのインパルス応答の長さは (L×N + 1) です。ここで、N は [Filter span in symbols] パラメーターの値、L は [Input samples per symbol] パラメーターの値です。
[ロールオフ係数] R によりフィルターの過剰帯域幅が決定されます。R は [0
, 1
] の範囲でなければなりません。たとえば、ロールオフ係数 0.5
は、フィルターの帯域幅が入力のサンプリング周波数の 1.5 倍であることを意味します。
ブロックは、フィルター係数をユニット エネルギーに正規化します。1
以外の [Linear amplitude filter gain] の値を指定すると、ブロックは正規化されたフィルター係数をこの指定ゲイン値でスケーリングします。
レイテンシ
ブロックのレイテンシに関する詳細については、FIR Decimation を参照してください。
フィルター処理された信号の間引き
ブロックでフィルター処理された信号を間引きするには、[間引き係数] パラメーターを 1
より大きい値に設定します。
K を [間引き係数] パラメーターの値にすると、ブロックはサンプルの 1/K を保持し、次の選択を行います。
[Decimation offset] パラメーターが 0 の場合、ブロックは、フィルター処理された信号のうち 1, K+1, 2*K+1, 3*K+1, ... のインデックスで指定されたサンプルを選択します。
[Decimation offset] パラメーターがフレーム長 M よりも小さな正の整数である場合、ブロックはまず、フィルター処理された信号からその数分のサンプルを破棄し、残りのデータを前のケースのようにダウンサンプリングします。
フィルター処理された信号全体を保持し、間引きを避けるには、[間引き係数] を 1
に設定します。この設定は、フィルター ブロックからの出力が Symbol Synchronizer などのタイミング位相再生ブロックへの入力を形成するときに適切です。タイミング位相再生ブロックはその場合、ダウンサンプリングを実行します。
入力信号と出力信号
このブロックは列ベクトルまたは行列の入力信号を受け入れます。
[間引き係数] を 1
に設定した場合、入力信号と出力信号は同一のサンプル モード、サンプル時間、およびベクトル長を共有します。
[間引き係数] を 1
より大きい値 K に設定した場合、K と入力サンプリング モードが出力信号の特性を決定します。
[レート オプション] パラメーターを [シングルレート処理を適用]
に設定した場合、ブロックの入力と出力のサンプル レートは同じになります。このブロックは、入力サンプル レートをそのまま使用して出力を生成するために、出力フレーム サイズ (Mo) が入力フレーム サイズの 1/K 倍 (Mo = Mi/K) となるように、入力の各列にあるデータをリサンプリングします。このモードでは、入力フレーム サイズ Mi は K の倍数でなければなりません。
[レート オプション] パラメーターを [マルチレート処理を許可]
に設定した場合、ブロックの入力と出力のサイズは同じになりますが、出力のサンプル レートは入力のサンプル レートの K 分の 1 になります。ブロックがマルチレート処理モードの場合は、[入力処理] パラメーターの値も指定しなければなりません。
[入力処理] パラメーターを
[チャネルとしての要素 (サンプル ベース)]
に設定した場合、ブロックは M 行 N 列の行列入力を M×N 個の独立したチャネルとして扱い、各チャネルを順次処理します。出力サンプル周期 (Tso) は入力サンプル周期の K 倍になり (Tso = K×Tsi)、入力と出力のサイズは同一になります。[入力処理] パラメーターを
[チャネルとしての列 (フレーム ベース)]
に設定した場合、ブロックは Mi 行 N 列の行列入力を N 個の独立したチャネルとして扱います。ブロックは、フレーム サイズを一定に保ち (Mi=Mo)、出力フレームの周期 Tfo を入力フレームの周期の K 倍にしながら (Tfo = K×Tfi)、入力の各列を順次処理します。
MATLAB ワークスペースへのフィルター係数のエクスポート
このブロックで設計するフィルターの係数を確認または操作するには、[Export filter coefficients to workspace] を選択します。次に、[Coefficient variable name] パラメーターを、ブロックが MATLAB ワークスペースに作成する変数の名前に設定します。シミュレーションを実行すると、ブロックが変数を作成し、その変数が既にある場合は、以前の内容を上書きします。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
生成されたコードは特定の条件下で関数 memcpy
または関数 memset
(string.h
) に依存します。
このブロックは、次の条件を満たす場合、Intel® AVX2 テクノロジーを使用して SIMD コード生成をサポートします。
[入力処理] が
[チャネルとしての列 (フレーム ベース)]
に設定されている。[レート オプション] が
[シングルレート処理を適用]
に設定されている。入力信号が実数のフィルター係数をもつ実数値である。
入力信号が実数または複素数のフィルター係数をもつ複素数値である。
入力信号のデータ型が
single
またはdouble
である。
SIMD テクノロジーにより、生成コードのパフォーマンスが大幅に向上します。詳細については、Simulink ブロックからの SIMD コードの生成 (Embedded Coder)を参照してください。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。
HDL Coder™ は、HDL の実装および合成ロジックに影響を与える、追加の構成オプションを提供します。
このブロックは FIR Decimation ブロックを含むサブシステムです。このサブシステムに [HDL プロパティ] を設定できます。または、マスク内を表示して、フィルター ブロックに [HDL プロパティ] を設定できます。プロパティの一覧については、Subsystem, Atomic Subsystem, CodeReuse Subsystem (Simulink) および FIR Decimation ブロックのリファレンス ページの「HDL コード生成」の節を参照してください。
マスク内の設定変更を保存するには、ライブラリ リンクを解除しなければなりません。ライブラリ リンクを解除するには、Raised Cosine Receive Filter ブロックを選択して、次のコマンドを実行します。
set_param(gcb,'LinkStatus','inactive')
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)