【 MATLAB 】訊號處理工具箱之波形產生函式 pulstran
前兩篇博文和這篇博文有些許聯絡:
MATLAB幫助文件稱pulstran函式為:脈衝串(Pulse train)產生函式。 pulstran從連續函式或採樣原型脈衝生成脈衝序列。
語法格式:
語法格式1:
y = pulstran(t,d,'func')基於連續函式'func'的樣本生成脈衝序列,其中'func'是
'gauspuls',用於產生高斯調製的正弦脈衝 'rectpuls',用於生成取樣的非週期矩形 'tripuls',用於生成取樣的非週期三角形 pulstran被評估長度(d)次並且返回評估的總和y = func(t-d(1))+ func(t-d(2))+ ...
在移除從向量d獲取的標量引數偏移之後,在陣列t中指定的引數值範圍內計算該函式。 請注意,func必須是一個向量化函式,可以將陣列t作為引數。
通過將d指定為兩列矩陣,可以將可選的增益因子應用於每個延遲的評估,其中第1列中定義的偏移和第2列中的相關增益。 請注意,行向量將被解釋為僅指定延遲。
使用上面這種格式,'func'的相關引數都是預設的。
可以設定‘func’的相關引數,見語法格式2.
語法格式2:
pulstran(t,d,'func',p1,p2,...)允許根據需要將其他引數傳遞給'func'。 例如:
func(t-d(1),p1,p2,...)+ func(t-d(2),p1,p2,...)+ ...
針對語法格式2舉個例子:
% This example generates an asymmetric sawtooth waveform with a repetition frequency of 3 Hz and a sawtooth width of 0.1 s. % The signal length is 1 s and the sample rate is 1 kHz. clc clear close all t = 0 : 1/1e3 : 1; % 1 kHz sample freq for 1 s d = 0 : 1/3 : 1; % 3 Hz repetition frequency y = pulstran(t,d,'tripuls',0.1,-1); plot(t,y) xlabel 'Time (s)', ylabel Waveform
y = pulstran(t,d,'tripuls',0.1,-1);
這個函式中的0.1以及-1都是‘tripuls’的引數,例子0.1是脈寬,-1表示脈衝最高幅值在最左邊,如果將-1去掉,則預設為0.5.影象如下:
可見,這是一個正三角鋸齒波脈衝串。
如果將‘func’的所有引數都使用預設值的話,那麼就成了語法格式1了。
語法格式3:
pulstran(t,d,p,fs)生成一個脈衝序列,它是向量p中原型脈衝的多個延遲插值之和,以fs速率取樣,其中p跨越時間間隔[0,(length(p) -1)/ fs],其樣本在此間隔之外相同。 預設情況下,線性插值用於生成延遲。
不太明白,先放這裡。
pulstran(t,d,p)假設取樣率fs等於1 Hz。
也就是說如果省略了fs,則預設為1Hz。
pulstran(...,'func')指定替代插值方法。
就這樣吧!