Raised Cosine Transmit Filter
レイズド コサイン FIR フィルターを使用した信号の内挿によるパルス整形の適用
ライブラリ:
Communications Toolbox /
Comm Filters
Communications Toolbox HDL Support /
Comm Filters
説明
Raised Cosine Transmit Filter ブロックは、レイズド コサイン有限インパルス応答 (FIR) フィルターを使用して、入力信号を内挿することによってパルス整形を適用します。この FIR フィルターは、([Filter span in symbols]×[Output 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 でのプロット
QPSK 変調信号に対し、ルート レイズド コサイン フィルター処理を適用します。フィルター処理された信号の分散を計算します。フィルター処理前後の信号をプロットします。
cm_tx_rrc_filter
モデルでは、バイナリが QPSK 変調された後、オーバーサンプル レートが 8、ロールオフ係数が 0.2 に設定されたルート レイズド コサイン フィルターでフィルター処理されます。
信号レベルは、オーバーサンプリング レート分の 1 だけ減少します。QPSK 変調信号の電力は 1 であり、送信 RRC フィルター処理によって 8 倍のレートで信号がオーバーサンプリングされるため、送信フィルター処理の後ろにあるVarianceブロックによって計算される分散レベルは約 1/8 になります。
Computed variance = 0.1248
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.00452
拡張例
端子
入力
In — 入力信号
スカラー | 列ベクトル | 行列
入力信号。スカラー、列ベクトル、または Ki 行 N 列の行列として指定します。Ki は信号チャネルあたりの入力サンプル数、N は信号チャネルの数です。
データ型: double
| single
| fixed point
出力
Out — 出力信号
スカラー | 列ベクトル | 行列
出力信号。スカラー、列ベクトルまたは行列として返されます。このブロックは、時間の経過により各チャネルをフィルター処理し、Ko 行 N 列の出力行列を生成します。出力信号のデータ型は、入力信号のデータ型と同じです。
Ko = Ki×L。
N は信号チャネルの数。
Ki は信号チャネルあたりの入力サンプル数。
L は [Output samples per symbol] パラメーターで指定する値。
データ型: double
| single
| fixed point
パラメーター
ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。
メインフィルターの形状 — Filter shape
平方根
(既定値) | ノーマル
フィルターの形状。[平方根]
または [標準]
として指定します。詳細については、フィルター特性を参照してください。
ロールオフ係数 — ロールオフ係数
0.2
(既定値) | スカラー
フィルターのロールオフ係数。範囲が [0
, 1
] のスカラーとして指定します。
Filter span in symbols — Filter span in symbols
10
(既定値) | 正の偶数
シンボル内のフィルター スパン。正の偶数として指定します。このブロックは、理想的なレイズド コサイン フィルターの無限インパルス応答の長さを、このパラメーターの値と等しい長さをもつ FIR に合わせて切り捨てます。
Output samples per symbol — シンボルあたりの出力サンプル数
8
(既定値) | 1
より大きい整数
シンボルあたりの出力サンプル数。1
より大きい整数値として指定します。レイズド コサイン フィルターのタップ数は、このパラメーターの値と [Filter span in symbols] パラメーターの値を乗算した値と同じです。
Linear amplitude filter gain — 線形フィルター ゲイン
1
(既定値) | 正のスカラー
線形フィルター ゲイン。正のスカラーとして指定します。このブロックは、指定した線形フィルター ゲインの値により、正規化されたフィルター係数をスケーリングします。
入力処理 — 入力処理の制御
チャネルとしての列 (フレーム ベース)
(既定値) | チャネルとしての要素 (サンプル ベース)
入力処理の制御。以下のいずれかのオプションを指定します。
チャネルとしての列 (フレーム ベース)
— ブロックは入力の各列を別々のチャネルとして扱います。チャネルとしての要素 (サンプル ベース)
— ブロックは入力の各要素を別々のチャネルとして扱います。
レート オプション — ブロック処理レート
シングルレート処理を適用
(既定値) | マルチレート処理を許可
入力信号のアップサンプリングとフィルター処理を行うためのブロック処理レート。以下のいずれかのオプションとして指定します。
シングルレート処理を適用
— このオプションを選択すると、ブロックは入力サンプル レートを維持し、出力フレーム サイズを N 倍に増やすことで信号を処理します。[Allow multirate processing]
— このオプションを選択すると、ブロックは出力サンプル レートが入力サンプル レートより N 倍速くなるよう信号を処理します。
依存関係
[シングルレート処理を適用]
を使用するには、[入力処理] を [チャネルとしての列 (フレーム ベース)]
に設定しなければなりません。
Export filter coefficients to workspace — フィルター係数のエクスポート
off
(既定値) | on
[Coefficient variable name] パラメーターで指定した MATLAB® ワークスペース変数としてフィルター係数を保存するには、このパラメーターを選択します。
Coefficient variable name — 係数変数の名前
rcTxFilt
(既定値)
フィルター応答の表示 — フィルターの可視化ツールを開く
ボタン
レイズド コサイン フィルター応答を解析するには、[フィルター応答の表示] ボタンをクリックします。MATLAB でフィルターの可視化ウィンドウが開きます。ブロック マスク パラメーターの設定を変更する場合は、このボタンを再度クリックしてウィンドウの新しいインスタンスを開き、新しいフィルター特性を表示します。前のフィルター可視化ウィンドウは開いたままになり、前のマスク設定が表示されます。モデルを閉じてもフィルター可視化ウィンドウのインスタンスは開いたままになります。
丸めモード — 固定小数点演算の丸めモード
負方向
(既定値) | 正方向
| 最も近い偶数方向
| 最も近い正の整数方向
| 最も近い整数方向
| 最も簡潔
| ゼロ方向
固定小数点演算の丸めモードを選択します。固定小数点演算の結果を、データ型で表現できる値に正確にマッピングできない場合、このブロックは丸めモードを使用します。フィルターの係数は、このパラメーターには従いません。これらは常に [Nearest]
に丸められます。詳細については、丸めモードまたは丸めモード: 最も簡潔 (Fixed-Point Designer)を参照してください。
整数オーバーフローで飽和 — 固定小数点演算のオーバーフロー モード
off
(既定値) | on
固定小数点演算のオーバーフロー モードを選択します。フィルターの係数は、このパラメーターには従いません。これらは常に飽和します。
係数 — 係数のデータ型
継承: 入力と同じ語長
(既定値) | fixdt(1,16)
| fixdt(1,16,0)
フィルター係数 (分子と分母) の語長と小数部の長さを指定します。
このブロックは FIR Interpolation ブロックを含むサブシステムです。このブロックの係数のデータ型を使用する方法を示す図については、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 Receive Filter ブロックのものと同じですが、送信フィルター処理の場合、フィルターの入力応答の長さが [Output samples per symbol] パラメーターの値によって決まる点が異なります。
フィルター特性
[フィルターの形状] パラメーターは、ブロックが使用するフィルターのタイプを決定します。選択肢には [標準]
および [平方根]
があります。
ロールオフ係数が R、シンボル周期が T である通常のレイズド コサイン フィルターのインパルス応答は、次のとおりです。
ロールオフ係数が R であるルート レイズド コサイン フィルターのインパルス応答は以下のとおりです。
それ自体に畳み込みをしたルート レイズド コサイン フィルターのインパルス応答は、通常のレイズド コサイン フィルターのインパルス応答とほぼ同じです。
このブロックは、無限インパルス応答 (IIR) がある理想的なレイズド コサイン フィルターとは異なり、FIR フィルターであるため、[Filter span in symbols] パラメーターで指定されるシンボル数でインパルス応答を切り捨てます。このフィルターのインパルス応答の長さは ((L×N + 1) です。ここで、N は [Filter span in symbols] パラメーターの値、L は [Output samples per symbol] パラメーターの値です。
[ロールオフ係数] R によりフィルターの過剰帯域幅が決定されます。R は [0
, 1
] の範囲でなければなりません。たとえば、ロールオフ係数 0.5
は、フィルターの帯域幅が入力のサンプリング周波数の 1.5 倍であることを意味します。
ブロックは、フィルター係数をユニット エネルギーに正規化します。1
以外の [Linear amplitude filter gain] の値を指定すると、ブロックは正規化されたフィルター係数をこの指定ゲイン値でスケーリングします。
入力信号と出力信号
入力は離散時間信号でなければなりません。このブロックは列ベクトルまたは行列の入力信号を受け入れます。
[レート オプション] で選択した手法、および [Output samples per symbol] L の値によって、出力信号の特性が決定されます。
[レート オプション] パラメーターを [シングルレート処理を適用]
に設定した場合、ブロックの入力と出力のサンプル レートは同じになります。このブロックは、入力サンプル レートをそのまま使用して出力を生成するために、出力フレーム サイズ (Mo) が入力フレーム サイズの L 倍 (M o= Mi×L) となるように、入力の各列にあるデータをリサンプリングします。ここで、L は、[Output samples per symbol] パラメーターの値を表します。
[レート オプション] パラメーターを [マルチレート処理を許可]
に設定した場合、ブロックの入力と出力は同じサイズになります。ただし、出力のサンプル レートは、入力よりも L 倍高速になります (つまり、出力サンプル時間は入力サンプル時間の 1/L になります)。ブロックがマルチレート処理モードの場合は、[入力処理] パラメーターの値も指定しなければなりません。
[入力処理] パラメーターを
[チャネルとしての要素 (サンプル ベース)]
に設定した場合、ブロックは M 行 L 列の行列入力を M×N 個の独立したチャネルとして扱い、各チャネルを順次処理します。出力サンプルの周期 Tso は入力サンプルの周期の L 分の 1 になりますが (Tso = Tsi/L)、入力と出力のサイズは同一のままです。[入力処理] パラメーターを
[チャネルとしての列 (フレーム ベース)]
に設定した場合、ブロックは Mi 行 N 列の行列入力を N 個の独立したチャネルとして扱います。ブロックは、フレーム サイズを一定に保ち (Mi=Mo)、出力フレームの周期 Tfo を入力フレームの周期の L 分の 1 にしながら (Tfo = Tfi/L)、入力の各列を順次処理します。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
生成されたコードは特定の条件下で関数 memcpy
または関数 memset
(string.h
) に依存します。
このブロックは、次の条件を満たす場合、Intel® AVX2 テクノロジーを使用して SIMD コード生成をサポートします。
[入力処理] が
[チャネルとしての列 (フレーム ベース)]
に設定されている。[レート オプション] が
[シングルレート処理を適用]
に設定されている。入力信号が実数のフィルター係数をもつ実数値である。
入力信号が実数または複素数のフィルター係数をもつ複素数値である。
入力信号のデータ型が
single
またはdouble
である。
SIMD テクノロジーにより、生成コードのパフォーマンスが大幅に向上します。詳細については、Intel プラットフォームの Simulink ブロックからの SIMD コードの生成 (Embedded Coder)を参照してください。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。
HDL Coder™ は、HDL の実装および合成ロジックに影響を与える、追加の構成オプションを提供します。
このブロックは FIR Interpolation ブロックを含むサブシステムです。このサブシステムに [HDL プロパティ] を設定できます。または、マスク内を表示して、フィルター ブロックに [HDL プロパティ] を設定できます。プロパティの一覧については、Subsystem, Atomic Subsystem, CodeReuse Subsystem (Simulink) および FIR Interpolation ブロックのリファレンス ページの「HDL コード生成」の節を参照してください。
マスク内の設定変更を保存するには、ライブラリ リンクを解除しなければなりません。ライブラリ リンクを解除するには、Raised Cosine Transmit 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)