1. 程式人生 > >【 MATLAB 】訊號處理工具箱之波形產生函式 pulstran

【 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')指定替代插值方法。

就這樣吧!