資源簡介
以2倍抽取為例,結合具體應用,簡要分析了多相濾波的基本原理及具體實現方法,帶matlab代碼,可以從實驗結果看出,多相濾波可以實現與傳統FIR濾波相同的功能。
代碼片段和文件信息
clc
clear?all;
close?all;
%---------------------普通FIR濾波器---------------------------------%
b=[12345];
a=1;%由freqz(ba)分析得到了wc=0.209對應頻率值為0.209*1e3/2=104.5Hz
freqz(ba);
fs=1e3;%采樣率
ts=1/fs;%采樣周期
f1=20;
f2=400;
t=0:ts:1-ts;
x=cos(2*pi*f1*t)+cos(2*pi*f2*t);
y=filter(bax);
freqz(ba);%傳統FIR濾波器特性圖
figure;
subplot(411);
plot(tcos(2*pi*f1*t));
title(‘原始信號‘)
subplot(412);
plot(tx);
title(‘混合信號‘)
subplot(413);
plot(t(1:2:end)y(1:2:end));
title(‘傳統FIR濾波‘);
%---------------------多相FIR濾波器---------------------------------%
%---------------------多相FIR結構式---------------------------------%
%??H(Z)=1+2z^(-1)+3z^(-2)+4z^(-3)+5z^(-4)
%??H(Z)=[1+3z^(-2)+5z^(-4)]+z^(-1)[2+4z^(-2)]
%??H(Z)=E0(Z^2)+E1(Z^2)
%??E0=1+3z^(-1)+5z^(-2)?,E1=2+4z^(-1)
%---------------------多相FIR結構式---------------------------------%
b_0=[135];????????????%多相第一級對應的分子系數,對應E1
b_1=[24];??????????????%多相第二級對應的分子系數,對應E2
a_0=a;
a_1=a;
x_0=[x?0];??????????????
x_1=[0?x];??????????????%多相結構,增加一個延時,此延時是在抽取之前添加的
x_0=x_0(1:2:end);???????%D=2,兩倍抽取
x_1=x_1(1:2:end);
y_0=filter(b_0a_0x_0);%多相濾波第一個支路
y_1=filter(b_1a_1x_1);%多相濾波第二個支路
y1=y_0+y_1;
subplot(414);
plot(t(1:2:end)y1(1:end-1));
title(‘多相FIR濾波‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????87552??2014-04-02?13:59??polyphase_analysis.doc
?????文件???????1367??2014-04-02?13:13??polyphase_filter.m
-----------?---------??----------?-----??----
????????????????88919????????????????????2
評論
共有 條評論