|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
有关凯塞窗设计带阻滤波器问题请教大神。感谢!7 k3 o0 [% G! W! E; G! Z2 ]3 S
. m( k0 \( o) |clc;0 h1 S7 E/ x |* k+ D
clear;" u, A: f# }+ s* q# A
f1=150;f2=250;f3=350;f4=450;%定义通阻带频率
* a7 f) C$ v2 \$ Nfs=2000;%采样频率. g! d" I1 Q8 c ?& t( r7 ? z
As=80;0 Q1 \. w" e2 R8 ~3 K
ws1=2*pi*f1/fs;
4 y% f5 |6 K0 d. k( j6 P0 Mwp1=2*pi*f2/fs;) P( J3 D7 _6 @% L
wp2=2*pi*f3/fs; 1 q2 ] |1 _% y
ws2=2*pi*f4/fs;
! w" T" l9 s q& G0 ebeta=0.1102*(As-8.7);, o$ X' [6 E+ T0 s0 Q6 I
Bt=min(abs(ws1-wp1),abs(ws1-wp1));! U7 Z0 Z% I6 ]- |/ ~9 n
N=ceil((As-7.95)/2.285/Bt);%定义滤波器的阶数
' L1 _6 L9 T) V4 I% j2 O) nb=fir1(N,[0.5*(f2+f1)/(fs/2),0.5*(f4+f3)/(fs/2)],'stopp',kaiser(N+1,beta)); %输入的参数分别是滤波器的阶数和截止频率
- C1 E$ C* p. `4 |# B% G1 }figure(1)
$ q) d Q3 F) O[h,f]=freqz(b,1,512);%幅频特性图
- d Z2 r: V3 C, i0 P4 s# f/ Pplot(f*fs/(2*pi),20*log10(abs(h)))%输入参数为频率与幅值
8 X& Y$ E) Y& Z' e4 i( y4 L/ l" s. `title('滤波器的增益响应');xlabel('频率/赫兹');ylabel('增益/分贝'); z6 x5 i) H# N% x4 p
figure(2)6 _, h- t. `! f* o
subplot(211)
& ?6 M% d# Y0 A% E! I3 O9 e2 c' ht=0:1/fs:0.1;%定义时间范围和步长8 ^4 G+ @& _7 U) g7 _
f5=100;f6=200;f7=500;%输入信号频率1 s4 R* O. l0 i) c* h0 A. V; z
s=sin(2*pi*f5*t)+sin(2*pi*f6*t)+sin(2*pi*f7*t);%滤波前信号; l- i& b9 K2 t) @
plot(t,s);%滤波前的信号图像
. G X" a J N* L1 g8 f H3 `title('信号滤波前时域图');xlabel('时间/秒');ylabel('幅度/伏');
( ~. `3 F' g5 g, t* L4 H7 i' }" Lsubplot(212)
' C1 S& s+ r( VFs=fft(s,512);%傅里叶变换
& p' e* [! G7 _" y8 g |% fAFs=abs(Fs);%信号频域图的幅值$ E4 m+ E6 m0 ^- ` i
f=(0:255)*fs/512;%频率采样* C$ b, J! E, ~$ [& ^( v/ {
plot(f,AFs(1:256));%滤波前的信号频域图
. @; O( ` [/ [7 E" H. wtitle('信号滤波前频域图');xlabel('频率/赫兹');ylabel('幅度');
) }4 e8 P8 ]& U8 O1 J6 ~figure(3)8 n7 K3 \# T7 o- a; r5 x' g
sf=filter(b,1,s);%对信号进行滤波7 V) s7 `4 h- _# a0 q
subplot(211)
8 G+ {9 w; h& Q. v- lplot(t,sf)%滤波后的信号图像
4 `. \3 ?7 v( b4 `title('信号滤波后时域图');xlabel('时间/秒');ylabel('幅度/伏');8 E- v8 G- W, m2 f4 P
axis([0 0.1 -2 2]);%限定坐标范围
- I1 t |+ V" a7 n \* Csubplot(212)
+ ?; M4 d; y2 S/ ?/ O I! UFsf=fft(sf,512);%滤波后的信号频域图
7 T: Y6 b* w- u; W& l- @AFsf=abs(Fsf);%信号频域图的幅值* ?" P& x3 Y' G/ Q- }9 U2 {
f=(0:255)*fs/512;%频率采样
2 m3 b! z% P2 d0 p* {7 ?0 Rplot(f,AFsf(1:256))%滤波后的信号频域图
" E J, h, P. X1 K# `title('信号滤波后频域图');xlabel('频率/赫兹');ylabel('幅度');
7 O& Z/ T) L+ ]为什么MATLAB运行的时候b=fir1(N,[0.5*(f2+f1)/(fs/2),0.5*(f4+f3)/(fs/2)],'stopp',kaiser(N+1,beta));会报错。 |
|