pulstran
パルス列
説明
例
周期的矩形パルス
この例では、単位幅の既定の矩形パルスを使用してパルス列を生成します。反復周波数は 0.5 Hz、信号長は 60 秒、サンプル レートは 1 kHz です。ゲイン ファクターは、周波数 0.05 Hz の正弦波です。
t = 0:1/1e3:60; d = [0:2:60;sin(2*pi*0.05*(0:2:60))]'; x = @rectpuls; y = pulstran(t,d,x); plot(t,y) hold off xlabel('Time (s)') ylabel('Waveform')
非対称ノコギリ波
この例では、反復周波数 3 Hz の非対称ノコギリ波形を生成します。ノコギリの幅は 0.2 秒、歪度係数は –1 です。信号長は 1 秒で、サンプル レートは 1 kHz です。パルス列をプロットします。
fs = 1e3; t = 0:1/1e3:1; d = 0:1/3:1; x = tripuls(t,0.2,-1); y = pulstran(t,d,x,fs); plot(t,y) hold off xlabel('Time (s)') ylabel('Waveform')
周期性ガウス パルス
10 MHz のサンプル レートで、50% の帯域幅をもつ 10 kHz のガウス RF パルスをプロットします。包絡線がピークから 40 dB 減衰するところでパルスを打ち切ります。
fs = 1e7; tc = gauspuls('cutoff',10e3,0.5,[],-40); t = -tc:1/fs:tc; x = gauspuls(t,10e3,0.5); plot(t,x) xlabel('Time (s)') ylabel('Waveform')
パルス繰り返し周波数は 1 kHz、サンプル レートは 50 kHz、パルス列の長さは 25 ms です。ゲイン ファクターは、周波数 0.1 Hz の正弦波です。
ts = 0:1/50e3:0.025; d = [0:1/1e3:0.025;sin(2*pi*0.1*(0:25))]'; y = pulstran(ts,d,x,fs);
周期性ガウス パルス列をプロットします。
plot(ts,y) xlim([0 0.01]) xlabel('Time (s)') ylabel('Waveform')
カスタム パルス列
指数によって減衰する正弦波を構成するカスタム パルスを生成する関数を記述します。パルスは時間の奇関数です。生成する関数は、正弦波周波数と減衰係数の単一の値を指定する 2 番目の入力引数をもちます。1 kHz で 1 秒間サンプリングされた、周波数と減衰する値が両方とも 30 に等しい、生成されたパルスを表示します。
fnx = @(x,fn) sin(2*pi*fn*x).*exp(-fn*abs(x)); ffs = 1000; tp = 0:1/ffs:1; pp = fnx(tp,30); plot(tp,pp) xlabel('Time (s)') ylabel('Waveform')
カスタム パルスの列を生成するには、関数 pulstran
を使用します。列は 2 kHz で 1.2 秒間サンプリングされています。パルスは、3 分の 1 秒ごとに発生し、指数関数的に減少する振幅をもちます。
生成されたパルスをプロトタイプとして最初に指定します。関数呼び出しにはプロトタイプのサンプル レートを含めます。この場合、pulstran
は指定された場所にパルスを複製します。
fs = 2e3; t = 0:1/fs:1.2; d = 0:1/3:1; dd = [d;4.^-d]'; z = pulstran(t,dd,pp,ffs); plot(t,z) xlabel('Time (s)') ylabel('Waveform')
パルス列を再度生成します。ただし、ここでは生成する関数を入力引数として使用します。関数呼び出しに周波数と減衰するパラメーターを含めます。この場合、pulstran
はゼロ付近で中央揃えされるようにパルスを生成します。
y = pulstran(t,dd,fnx,30); plot(t,y) xlabel('Time (s)') ylabel('Waveform')
カスタム パルスを使用した内挿法の変更
周波数が 0.25 Hz のノコギリ波形を指数関数的に減衰するカスタムを生成する関数を記述します。生成する関数は、ノコギリ波周波数と減衰係数の単一の値を指定する 2 番目の入力引数をもちます。0.1 kHz で 1 秒間サンプリングされた、周波数と減衰値が 50 に等しい、生成されたパルスを表示します。
fnx = @(x,fn) sawtooth(2*pi*fn*0.25*x).*exp(-2*fn*x.^2); fs = 100; t = 0:1/fs:1; pp = fnx(t,50); plot(t,pp)
カスタム パルスの列を生成するには、関数 pulstran
を使用します。列は 0.1 kHz で 125 秒間サンプリングされています。パルスは 25 秒ごとに発生し、指数関数的に減少する振幅をもちます。
生成されたパルスをプロトタイプとして指定します。既定の線形内挿法、最近傍内挿および区分的 3 次内挿を使用した 3 つのパルス列を生成します。単一プロットのパルス列を比較します。
d = [0:25:125; exp(-0.015*(0:25:125))]'; ffs = 100; tp = 0:1/ffs:125; r = pulstran(tp,d,pp); y = pulstran(tp,d,pp,'nearest'); q = pulstran(tp,d,pp,'pchip'); plot(tp,r) hold on plot(tp,y) plot(tp,q) xlim([0 125]) legend('Linear interpolation','Nearest neighbor interpolation','Piecewise cubic interpolation') hold off
入力引数
t
— 時間値
ベクトル
func
が評価される時間値。ベクトルとして指定します。
d
— オフセット
行ベクトル | 2 列の行列
配列 t
の値から削除されたオフセット。実数ベクトルとして指定します。オプションのゲイン ファクターは、d
を 2 列の行列 (列 1 に定義されたオフセット、列 2 に関連するゲイン) として設定することで、各遅延評価に適用できます。d
を行ベクトルとして指定した場合、値は遅延としてのみ解釈されます。
func
— 連続関数
'rectpuls'
| 'gauspuls'
| 'tripuls'
| 関数ハンドル
そのサンプルに基づいたパルス列を生成するために使用される連続関数。'rectpuls'
、'gauspuls'
、'tripuls'
、または関数ハンドルとして指定します。
関数ハンドルとして func
を使用する場合、次のように関数パラメーターを渡すことができます。
y = pulstran(t,d,'gauspuls',10e3,0.5);
これは、50% の帯域幅をもつ 10 kHz のガウス パルスを使用してパルス列を作成します。
p
— プロトタイプ パルス
ベクトル
プロトタイプ関数。ベクトルとして指定します。p
の区間は [0,(length(p)-1)/fs]
で表されます。そのサンプルは、この区間の外側では等しくゼロです。既定の設定では、線形内挿を使用して遅延が生成させます。
fs
— サンプル レート
1
(既定値) | 実数スカラー
サンプル レート (Hz 単位)。実数スカラーとして指定します。
intfunc
— 内挿法
'linear'
(既定値) | 'nearest'
| 'next'
| 'previous'
| 'pchip'
| 'cubic'
| 'v5cubic'
| 'makima'
| 'spline'
内挿法。次の表のオプションのいずれかとして指定します。
メソッド | 説明 | 連続性 | コメント |
---|---|---|---|
| 線形内挿。クエリ点での内挿値は、それぞれの次元の隣接するグリッド点での値の線形内挿を基にしています。これは既定の内挿法です。 | C0 |
|
| 最近傍内挿。クエリ点での内挿値は、最も近いサンプル グリッド点の値です。 | 不連続 |
|
| 次の傍内挿。クエリ点での内挿値は、次のサンプル グリッド点の値です。 | 不連続 |
|
| 前の傍内挿クエリ点での内挿値は、前のサンプル グリッド点の値です。 | 不連続 |
|
| 形状維持区分的 3 次内挿。クエリ点での内挿値は、隣接するグリッド点の値の形状維持区分的 3 次内挿を基にしています。 | C1 |
|
| MATLAB® 5 で使用される 3 次畳み込み。 | C1 | 点は一定間隔でなければなりません。 |
| 変更された Akima 3 次エルミート内挿。クエリ点での内挿値は、最大 3 つの角度をもつ多項式の区分的関数を基にしています。Akima 式はオーバーシュートを回避するために変更されます。 | C1 |
|
| 節点なしの端点条件を使用したスプライン内挿。クエリ点での内挿値は、それぞれの次元の隣接するグリッド点での値の 3 次内挿を基にしています。 | C2 |
|
出力引数
y
— パルス列
ベクトル
関数で生成したパルス列。ベクトルとして返されます。
拡張機能
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
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:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)