メインコンテンツ

chirp

スイープ周波数の余弦信号

説明

y = chirp(t,f0,t1,f1) は、配列 t で定義された時間におけるスイープ周波数の線形余弦信号を生成します。時間 0 での瞬時周波数が f0、時間 t1 での瞬時周波数が f1 です。

y = chirp(t,f0,t1,f1,method) は、代替のスイープの method オプションを指定します。

y = chirp(t,f0,t1,f1,method,phi) は、初期位相を指定します。

y = chirp(t,f0,t1,f1,"quadratic",phi,shape) は、2 次スイープ周波数信号のスペクトログラムの形状を指定します。

y = chirp(___,cplx) は、cplx"real" に指定されている場合は実数チャープを、cplx"complex" に指定されている場合は複素チャープを返します。

すべて折りたたむ

瞬時周波数偏差が線形に変化するチャープを生成します。チャープは 1 kHz で 2 秒間サンプリングされています。瞬時周波数は、t = 0 では 0 であり、t = 1 秒で 250 Hz になります。

t = 0:1/1e3:2;
y = chirp(t,0,1,250);

チャープのスペクトログラムを計算し、プロットします。時間分解能が 0.1 秒になるように信号をセグメントに分割します。隣接するセグメント間の 99% のオーバーラップ、および 0.85 のスペクトル漏れを指定します。

pspectrum(y,1e3,"spectrogram",TimeResolution=0.1, ...
    OverlapPercent=99,Leakage=0.85)

Figure contains an axes object. The axes object with title Fres = 14.6831 Hz, Tres = 100 ms, xlabel Time (s), ylabel Frequency (Hz) contains an object of type image.

瞬時周波数偏差が時間の 2 乗とともに変化するチャープを生成します。チャープは 1 kHz で 2 秒間サンプリングされています。瞬時周波数は、t = 0 では 100 Hz であり、t = 1 秒で 200 Hz になります。

t = 0:1/1e3:2;
y = chirp(t,100,1,200,"quadratic");

チャープのスペクトログラムを計算し、プロットします。時間分解能が 0.1 秒になるように信号をセグメントに分割します。隣接するセグメント間の 99% のオーバーラップ、および 0.85 のスペクトル漏れを指定します。

pspectrum(y,1e3,"spectrogram",TimeResolution=0.1, ...
    OverlapPercent=99,Leakage=0.85)

Figure contains an axes object. The axes object with title Fres = 14.6831 Hz, Tres = 100 ms, xlabel Time (s), ylabel Frequency (Hz) contains an object of type image.

1 kHz で 2 秒間サンプリングされた凸の 2 次チャープを生成します。瞬時周波数は、t = 0 では 400 Hz であり、t = 1 秒で 300 Hz になります。

t = 0:1/1e3:2;
fo = 400;
f1 = 300;
y = chirp(t,fo,1,f1,"quadratic",[],"convex");

チャープのスペクトログラムを計算し、プロットします。時間分解能が 0.1 秒になるように信号をセグメントに分割します。隣接するセグメント間の 99% のオーバーラップ、および 0.85 のスペクトル漏れを指定します。

pspectrum(y,1e3,"spectrogram",TimeResolution=0.1, ...
    OverlapPercent=99,Leakage=0.85)

Figure contains an axes object. The axes object with title Fres = 14.6831 Hz, Tres = 100 ms, xlabel Time (s), ylabel Frequency (Hz) contains an object of type image.

1 kHz で 4 秒間サンプリングされた凹の 2 次チャープを生成します。瞬時周波数が、最小周波数 100 Hz、最大周波数 500 Hz のサンプリング間隔の中間点で対称となるように時間ベクトルを指定します。

t = -2:1/1e3:2;
fo = 100;
t1 = max(t);
f1 = 500;
y = chirp(t,fo,t1,f1,"quadratic",[],"concave");

チャープのスペクトログラムを計算し、プロットします。時間分解能が 0.1 秒になるように信号をセグメントに分割します。隣接するセグメント間の 99% のオーバーラップ、および 0.85 のスペクトル漏れを指定します。

pspectrum(y,t,"spectrogram",TimeResolution=0.1, ...
    OverlapPercent=99,Leakage=0.85)

Figure contains an axes object. The axes object with title Fres = 14.6831 Hz, Tres = 100 ms, xlabel Time (s), ylabel Frequency (Hz) contains an object of type image.

1 kHz で 10 秒間サンプリングされた対数チャープを生成します。瞬時周波数は、最初は 10 Hz で最後は 400 Hz になります。

t = 0:1/1e3:10;
fo = 10;
f1 = 400;
y = chirp(t,fo,10,f1,"logarithmic");

