📄 samp6_5.m
字号:
%Samp6_5
Wp=2000*2*pi;Ws=3000*2*pi; %滤波器截止频率
Rp=3;Rs=15; %通带波纹和阻带衰减
Fs=10000; %采样频率
Nn=128; %调用freqz所用的频率点数
[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s'); %模拟滤波器的最小阶数
[z,p,k]=buttap(N); %设计模拟低通原型Butterworth滤波器
[Bap,Aap]=zp2tf(z,p,k); %将零点极点增益形式转换为传递函数形式
[b,a]=lp2lp(Bap,Aap,Wn); %进行频率转换
[bz,az]=impinvar(b,a,Fs); %运用脉冲响应不变法得到数字滤波器的传递函数
figure(1)
[H,f]=freqz(bz,az,Nn,Fs); %求解数字滤波器的幅频特性和相频特性
subplot(2,1,1),plot(f,20*log10(abs(H)))
xlabel('频率/Hz');ylabel('振幅/dB');grid on;
subplot(2,1,2),plot(f,180/pi*unwrap(angle(H)))
xlabel('频率/Hz');ylabel('相位/^o');grid on;
figure(2)
f1=1000;f2=4000; %输入信号的频率
N=100; %数据长度
dt=1/Fs;n=0:N-1;t=n*dt; %采样间隔和时间序列
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t); %滤波器输入信号
subplot(2,1,1),plot(t,x),title('输入信号') %绘制输入信号
y=filtfilt(bz,az,x); %用函数filtfilt对输入信号进行滤波
y1=filter(bz,az,x); %用filter函数对输入信号滤波
subplot(2,1,2),plot(t,y,t,y1,':'),title('输出信号'),xlabel('时间/s')
legend( ' filtfilt ', 'filter') %加图例
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -