📄 samp5_13.m
字号:
%Samp5_13
N=5;Rp=3;f1=100;f2=500; %滤波器阶数、边界频率(Hz)
w1=2*pi*f1;w2=2*pi*f2; %边界频率(rad/s)
[z,p,k]=cheb1ap(N,Rp); %设计Chebyshev I型原型低通滤波器
[b,a]=zp2tf(z,p,k); %转换为传递函数形式
Wo=sqrt(w1*w2); %中心频率
Bw=w2-w1; %频带宽度
[bt,at]=lp2bp(b,a,Wo,Bw); %频率转换
[h,w]=freqs(bt,at); %计算复数频率响应
figure(1)
subplot(2,2,1),semilogy(w/2/pi,abs(h)); %绘制幅频响应
xlabel('频率/Hz');grid on;title('幅频图');
subplot(2,2,2),plot(w/2/pi,angle(h)*180/pi);%绘制相频响应
xlabel('频率/Hz');
ylabel('相位/^o');grid on;title('相频图')
H=[tf(bt,at)]; %在MATLAB中表示此滤波器
[h1,t1]=impulse(H); %绘出系统的脉冲响应图
subplot(2,2,3),plot(t1,h1);xlabel('时间/s');title('脉冲响应')
[h2,t2]=step(H); %绘出系统的阶跃响应图
subplot(2,2,4),plot(t2,h2);xlabel('时间/s');title('阶跃响应')
figure(2)
dt=1/2000;
t=0:dt:0.1; %给出模拟滤波器输出的时间范围
u=sin(2*pi*30*t)+0.5*cos(2*pi*300*t)+2*sin(2*pi*800*t); %模拟输入信号
subplot(2,2,1),plot(t,u) %绘制模拟输入信号
xlabel('时间/s');title('输入信号')
[ys,ts]=lsim(H,u,t); %模拟系统的输入u时的输出
subplot(2,2,2),plot(ts,ys) %绘制模拟输出信号
xlabel('时间/s'),title('输出信号');
subplot(2,2,3),plot((0:length(u)-1)/(length(u)*dt),abs(fft(u))*2/ length(u));%绘输入信号振幅谱
title('输入信号振幅谱'),xlabel('频率/Hz')
Subplot(2,2,4),
Y=fft(ys);
plot((0:length(Y)-1)/(length(Y)*dt),abs(Y)*2/length(Y)); %绘制输出信号振幅谱
title('输出信号振幅谱')
xlabel('频率/Hz')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -