1. 程式人生 > 其它 >【濾波器】基於matlab平方根升餘弦濾波器【含Matlab原始碼 994期】

【濾波器】基於matlab平方根升餘弦濾波器【含Matlab原始碼 994期】

一、簡介

B = RCOSFIR(R, N_T, rate, T, sqrt),升餘弦成形濾波器是常用的低通filter,如果N_T是數值不是向量的話,length(B)=2*N_T_rate +1。前面介紹的升餘弦濾波器的傳輸函式是整個系統的合成傳輸函式 H(f),即從傳送端開始,經通道到接收濾波器的整個傳輸函式。接收端的濾波是對整個傳輸函式的補償,它使得整體傳輸函式成為一個能夠滿足奈奎斯特第一準則(實現無碼間串擾)的傳輸函式,例如升餘弦函式。通常,把它放置在收發兩端,即將接收濾波器和傳送濾波器設計(匹配)為平方根升餘弦函式(升餘弦函式的平方根)。若不考慮由於通道引起的碼間串擾,兩個平方根升餘弦函式相乘(相當於時域卷積)就得到升餘弦形式的合成的系統傳輸函式。

二、原始碼

%設定參量,採用4倍取樣速率,滾降係數為0.5
Fd=1; Fs=4; Delay=2;  R=0.5;
%建立升餘弦滾降濾波器
[yf,tf]=rcosine(Fd,Fs,'sqrt',R,Delay);
%畫圖得到升餘弦滾降濾波器波形
%b1=ones(1,length(t2));% 濾波器輸入矩形脈衝
figure(1);
subplot(3,1,1);
plot(yf);
grid;
xlabel('Time');
ylabel('Amplitude');
title('平方根升餘弦滾降濾波器h(t)');
%定義一個與二元序列對應的時間序列作為原始訊號
x=[zeros(1,10),ones(1,10),ones(1,10),zeros(1,10),zeros(1,10),zeros(1,10)];   
y1=filter(yf,tf,x)/(Fs^0.5);
%y2=filter(yf,tf,y1)/(Fs^0.5);
%畫出原始訊號波形
subplot(3,1,2);
plot(x);
axis([0,61,-0.2,1.2]);
title('原始訊號');

三、執行結果

四、備註

版本:2014a
完整程式碼或代寫加1564658423