📄 matlabbuttfilter.txt
字号:
利用Matlab工具对巴特沃斯模拟低通滤波器的设计结果进行了验证,Matlab程序见附页。利用MatLab程序实现的输入信号、低通无限冲击响应滤波器的特性曲线以及滤波后的输出信号,所设计的滤波器基于巴特沃斯模拟低通滤波器设计法及双线性Z变换法设计二阶低通数字滤波器,利用C语言编写的程序可以成功的实现数字信号的无限冲击响应滤波。
Matlab验证程序清单:
%初始化信号采样率Fs、信号中两频率成分f1、f2
Fs=1000;
f1=100;
f2=400;
%设置离散时间点
t=[1:128]/Fs;
%信号中的两个成分x1、x2
x1=sin(2*pi*f1*t);
x2=sin(2*pi*f2*t);
x=x1+x2;
%*********************设置输入信号完毕
%输入信号的FFT变换
X=fft(x,512);
d1=max(X);
R=X/d1;
w=[0:255]/256*(Fs/2);
subplot(3,1,1)
plot(w,abs(R(1:256)'),'r')
%*********************输入信号变换完毕
%滤波参数的产生
[B,A] = BUTTER(2,0.3249); %B为转移函数分子系数,A为转移函数分母系数
[H,W] = FREQZ(B,A,512);
subplot(3,1,2)
plot(W*1000/(2*pi),abs(H),'-b'); %滤波器响应函数
%依据得到的参数进行滤波
xf=filter(B,A,x);
XF=fft(xf,512);
d2=max(XF);
C=XF/d2;
subplot(3,1,3)
plot(w,abs(C(1:256)'),'g')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -