【濾波器】基於matlab平方根升餘弦濾波器【含Matlab原始碼 994期】
阿新 • • 發佈:2021-06-19
一、簡介
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