📄 main.asv
字号:
close all;
b=1;
while(b==1)
N=input('请输入窗的长度N=:\n');
w1=input('请输入上截止频率W1(rad/pi):\n');
w2=input('请输入下截止频率W2(rad/pi):\n');
w1=w1*pi;
w2=w2*pi;
hd=ideal(w1,N)-ideal(w2,N);; %得到理想带通滤波器
[B,n,string]=window(N); %选择窗函数
h=hd.*B; %得到FIR数字滤波器
[H,m]=freqz(h,[1],1024,'whole'); %求其频率响应
mag=abs(H); %得到幅值
db=20*log10((mag+eps)/max(mag));
pha=angle(H); %得到相位
figure;
subplot(2,2,1);
stem(n,h,'.');
axis([0,N-1,-0.3,0.3]);
hold on;
x=zeros(N);
plot(n,x,'r-');
xlabel('n');
ylabel('h(n)');
title('实际低通滤波器的h(n)');
text((0.3*N),0.2,string);
hold off;
subplot(2,2,2);
plot(m/pi,db);
axis([0,1,-100,0]);
xlabel('w/pi');
ylabel('dB');
title('衰减特性(dB)');
set(gca,'ytick',[-60,-20,-3]);
grid;
subplot(2,2,3);
plot(m/pi,mag);
title('幅频特性');
xlabel('w/pi');
ylabel('幅值');
axis([0,1,0,1.5]);
text(0.4,0.8,string);
subplot(2,2,4);
plot(m/pi,pha);
hold on;
n=0:7;
x=zeros(8);
plot(n,x,'r-');
title('相频特性');
xlabel('w/pi');
ylabel('相位(rad)');
axis([0,1,-4,4]);
b=input('还要继续吗?:1(continue),0(exit):\n');
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -