toeplitz
テプリッツ行列
説明
例
指定された列ベクトルと行ベクトルを使用して非対称テプリッツ行列を作成します。列ベクトルと行ベクトルの最初の要素が一致しないため、toeplitz は警告を表示して対角要素に列を使用します。
c = [1 2 3 4]; r = [4 5 6]; toeplitz(c,r)
Warning: First element of input column does not match first element of input row.
Column wins diagonal conflict.
ans = 4×3
1 5 6
2 1 5
3 2 1
4 3 2
複素数の行および列ベクトルを使用してテプリッツ行列を作成します。
c = [1+3i 2-5i -1+3i]; r = [1+3i 3-1i -1-2i]; T = toeplitz(c,r)
T = 3×3 complex
1.0000 + 3.0000i 3.0000 - 1.0000i -1.0000 - 2.0000i
2.0000 - 5.0000i 1.0000 + 3.0000i 3.0000 - 1.0000i
-1.0000 + 3.0000i 2.0000 - 5.0000i 1.0000 + 3.0000i
toeplitz を使用して循環行列を作成できます。循環行列は、巡回畳み込みなどの用途で使用されます。
toeplitz を使用してベクトル v から循環行列を作成します。
v = [9 1 3 2]; toeplitz([v(1) fliplr(v(2:end))], v)
ans = 4×4
9 1 3 2
2 9 1 3
3 2 9 1
1 3 2 9
toeplitz を使用して畳み込み用の循環行列を作成し、離散時間巡回畳み込みを実行します。
周期的入力 x とシステム応答 h を定義します。
x = [1 8 3 2 5]; h = [3 5 2 4 1];
列ベクトル c を作成し、length(c) = length(h) であるような循環行列を作成します。
c = [x(1) fliplr(x(end-length(h)+2:end))]
c = 1×5
1 5 2 3 8
x から行ベクトル r を作成します。
r = x;
toeplitz 使用して、畳み込み行列 xConv を作成します。h*xConv で畳み込みを求めます。
xConv = toeplitz(c,r)
xConv = 5×5
1 8 3 2 5
5 1 8 3 2
2 5 1 8 3
3 2 5 1 8
8 3 2 5 1
h*xConv
ans = 1×5
52 50 73 46 64
Signal Processing Toolbox™ がある場合、関数cconv (Signal Processing Toolbox)を使って循環畳み込みを求めることができます。
toeplitz を使用して畳み込み用の配列を作成し、離散時間畳み込みを実行します。
入力 x とシステム応答 h を定義します。
x = [1 8 3 2 5]; h = [3 5 2];
x をゼロでパディングして r を作成します。r の長さが畳み込みの長さ x + h - 1 になります。
r = [x zeros(1,length(h)-1)]
r = 1×7
1 8 3 2 5 0 0
列ベクトル c を作成します。列により対角が決まるので、最初の要素を x(1) に設定します。畳み込みでは length(c) が length(h) に等しくなければならないので、c をパディングします。
c = [x(1) zeros(1,length(h)-1)]
c = 1×3
1 0 0
toeplitz 使用して、畳み込み行列 xConv を作成します。次に、h*xConv を使用して畳み込みを求めます。
xConv = toeplitz(c,r)
xConv = 3×7
1 8 3 2 5 0 0
0 1 8 3 2 5 0
0 0 1 8 3 2 5
h*xConv
ans = 1×7
3 29 51 37 31 29 10
conv を使用して、結果が正しいことを確認します。
conv(x,h)
ans = 1×7
3 29 51 37 31 29 10
入力引数
テプリッツ行列の列。スカラーまたはベクトルとして指定します。c と r の最初の要素が異なる場合、toeplitz は対角に列の要素を使用します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
複素数のサポート: あり
テプリッツ行列の行。スカラーまたはベクトルとして指定します。c と r の最初の要素が異なる場合、toeplitz は対角に列の要素を使用します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
複素数のサポート: あり
詳細
テプリッツ行列は対角一定行列です。したがって、対角線に沿ってすべての要素が同じ値をもちます。テプリッツ行列 A では Ai,j = ai–j が成り立ち、結果は次のような形式になります。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
toeplitz 関数は、GPU 配列を完全にサポートします。GPU 上で関数を実行するには、入力データを gpuArray (Parallel Computing Toolbox) として指定します。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)