资源简介

结合具体应用,以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


评论

共有 条评论