天天看點

信号處理常用matlab之成形濾波1 成形濾波

文章目錄

  • 1 成形濾波
    • 1.1 矩形脈沖成形
    • 1.2 升餘弦成形濾波器生成 rcosdesign
    • 1.3 升餘弦成形濾波器生成 rcosine
    • 1.3.1 num= rcosine(Fd,Fs)
    • 1.3.1 num= rcosine(Fd,Fs,type_flag,r,delay)
    • 1.4 升餘弦成形濾波器生成 rcosfir
    • 1.5 成形濾波upfirdn
    • 1.6 成形濾波rcosflt

1 成形濾波

在實際的基帶傳輸系統中對在信道中傳輸的基帶信号波形要求:高頻分量盡量少;不含直流分量,低頻分量盡量少;能提取位定時信号,在接收端再進行抽樣判決,輸出信号碼元。

1.1 矩形脈沖成形

基帶信号波形最常見的是矩形脈沖,因為矩形脈沖易于形成和變換,但是表示資訊碼元的單個脈沖的波形并非一定是矩形的,根據實際信道情況,還可以是三角波、高斯脈沖、升餘弦脈沖等其它形式。

rectpulse

y = rectpulse(x,nsamp) 對向量x的每個元素重複nsamp。

1.2 升餘弦成形濾波器生成 rcosdesign

b = rcosdesign(beta,span,sps,shape)

beta: 滾降系數,取值0~1之間,決定頻寬和陡峭程度。取值一般大于0.2。

span: 表示截斷的符号範圍。

sps: 單個符号範圍的采樣個數。

shape:可選參數。可不加,可加上’normal’,可加上’sqrt’。

當選擇’sqrt’時,傳回一個平方根升餘弦濾波器。

這個函數生成升餘弦或根升餘弦濾波器,生成原理是采用窗函數法設計濾波器。生成的濾波器階數是spansps,濾波器長度是spansp+1。

升餘弦濾波器是線性相位FIR濾波器,是以對輸入信号進行濾波後,輸入信号延遲了span/2個符号,對應點數為span/2*sps。

1.3 升餘弦成形濾波器生成 rcosine

1.3.1 num= rcosine(Fd,Fs)

Fd:碼速率

Fs:采樣率 ,Fs/Fd必須是整數

預設滾降系數0.5,濾波器延遲3/Fd,機關:秒

num :生成的濾波器系數,系數長度:2delay(Fs/Fd)+1,預設delay=3

1.3.1 num= rcosine(Fd,Fs,type_flag,r,delay)

Fd:碼速率

Fs:采樣率 ,Fs/Fd必須是整數

預設滾降系數0.5,濾波器延遲3/Fd,機關:秒

type_flag:可選參數。可不加,可加上’normal’,可加上’sqrt’

r:可選參數,滾降系數,取值0~1之間

delay;濾波器延遲,delay/Fd是以秒為機關的濾波器延遲

num :生成的濾波器系數,系數長度2delay(Fs/Fd)+1

說明:現在的matlab版本一般都不推薦使用rcosine生成升餘弦濾波器。

1.4 升餘弦成形濾波器生成 rcosfir

B = rcosfir(R, N_T, RATE, T, FILTER_TYPE) designs and returns a square root raised cosine filter if FILTER_TYPE == ‘sqrt’. The default value of FILTER_TYPE, ‘normal’, returns a normal raised cosine filter.

R表示滾降因子

N_T表示截斷長度

RATE表示每個碼元的采樣個數

T表示采樣周期:T=1/fs

FILTER_TYPE表示濾波器類型

說明:現在的matlab版本一般都不推薦使用rcosfir來生成升餘弦濾波器。

1.5 成形濾波upfirdn

x = upfirdn(data, fir, p,q); up上采樣 fir濾波 dn下采樣

data:原始資料

fir:濾波器

p:對data進行p倍上采樣(插入零)

q:下采樣 上采樣就是内插或插值 下采樣就是一般意義上的采樣,隔幾個取一個值

upfirdn(xn,hn,p,q) 假設xn、hn的點數分别為N1、N2,輸出點數為ceil((N2+(N1-1)×p)/q) 。

1.6 成形濾波rcosflt

Y = rcosflt(X, Fd, Fs, TYPE_FLAG, R, DELAY) 對輸入信号X進行升餘弦濾波

Fd (Hz):X的輸入頻率

Fs (Hz):Y的輸出頻率【Fs必須是Fd的整數倍】

TYPE_FLAG指定濾波器的選型或者設計

R :roll-off factor 指定濾波器的過渡頻帶

DELAY :從濾波器的開始到脈沖響應峰值的時間延遲

Y :對輸入信号X進行升餘弦濾波之後的輸出,

長度為:(Fs/Fd)length(X)+2DELAY*(Fs/Fd)+1-1=(Fs/Fd)(length(X)+2DELAY)

說明:現在的matlab版本一般都不推薦使用rcosflt

碼間串擾是由于系統傳輸總特性(包括收、發濾波器和信道)不理想,導緻前後碼元的波形畸變、展寬,并使前面波形出現很長的拖尾,蔓延到目前碼元的抽樣時刻上,進而對目前碼元的抽樣判決造成幹擾。若将收、發濾波器和信道看成一個系統,輸入經過該系統,希望實作無碼間串擾,系統需要滿足一定的條件。這個條件就是奈奎斯特第一準則。

繼續閱讀