1 / 8
文档名称:

MATLAB-巴特沃兹滤波器.docx

格式:docx   大小:300KB   页数:8页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

MATLAB-巴特沃兹滤波器.docx

上传人:mama1 2022/5/11 文件大小:300 KB

下载得到文件列表

MATLAB-巴特沃兹滤波器.docx

文档介绍

文档介绍:细心整理
相位是信号的一个重要参数,所以一般在滤波中盼望实现零相位偏移或具有线性相位偏移。
此时此刻大致有两类方法实现零相位偏移:
1、将滤波器与一个全通滤波器级联,用后者的相位响应矫正前者。须要附
加全通滤波器的设计运算量以及额外细心整理
相位是信号的一个重要参数,所以一般在滤波中盼望实现零相位偏移或具有线性相位偏移。
此时此刻大致有两类方法实现零相位偏移:
1、将滤波器与一个全通滤波器级联,用后者的相位响应矫正前者。须要附
加全通滤波器的设计运算量以及额外的矫正算法运算量;
2、运用两个完全一样的滤波器,将通过第一个滤波器后的信号反转再通过
其次个滤波器,再将其次个滤波器的输出序列反转作为整个系统的输出。
综上我们接受其次种方法,用MATLAB实现:
clear
clc
close all
%生成一个信号
Fs=1000;
t=(0:1/Fs:1);
y=sin(2*pi*5*t+pi/4)+sin(2*pi*50*t+pi/5)+sin(2*pi*60*t+pi/12);
yy=sin(2*pi*5*t+pi/4);
figure(1)
subplot(211)
plot(t,y),grid on
title('输入信号波形')
xlabel('t')
ylabel('magnitude')
subplot(212)
plot(t,angle(y))
title('输入信号相位')
xlabel('t')
ylabel('angle')
%设计一个低通滤波器
fp=10/500;%通带截止频率
fs=30/500;%阻带截止频率
wp=3;%通带最大衰减
ws=30;%阻带最大衰减
[n,fc]=buttord(fp,fs,wp,ws);
[b,a]=butter(n,fc);
figure(4)
freqz(b,a);
%将生成的信号通过低通滤波器
细心整理
z=filter(b,a,y);
figure(2)
subplot(221)
plot(t,z)
title('通过第一个滤波器后的波形')
xlabel('t')
ylabel('output')
axis([0 1 -1 1])
subplot(222)
plot(t,angle(z))
title('通过第一个滤波器后的相位')
xlabel('t')
ylabel('angle')
subplot(223)
plot(t,yy)
title('理论上过滤后的波形')
xlabel('t')
ylabel('output')
axis([0 1 -1 1])
subplot(224)
plot(t,angle(yy));
title('原相位')
xlabel('t');
ylabel('angle')
zf=fliplr(z); %对经过第一个滤波器后的信号序列反转
zfz=filter(b,a,zf); %对经过第一个滤波器后的信号序列反转再通过滤波器
zz=fliplr(zfz); %对经过两次滤波器后的输出反转作为最终输出
figure(3)
subplot(221)
plot(t,z