チャープのスペクトログラムを計算し、プロットします。時間分解能が 0.2 秒になるように信号をセグメントに分割します。隣接するセグメント間の 99% のオーバーラップ、および 0.85 のスペクトル漏れを指定します。

pspectrum(y,t,"spectrogram",TimeResolution=0.2, ...
    OverlapPercent=99,Leakage=0.85)

Figure contains an axes object. The axes object with title Fres = 7.3416 Hz, Tres = 200 ms, xlabel Time (s), ylabel Frequency (Hz) contains an object of type image.

周波数軸に対数スケールを使用します。スペクトログラムは低周波において高い不確実性をもつ直線になります。

ax = gca;
ax.YScale = "log";

Figure contains an axes object. The axes object with title Fres = 7.3416 Hz, Tres = 200 ms, xlabel Time (s), ylabel Frequency (Hz) contains an object of type surface.

単精度を使用して、1 kHz で 10 秒間サンプリングされた複素線形チャープを生成します。瞬時周波数は、最初は -200 Hz で最後は 300 Hz になります。初期位相はゼロです。

fs = 1e3;
t = single(0:1/fs:10);
fo = -200;
f1 = 300;
ph0 = 0;

y = chirp(t,fo,t(end),f1,"linear",ph0,"complex");

チャープのスペクトログラムを計算し、プロットします。時間分解能が 0.2 秒になるように信号をセグメントに分割します。隣接するセグメント間の 99% のオーバーラップ、および 0.85 のスペクトル漏れを指定します。

pspectrum(y,t,"spectrogram",TimeResolution=0.2, ...
    OverlapPercent=99,Leakage=0.85)

Figure contains an axes object. The axes object with title Fres = 7.3421 Hz, Tres = 199.9855 ms, xlabel Time (s), ylabel Frequency (Hz) contains an object of type image.

複素チャープに、等しいが 90 の位相差をもつ実数部と虚数部があることを確認します。

x = chirp(t,fo,t(end),f1,"linear",0)...
    + 1j*chirp(t,fo,t(end),f1,"linear",-90);

pspectrum(x,t,"spectrogram",TimeResolution=0.2, ...
    OverlapPercent=99,Leakage=0.85)

Figure contains an axes object. The axes object with title Fres = 7.3421 Hz, Tres = 199.9855 ms, xlabel Time (s), ylabel Frequency (Hz) contains an object of type image.

入力引数

すべて折りたたむ

時間配列。ベクトル、行列、または N 次元配列として指定します。

単精度データを使用して t を指定した場合、chirp 関数は単精度信号 y を生成します。

データ型: single | double

時間 0 での初期瞬時周波数。実数スカラーとして Hz 単位で指定します。

データ型: single | double

参照時間。秒単位の正のスカラーとして指定します。

データ型: single | double

時間 t1 での瞬時周波数。実数スカラーとして Hz 単位で指定します。

データ型: single | double

スイープ手法。"linear""quadratic"、または "logarithmic" として指定します。

  • "linear" — 以下の式によって求められる瞬時周波数スイープ fi(t) が指定されます。

    fi(t)=f0+βt,

    ここで、

    β=(f1f0)/t1

    また、f0 の既定値は 0 です。係数 β により、時間 t1 における望ましい周波数ブレークポイント f1 の維持が確保されます。

  • "quadratic" — 以下の式によって求められる瞬時周波数スイープ fi(t) が指定されます。

    fi(t)=f0+βt2,

    ここで、

    β=(f1f0)/t12

    また、f0 の既定値は 0 です。f0 > f1 (ダウンスイープ) の場合、既定の形状は凸になります。f0 < f1 (アップスイープ) の場合、既定の形状は凹になります。

  • "logarithmic" — 以下の式によって求められる瞬時周波数スイープ fi(t) が指定されます。

    fi(t)=f0×βt,

    ここで、

    β=(f1f0)1t1

    また、f0 の既定値は 10–6 です。

データ型: char | string

初期位相。正のスカラーとして度単位で指定します。

データ型: single | double

2 次チャープのスペクトログラム形状。"convex" または "concave" として指定します。shape は正の周波数軸での放物線の形状を記述します。shape を指定しなかった場合は、f0 > f1 のダウンスイープでは "convex" になり、f0 < f1 のアップスイープでは "concave" になります。

データ型: char | string

出力の実数/複素数。"real" または "complex" として指定します。

データ型: char | string

出力引数

すべて折りたたむ

ベクトルとして返されるスイープ周波数の余弦信号。

拡張機能

すべて展開する

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

バージョン履歴

R2006a より前に導入

すべて展開する