• 大小: 95KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: 其他
  • 标签: 零相位  

资源简介

滤波后能做到相位不失真,解决了滤波后相位出现偏移的问题。

资源截图

代码片段和文件信息

function outdata = ZeroPfilter(WpWsApAsx)
% Zero-Phase Filter base on buttor(基于巴特沃斯模拟滤波器的零相位滤波)
%-------------------------------------
% outdata = ZeroPfilter(WpWsApAsx)
% outdata: the filted signal
% [WpWsApAs]: parameter of buttor filter
% x: the origin signal
% by noWen(NNU_GIS)
% EXAMPLE:
% x = randn(4801);
% out = ZeroPfilter(0.05*pi0.1*pi115x);
% plot(x); hold all ;plot(out);
% legend(‘oridata‘‘filterdata‘);
%-------------------------------------

%-----有限冲激响应滤波器的边界处理(此处使用巴特沃斯模拟滤波器,不用正理边界)
% N = length(x);
% M = 30; %n of the filter
% xx = ones(N+M1);
% for i = 1 :N
%     xx(i)=x(i);
% end
% for i = 1 : M
%     xx(N+i)= 2*xx(N)-xx(N-i);
% end
%  x = xx;
%--------------------------------------------------------------------------

%-------------design of buttor filter(巴特沃斯模拟滤波器设计)---------------
%判断滤波方式
if length(Wp)==2 
    s = ‘bandpass‘ ;   %带通
    else if Wp > Ws
        s = ‘high‘ ;   %高通
    else if Wp < Ws
        s = ‘low‘  ;   %低通   
    end
    end
end
Ap = Ap/2; As = As/2;  %衰减速率减半(因为下面有两次滤波处理)
[NWn]=buttord(Wp/piWs/piApAs); %计算巴特沃斯滤波器阶次和截止频率
[ba]=butter(NWns);              %频率变换法设计巴特沃斯带通滤波器
%--------------------------------------------------------------------------

%---------------零相位滤波实现----------------
y = filter(bax);  %第一次滤波 
y = fliplr(y‘)‘;    %滤波结果反转
y = filter(bay);  %第二次滤波
y = fliplr(y‘)‘;    %再次反转,即为最终结果

%------------边界处理相关部分--------------
% for i = 1 :N
%     yy(i)=y(i);
% end
% y = yy;
%----------------------------------------

outdata = y‘;  %结果输出

end


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     112963  2009-07-23 12:27  一种新的零相移数字滤波器的改进算法.pdf

     文件       1775  2009-07-24 10:55  ZeroPfilter.m

----------- ---------  ---------- -----  ----

               114738                    2


评论

共有 条评论