ドキュメンテーションヘルプ センター
toeplitz
Toeplitz
最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
テプリッツ行列
T = toeplitz(c,r)
T = toeplitz(r)
例
T = toeplitz(c,r) は、1 列目が c で、1 行目が r である非対称テプリッツ行列を返します。c と r の最初の要素が異なる場合、toeplitz は警告を発して対角に列の要素を使用します。
c
r
T = toeplitz(r) は、次のような対称テプリッツ行列を返します。
r が実数ベクトルである場合、r は行列の最初の行を定義します。
r が、最初の要素が実数である複素数ベクトルである場合、r は最初の行を定義し、r' は最初の列を定義します。
r'
r の最初の要素が複素数の場合、テプリッツ行列は主対角を除いてエルミートです。つまり、i≠j のときに Ti,j=conj(Tj,i) です。主対角の要素は r(1) に設定されます。
r(1)
すべて折りたたむ
r = [1 2 3]; toeplitz(r)
ans = 3×3 1 2 3 2 1 2 3 2 1
指定された列ベクトルと行ベクトルを使用して非対称テプリッツ行列を作成します。列ベクトルと行ベクトルの最初の要素が一致しないため、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
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
h
x = [1 8 3 2 5]; h = [3 5 2 4 1];
列ベクトル c を作成し、length(c) = length(h) であるような循環行列を作成します。
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
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
ans = 1×5 52 50 73 46 64
Signal Processing Toolbox™ がある場合、関数cconv (Signal Processing Toolbox)を使って循環畳み込みを求めることができます。
cconv
toeplitz を使用して畳み込み用の配列を作成し、離散時間畳み込みを実行します。
入力 x とシステム応答 h を定義します。
x = [1 8 3 2 5]; h = [3 5 2];
x をゼロでパディングして r を作成します。r の長さが畳み込みの長さ x + h - 1 になります。
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 をパディングします。
x(1)
length(c)
length(h)
c = [x(1) zeros(1,length(h)-1)]
c = 1×3 1 0 0
toeplitz 使用して、畳み込み行列 xConv を作成します。次に、h*xConv を使用して畳み込みを求めます。
xConv = 3×7 1 8 3 2 5 0 0 0 1 8 3 2 5 0 0 0 1 8 3 2 5
ans = 1×7 3 29 51 37 31 29 10
conv を使用して、結果が正しいことを確認します。
conv
conv(x,h)
テプリッツ行列の列。スカラーまたはベクトルとして指定します。c と r の最初の要素が異なる場合、toeplitz は対角に列の要素を使用します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 複素数のサポート: あり
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
テプリッツ行列の行。スカラーまたはベクトルとして指定します。c と r の最初の要素が異なる場合、toeplitz は対角に列の要素を使用します。
テプリッツ行列は対角一定行列です。したがって、対角線に沿ってすべての要素が同じ値をもちます。テプリッツ行列 A では Ai,j = ai–j が成り立ち、結果は次のような形式になります。
A=[a0a−1a−2⋯⋯a1−na1a0a−1⋱⋱⋮a2a1a0⋱⋱⋮⋮⋱⋱⋱⋱a−2⋮⋱⋱⋱a0a−1an−1⋯⋯a2a1a0].
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
hankel | kron
hankel
kron
この例の変更されたバージョンがシステム上にあります。代わりにこのバージョンを開きますか?
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
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:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office