Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

diric

ディリクレ関数または周期的 sinc 関数

説明

y = diric(x,n) は、入力配列 x の要素で評価された、次数 nディリクレ関数を返します。

すべて折りたたむ

N = 7 と N = 8 の場合について、-2π から 2π の区間でディリクレ関数を計算してプロットします。この関数の周期は、N が奇数の場合は 2πN が偶数の場合は 4π となります。

x = linspace(-2*pi,2*pi,301);

d7 = diric(x,7);
d8 = diric(x,8);

subplot(2,1,1)
plot(x/pi,d7)
ylabel('N = 7')
title('Dirichlet Function')

subplot(2,1,2)
plot(x/pi,d8)
ylabel('N = 8')
xlabel('x / \pi')

Figure contains 2 axes. Axes 1 with title Dirichlet Function contains an object of type line. Axes 2 contains an object of type line.

ディリクレ関数と sinc 関数は DN(πx)=sinc(Nx/2)/sinc(x/2) の関係にあります。N=6 の場合のこの関係を示します。sinc 関数の比が (-1)k(N-1) (x=2kk は整数) であることを指定して、不定式にならないようにします。

xmax = 4;
x = linspace(-xmax,xmax,1001)';

N = 6;

yd = diric(x*pi,N);
ys = sinc(N*x/2)./sinc(x/2);
ys(~mod(x,2)) = (-1).^(x(~mod(x,2))/2*(N-1));

subplot(2,1,1)
plot(x,yd)
title('D_6(x*pi)')
subplot(2,1,2)
plot(x,ys)
title('sinc(6*x/2) / sinc(x/2)')

Figure contains 2 axes. Axes 1 with title D_6(x*pi) contains an object of type line. Axes 2 with title sinc(6*x/2) / sinc(x/2) contains an object of type line.

N=13 の場合の計算を繰り返します。

N = 13;

yd = diric(x*pi,N);
ys = sinc(N*x/2)./sinc(x/2);
ys(~mod(x,2)) = (-1).^(x(~mod(x,2))/2*(N-1));

subplot(2,1,1)
plot(x,yd)
title('D_{13}(x*pi)')
subplot(2,1,2)
plot(x,ys)
title('sinc(13*x/2) / sinc(x/2)')

Figure contains 2 axes. Axes 1 with title D_{13}(x*pi) contains an object of type line. Axes 2 with title sinc(13*x/2) / sinc(x/2) contains an object of type line.

入力引数

すべて折りたたむ

入力配列。実数のスカラー、ベクトル、行列、または N 次元配列として指定します。x が非スカラーの場合、diric は要素単位の演算になります。

データ型: double | single

関数の次数。正の整数スカラーとして指定します。

データ型: double | single

出力引数

すべて折りたたむ

出力配列。x と同じサイズの実数値のスカラー、ベクトル、行列、または N 次元配列として返されます。

詳細

すべて折りたたむ

ディリクレ関数

ディリクレ関数、すなわち周期 sinc 関数は

DN(x)={sin(Nx/2)Nsin(x/2)x2πk,k=0,±1,±2,±3,...(1)k(N1)x=2πk,k=0,±1,±2,±3,...

です。ここで N は非ゼロの任意の整数です。

この関数の周期は、N が奇数の場合は 2π、N が偶数の場合は 4π となります。すべての N で最大値は 1 であり、最小値は N が偶数の場合は –1 です。関数の振幅は、N 点箱型ウィンドウの離散時間フーリエ変換の振幅の 1/N 倍です。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

R2006a より前に導入