1. 程式人生 > >**matlab中取樣函式**

**matlab中取樣函式**

轉載自:http://blog.sina.com.cn/gjchunqiu

一、dyaddown

功能:
對時間序列進行二元取樣,每隔一個元素提取一個元素,得到一個降取樣時間序列。

格式:

1.y = dyaddown(x, EVENODD)

當EVENODD=0時,從x中第二個元素開始取樣(偶取樣);當EVENODD=1時,從x中第一個元素開始取樣(奇取樣)。

2.y = dyaddown(x)

EVENODD預設,按EVENODD=0

二、dyadup

功能:
對時間序列進行二元插值,每隔一個元素插入一個0元素,得到一個時間序列。

格式:

1.y = dyadup(x, EVENODD)

當EVENODD=0時,從x中第二個元素開始取樣(偶取樣);當EVENODD=1時,從x中第一個元素開始取樣(奇取樣)。

2.y = dyadup(x)

EVENODD預設,按EVENODD=0

三、interp

功能:
對時間序列進行整數倍插值,使得時間序列曲線更光滑。

格式:

1.y = interp(x, r)

在x中插入一些資料,使得插值後的序列y的長度為x的r倍。

2.y = interp(x, r, l, alpha)

插值後得到的序列y的長度為x的r倍。

3.[y, b] = interp(x, r, l, alpha)

插值後同時得到一個低通插值濾波器的係數,長度為2rl+1.

說明:

x–時間序列
r–插入點的倍數
l–插值濾波器長度

alpha–濾波器的截止頻率,0<alpha<=1,假設原序列的取樣頻率之半為1,預設時l=4,alpha=0.5.
y–插值後得到的時間學列
b–低通插值濾波器的係數,長度為2rl+1

四、downsample

功能:
對時間序列重取樣,在原時間序列中等間隔地取出一些項,得到新序列。

格式:

1.y = downsample(x, n)

從第一項開始,等間隔n對x取樣,得到的序列為y。

2.y = downsample(x, n, phase)

從第phase+1項開始,等間隔n對x取樣,得到的序列為y,而0<=phase<n.

五、decimate

功能:
對時間序列進行整數倍取樣處理,使得時間序列的長度降低。

格式:

1.y = decimate(x, r)

將時間序列x的取樣頻率降低為原來的1/r,即length(y)=length(x)/r。在抽取之前,預設地採用了8階chebyshevI型低通濾波器壓縮頻帶。

2.y = decimate(x, r, n)

採用n階chebyshevI型低通濾波器。

3.y = decimate(x, r, ‘fir’)

採用30階的FIR型低通濾波器來壓縮頻帶,對時間序列進行整數倍抽取。

4.y = decimate(x, r, n, ‘fir’)

指定當對時間序列進行整數倍抽取的時候,採用n點FIR型低通濾波器來壓縮頻帶,對時間序列進行整數倍抽取。

說明:

x–時間序列
r–取樣要降低的倍數
n–指定所採用的chebyshevI型低通濾波器的階數
‘fir’–FIR濾波器

六、resample

功能:
對時間序列進行重取樣。

格式:

1.y = resample(x, p, q)

採用多相濾波器對時間序列進行重取樣,得到的序列y的長度為原來的序列x的長度的p/q倍,p和q都為正整數。此時,預設地採用使用FIR方法設計的抗混疊的低通濾波器。

2.y = resample(x, p, q, n)

採用chebyshevIIR型低通濾波器對時間序列進行重取樣,濾波器的長度與n成比例,n預設值為10.

3.y = resample(x, p, q, n, beta)

beta為設定低通濾波器時使用Kaiser窗的引數,預設值為5.

4.y = resample(x, p, q, b)

b為重取樣過程中濾波器的係數向量。

5.[y, b] = resample(x, p, q)

輸出引數b為所使用的濾波器的係數向量。

說明:

x–時間序列
p、q–正整數,指定重取樣的長度的倍數。
n–指定所採用的chebyshevIIR型低通濾波器的階數,濾波器的長度與n成比列。
beta–設計低通濾波器時使用Kaiser窗的引數,預設值為5.