📄 sample_filter.m
字号:
%用窗函数法设计一个线形相位FIR低通数字滤波器,设计指标为wp=0.25pi,ws=0.4pi,Rp=1dB,Rs=40dB
N=256;F=1000;T=1/F; %抽样频率设置
n=1:N;f1=300;f2=100; %信号的频率设置
x=1.3*sin(2*pi*f1*n*T)+sin(2*pi*f2*n*T)+sin(2*pi*(f1+20)*n*T) %信号的产生:f1=300HZ,f2=100Hz,f3=320Hz
subplot(2,2,1);stem(n,x);title('signal x(n)');grid; %信号的绘图
k=[0:1:N/2];w=2*pi/N*k;
X=fft(x,N)';magX=abs(X(1:1:N/2+1)); %输入信号的频谱及绘图
subplot(2,2,2);plot(w/(2*pi),magX);
title('X(e^j^w)');xlabel('频率(单位:2*pi)');ylabel('|X|');axis([0,0.8,0,200]);grid;
wp=0.25*pi;ws=0.3*pi;Rp=1;Rs=40;N=256;n=[0:1:N-1];
wc=(ws+wp)/2;
hd=ideal_lp(wc,N);
w_han=(blackman(N))';
h=hd.*w_han
[db,mag,pha,grd,w]=freqz_m(h,1);
subplot(2,2,3);plot(w/pi,db);
xlabel('频率(pi)');title('H(db)');axis([0,1,-150,30]);
%subplot(2,2,2);plot(w/pi,pha);
%xlabel('频率(pi)');title('相位(pi)');
%subplot(2,2,3);stem(n,h);title('h(n)');
%subplot(2,2,4);stem(n,w_han);title('win-hanning');
y=filter(h,1,x); %用所设计滤波器对输入信号进行滤波处理
k=[0:1:N/2];w=2*pi/N*k;
Y=fft(y,N)';magY=abs(Y(1:1:N/2+1)); %滤波输出信号的频谱及绘图
subplot(2,2,4);plot(w/(2*pi),magY);axis([0,0.8,0,120]);grid;
title('Y(e^j^w)');xlabel('频率(单位:2*pi)');ylabel('|Y|');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -