‘Impulse関数’は’Diracdelta’関数、またはδ関数としても知られています(これは物理学者Paul Diracによって導入されました)。 デジタル信号処理(DSP)の文脈では、しばしば”unitimpulse関数”と呼ばれます。
それは次のように定義されています:
と同一性を満たすもの:
関数は実際の入力パラメータに依存します。 関数の出力は、入力が正確に0の場合はinfiniteです。 その他の入力値では、出力はゼロです。
ディラックデルタは厳密には関数ではないが、どこでもゼロに等しいが一点でゼロに等しい実関数は全積分を持たなければならないが、多くの目的のためにこの定義を関数として操作することができる。
Matlab関数’stem’を使用していくつかの離散プロットを作成してみましょう。
目的のために、Diracfunctionの引数が0のときに関数を1として定義し、入力引数の他の値については出力が0になります。
スカラーを入力として持つ関数を定義することができます。 例えば:
関数y=dd1(n)
%デフォルト値は0
yです= 0;
%関数は、入力が0
の場合にのみ1ですif n==0
y=1;
end
このベクトルの適切な出力を見つけましょう:
n= -2 :2
上記の関数(’dd1’)を次のように使用します。
for i=1 :長さ(n)
f(i)=dd1(n(i));
終了
ステム(n,f)
軸()
xlabel(‘n’)
ylabel(‘ImpulseFunction’)
期待どおりに結果は次のとおりです:
さて、別のベクトルを仮定しましょう:
n=
関数’dd1’を使用して、デルタ関数の出力を見つけることができます。
for i=1:length(n)
f(i)=dd1(n(i));
end
stem(f);
stem(f);
stem(f);
stem(f);
stem(f);
stem(f);
stem(f);)
結果は次のとおりです:
ここで、入力としてベクトル(スカラーではない)があるとしましょう。 Inputvectorに含まれるすべての値の単位関数を計算します。このアプローチを考慮するために別の関数(’dd’)を作成することができます:
関数y=dd(x)
%xはベクトルです
%0のみの出力ベクトルを作成します(デフォルト値)
y=zeros(1,length(x))
y=zeros(1,length(x))
y=zeros(1,length(x))
%xはベクトルです));
%0,
%に等しい入力値のインデックスを見つけ、それらを1
y(find(x))にします==0))= 1;
wedon’tはaloopを今必要としません、従って私達のプロセスはたくさん簡単にされました。
n=
f=dd(n)
そこには結果があります: f=0 0 0 1 0 0 1 0
y=4δ(n)+3δ(n-2)を計算したい場合、-10から10までの整数の範囲では、これを単純化することができます:
n=-10:10
y=4*dd(n)+3*dd(n-2)
stem(n,y)
xlabel(‘N’)
ylabel(‘DeltaFunction’)