滤波器种类
在本例中,选择三个频率为 5Hz,15Hz,25Hz 的信号,代码如下:
F1=5;%第一个点频信号分量频率
F2=15;%第二个点频信号分量频率
F3=25;
Fs=100;%采样率
T=10;%时宽
B=10;%FIR 截止频率
n=round(T*Fs);%采样点个数
t=linspace(0,T,n);
x=cos(2*pi*F1*t)+cos(2*pi*F2*t)+cos(2*pi*F3*t);
figure(11);
plot(t,x);
title('原始信号时域');
xlabel('t/s');
ylabel('幅度');
figure(13);
fft_x=fftshift(fft(x));
f=linspace(-Fs/2,Fs/2,n);
plot(f,abs(fft_x));
title('原始信号频谱');
xlabel('f/Hz');
ylabel('幅度');
axis([ 0 50 0 100]);
此行加入任意一个滤波器
figure(12);
plot(t,y);
title('滤波后信号时域');
xlabel('t/s');
ylabel('幅度');
figure(14);
fft_y=fftshift(fft(y));
plot(f,abs(fft_y));
title('滤波后信号频谱');
xlabel('f/Hz');
ylabel('幅度');
axis([ 0 50 0 100]);
具体执行:C:\Users\Administrator\Desktop\任霞\复声强器\12 月 2 日实验
1、巴特沃思
(1)低通
fp=6;
fs=9;
1
wp=2*fp/Fs;
ws=2*fs/Fs;
Rp=2;
As=30;
[N,wc]=buttord(wp,ws,Rp,As);
[b,a]=butter(N,wc,'low');
y=filter(b,a,x);
(2)高通
fp=21;
fs=19;
wp=2*fp/Fs;
ws=2*fs/Fs;
Rp=2;
As=30;
[N,wc]=buttord(wp,ws,Rp,As);
[b,a]=butter(N,wc,'high');
y=filter(b,a,x);
(3)带通
fp1=14;
fp2=16;
fs1=11;
fs2=19;
wp1=2*fp1/Fs;
wp2=2*fp2/Fs;
ws1=2*fs1/Fs;
ws2=2*fs2/Fs;
wp=[wp1,wp2];
ws=[ws1,ws2];
Rp=2;
As=30;
[N,wc]=buttord(wp,ws,Rp,As);
[b,a]=butter(N,wc,'bandpass');
y=filter(b,a,x);
(4)带阻
fp1=11;
fp2=19;
fs1=14;
fs2=16;
wp1=2*fp1/Fs;
wp2=2*fp2/Fs;
ws1=2*fs1/Fs;
ws2=2*fs2/Fs;
wp=[wp1,wp2];
2
ws=[ws1,ws2];
Rp=2;
As=30;
[N,wc]=buttord(wp,ws,Rp,As);
[b,a]=butter(N,wc,'stop');
y=filter(b,a,x);
2、切比雪夫Ⅰ型
(1)低通
fp=6;
fs=9;
wp=2*fp/Fs;
ws=2*fs/Fs;
Rp=2;
As=30;
[N,wc]=cheb1ord(ws,wp,Rp,As);
[b,a]=cheby1(N,Rp,wc,'low');
y=filter(b,a,x);
(2)高通
fp=23;
fs=20;
wp=2*fp/Fs;
ws=2*fs/Fs;
Rp=2;
As=30;
[N,wc]=cheb1ord(ws,wp,Rp,As);
[b,a]=cheby1(N,Rp,wc,'high');
y=filter(b,a,x);
(3)带通
fp1=14;
fp2=16;
fs1=11;
fs2=19;
wp1=2*fp1/Fs;
wp2=2*fp2/Fs;
ws1=2*fs1/Fs;
ws2=2*fs2/Fs;
wp=[wp1,wp2];
ws=[ws1,ws2];
Rp=2;
As=30;
[N,wc]=cheb1ord(ws,wp,Rp,As);
[b,a]=cheby1(N,Rp,wc,'bandpass');
y=filter(b,a,x);
3
(4)带阻
fp1=11;
fp2=19;
fs1=14;
fs2=16;
wp1=2*fp1/Fs;
wp2=2*fp2/Fs;
ws1=2*fs1/Fs;
ws2=2*fs2/Fs;
wp=[wp1,wp2];
ws=[ws1,ws2];
Rp=2;
As=30;
[N,wc]=cheb1ord(ws,wp,Rp,As);
[b,a]=cheby1(N,Rp,wc,'stop');
y=filter(b,a,x);
3、切比雪夫Ⅱ型
(1)低通
fp=6;
fs=9;
wp=2*fp/Fs;
ws=2*fs/Fs;
Rp=2;
As=30;
[N,wc]=cheb2ord(ws,wp,Rp,As);
[b,a]=cheby2(N,As,wc,'low');
y=filter(b,a,x);
(2)高通
fp=23;
fs=20;
wp=2*fp/Fs;
ws=2*fs/Fs;
Rp=2;
As=30;
[N,wc]=cheb2ord(ws,wp,Rp,As);
[b,a]=cheby2(N,As,wc,'high');
y=filter(b,a,x);
(3)带通
fp1=14;
fp2=16;
fs1=11;
fs2=19;
4
wp1=2*fp1/Fs;
wp2=2*fp2/Fs;
ws1=2*fs1/Fs;
ws2=2*fs2/Fs;
wp=[wp1,wp2];
ws=[ws1,ws2];
Rp=2;
As=30;
[N,wc]=cheb2ord(ws,wp,Rp,As);
[b,a]=cheby2(N,As,wc,'bandpass');
y=filter(b,a,x);
(4)带阻
fp1=11;
fp2=19;
fs1=14;
fs2=16;
wp1=2*fp1/Fs;
wp2=2*fp2/Fs;
ws1=2*fs1/Fs;
ws2=2*fs2/Fs;
wp=[wp1,wp2];
ws=[ws1,ws2];
Rp=2;
As=30;
[N,wc]=cheb2ord(ws,wp,Rp,As);
[b,a]=cheby2(N,As,wc,'stop');
y=filter(b,a,x);
4、椭圆函数型
(1)低通
fp=6;
fs=9;
wp=2*fp/Fs;
ws=2*fs/Fs;
Rp=2;
As=30;
[N,wc]=ellipord(wp,ws,Rp,As);
[b,a]=ellip(N,Rp,As,wc,'low');
y=filter(b,a,x);
(2)高通
fp=23;
fs=21;
wp=2*fp/Fs;
ws=2*fs/Fs;
5
Rp=2;
As=30;
[N,wc]=ellipord(wp,ws,Rp,As);
[b,a]=ellip(N,Rp,As,wc,'high');
y=filter(b,a,x);
(3)带通
fp1=14;
fp2=16;
fs1=11;
fs2=19;
wp1=2*fp1/Fs;
wp2=2*fp2/Fs;
ws1=2*fs1/Fs;
ws2=2*fs2/Fs;
wp=[wp1,wp2];
ws=[ws1,ws2];
Rp=2;
As=30;
[N,wc]=ellipord(wp,ws,Rp,As);
[b,a]=ellip(N,Rp,As,wc,'bandpass');
y=filter(b,a,x);
(4)带阻
fp1=11;
fp2=19;
fs1=13;
fs2=17;
wp1=2*fp1/Fs;
wp2=2*fp2/Fs;
ws1=2*fs1/Fs;
ws2=2*fs2/Fs;
wp=[wp1,wp2];
ws=[ws1,ws2];
Rp=2;
As=30;
[N,wc]=ellipord(wp,ws,Rp,As);
[b,a]=ellip(N,Rp,As,wc,'stop');
y=filter(b,a,x);
注:
1、冲激响应不变法:在[b,a]=ellip(N,Rp,As,wc,'stop');(此处以
ellip 函数为例)之后加[b0,a0]=impinvar(b,a,Fs);。(impinvar 函
数的位置是 C:\Users\Administrator\Desktop\任霞\DSP\第七章)
6
2、双线性变换法:在[b,a]=ellip(N,Rp,As,wc,'stop');(此处以 ellip
函数为例)之后加[b0,a0]=bilinear(b,a,Fs);。除此之外,还需要变
化,具体见书 453 上午例题 7.22。(bilinear 函数的位置是
C:\Users\Administrator\Desktop\任霞\DSP\第七章)
3、数字频带变换法:详细见书。
7