附录一
程序清单:
wp1=0.13*pi;
wst1=0.33*pi;
wst2=0.63*pi;
wp2=0.83*pi;
fs=15000;
twidth=min((wst1-wp1),(wp2-wst2));
N=ceil(4.2*pi/twidth);
n=[0:1:N-1];
wc1=(wst1+wp1)/2;
wc2=(wst2+wp2)/2;
a=(N-1)/2
m=n-a+eps;
hd=[sin(m*pi)+sin(wc1*m)-sin(wc2*m)]./(pi*m);
wr=(triang(N))';
h=hd.*wr;
[H,w]=freqz(h,[1],1000);
db=20*log10(abs(H));
plot(w/pi,db);
xlabel('*π rad/sec');
ylabel('幅度(dB)');
title('滤波器的幅度响应(dB)')
N1=512;
n=0:N1-1;
s=sin(0.1*pi*n)+sin(0.35*pi*n)+sin(0.45*pi*n)+sin(0.9*pi*n);
S=fft(s,N1);
sf = filter(h,1,s);
SF=fft(sf,N1);%进行 FFT 变换
f=(0:N1-1)'*fs/N1;%进行对应的频率转换
figure
subplot(4,1,1);
stem(n,s);%作输入信号的时域波形
title('输入信号波形图')
subplot(4,1,2);
plot(f,abs(S));%做频谱图
grid on;
xlabel('频率(Hz)');
ylabel('幅值');
评论4