高通滤波器matlab程序代码
matlab滤波器代码
数字信号处理:已知通带截止频率fp=5kHz,通带最大衰减ap=2dB,阻带截止频率fs=2kHz,阻带最小衰减as=30dB,按照以上技术指标设计巴特沃斯低通滤波器:wp=2*pi*5000;ws=2*pi*12000;Rp=2;As=30;[N,wc]=buttord(wp,ws,Rp,As,'s');[B,A]=butter(N,wc,'s');k=0:511;fk=0:14000/512:14000;wk=2*pi*fk;Hk=freqs(B,A,wk);subplot(2,2,1);plot(fk/1000,20*log10(abs(Hk)));grid onxlabel('频率(kHz)');ylabel('幅度(dB)')axis([0,14,-40,5])切比雪夫1型低通滤波器:wp=2*pi*3000;ws=2*pi*12000;Rp=0.1;As=60;[N1,wpl]=cheb1ord(wp,ws,Rp,As,'s');%cheb1ord,里面的是1,不是L[B1,A1]=cheby1(N1,Rp,wpl,'s');subplot(2,2,1);fk=0:12000/512:12000;wk=2*pi*fk;Hk=freqs(B1,A1,wk);plot(fk/1000,20*log10(abs(Hk)));grid onxlabel('频率(kHz)');ylabel('幅度(dB)')axis([0,12,-70,5])椭圆模拟低通滤波器:wp=2*pi*3000;ws=2*pi*12000;Rp=0.1;As=60;[N,wpo]=ellipord(wp,ws,Rp,As,'s');[B,A]=ellip(N,Rp,As,wpo,'s');subplot(2,2,1);fk=0:12000/512:12000;wk=2*pi*fk;Hk=freqs(B1,A1,wk);plot(fk/1000,20*log10(abs(Hk)));grid onxlabel('频率(kHz)');ylabel('幅度(dB)')axis([0,12,-70,5])p195-14wp=2*4/80;ws=2*20/80;rp=0.5;rs=45;[N,wc]=buttord(wp,ws,rp,rs);[B,A]=butter(N,wc);[hk,wk]=freqz(B,A);fk=wk/pi*40;plot(fk,20*log10(abs(hk)));axis([0,30,-100,0])xlabel('频率(kHZ)');ylabel('幅度(db)');grid on P195-16wp=2*325/2500;ws=2*225/2500;rp=1;rs=40;[N,wc]=ellipord(wp,ws,rp,rs);[B,A]=ellip(N,rp,rs,wc);[hk,wk]=freqz(B,A);fk=wk/pi*40;plot(fk,20*log10(abs(hk)));axis([0,30,-100,0])xlabel('频率(kHZ)');ylabel('幅度(db)');grid onP195-15wp=2*4/80;ws=2*20/80;rp=0.5;rs=45;[N,wc]=cheb1ord(wp,ws,rp,rs);[B,A]=cheby1(N,rp,wc);[hk,wk]=freqz(B,A);fk=wk/pi*40;plot(fk,20*log10(abs(hk)));axis([0,30,-100,0])xlabel('频率(kHZ)');ylabel('幅度(db)');grid on 切比雪夫低通滤波器wp=2*pi*3000;ws=2*pi*12000;rp=0.1;as=60;[N1,wp1]=cheb1ord(wp,ws,rp,as,'s');[B1,A1]=cheby1(N1,rp,wp1,'s');subplot(2,2,1);fk=0:12000/512:12000;wk=2*pi*fk;hk=freqs(B1,A1,wk);plot(fk/1000,20*log10(abs(hk)));grid onxlabel('频率(kHZ)');ylabel('幅度(db)');axis([0,12,-70,5])双音频检测audiofile='test.wav'[in_audio,fs,bits]=wavread(audiofile); [b,a]=cheby1(5,0.1,0.3);out_audio=filter(b,a,in_audio);sound(out_audio,fs,bits);wavwrite(out_audio,fs,bits,'test_out'); xk1=fft(in_audio,512);xk2=fft(out_audio,512);subplot(2,1,1);stem(abs(xk1));subplot(2,1,2);stem(abs(xk2));巴特沃斯模拟高通滤波器。
(整理)各类滤波器的MATLAB程序清单.
各类滤波器的MATLAB程序一、理想低通滤波器IA=imread('lena.bmp');[f1,f2]=freqspace(size(IA),'meshgrid');Hd=ones(size(IA));r=sqrt(f1.^2+f2.^2);Hd(r>0.2)=0;Y=fft2(double(IA));Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA));subplot(2,2,2),imshow(uint8(Ia));figuresurf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');二、理想高通滤波器IA=imread('lena.bmp');[f1,f2]=freqspace(size(IA),'meshgrid');Hd=ones(size(IA));r=sqrt(f1.^2+f2.^2);Hd(r<0.2)=0;Y=fft2(double(IA));Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya));figuresubplot(2,2,1),imshow(uint8(IA));subplot(2,2,2),imshow(uint8(Ia));figuresurf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');三、B utterworth低通滤波器IA=imread('lena.bmp');[f1,f2]=freqspace(size(IA),'meshgrid');D=0.3;r=f1.^2+f2.^2;n=4;for i=1:size(IA,1)for j=1:size(IA,2)t=r(i,j)/(D*D);Hd(i,j)=1/(t^n+1);endendY=fft2(double(IA));Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya));figuresubplot(2,2,1),imshow(uint8(IA));subplot(2,2,2),imshow(uint8(Ia));figuresurf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');四、B utterworth高通滤波器IA=imread('lena.bmp');[f1,f2]=freqspace(size(IA),'meshgrid');D=0.3;r=f1.^2+f2.^2;n=4;for i=1:size(IA,1)for j=1:size(IA,2)t=(D*D)/r(i,j);Hd(i,j)=1/(t^n+1);endendY=fft2(double(IA));Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya));figuresubplot(2,2,1),imshow(uint8(IA));subplot(2,2,2),imshow(uint8(Ia));figuresurf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');五、高斯低通滤波器IA=imread('lena.bmp');IB=imread('babarra.bmp');[f1,f2]=freqspace(size(IA),'meshgrid');D=100/size(IA,1);r=f1.^2+f2.^2;Hd=ones(size(IA));for i=1:size(IA,1)for j=1:size(IA,2)t=r(i,j)/(D*D);Hd(i,j)=exp(-t);endendY=fft2(double(IA));Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya));figuresubplot(2,2,1),imshow(uint8(IA));subplot(2,2,2),imshow(uint8(Ia));figuresurf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');六、高斯高通滤波器IA=imread('lena.bmp');IB=imread('babarra.bmp');[f1,f2]=freqspace(size(IA),'meshgrid');%D=100/size(IA,1);D=0.3;r=f1.^2+f2.^2;for i=1:size(IA,1)for j=1:size(IA,2)t=r(i,j)/(D*D);Hd(i,j)=1-exp(-t);endendY=fft2(double(IA));Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya));figuresubplot(2,2,1),imshow(uint8(IA));subplot(2,2,2),imshow(uint8(Ia));figuresurf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');七、梯形低通滤波器IA=imread('lena.bmp');IB=imread('babarra.bmp');[f1,f2]=freqspace(size(IA),'meshgrid');%D=100/size(IA,1);D0=0.1;D1=0.4;r=sqrt(f1.^2+f2.^2);Hd=zeros(size(IA));Hd(r<D0)=1;for i=1:size(IA,1)for j=1:size(IA,2)if r(i,j)>=D0 & r(i,j)<=D1Hd(i,j)=(D1-r(i,j))/(D1-D0);endendendY=fft2(double(IA));Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya));figuresubplot(2,2,1),imshow(uint8(IA));subplot(2,2,2),imshow(uint8(Ia));figuresurf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');八、梯形高通滤波器IA=imread('lena.bmp');IB=imread('babarra.bmp');[f1,f2]=freqspace(size(IA),'meshgrid');%D=100/size(IA,1);D0=0.1;D1=0.4;r=sqrt(f1.^2+f2.^2);Hd=ones(size(IA));Hd(r<D1)=0;for i=1:size(IA,1)for j=1:size(IA,2)if r(i,j)>=D0 & r(i,j)<=D1Hd(i,j)=(D0-r(i,j))/(D0-D1);endendendY=fft2(double(IA));Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya));figuresubplot(2,2,1),imshow(uint8(IA));subplot(2,2,2),imshow(uint8(Ia));figuresurf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');九、用其他方法编写的理想低通、理想高通、Butterworth低通、同态滤波程序1、理想低通i1=imread('lena.bmp');i2=imnoise(i1,'salt & pepper',0.1);f=double(i2);k=fft2(f);g=fftshift(k);[N1,N2]=size(g);d0=50;u0=floor(N1/2)+1;v0=floor(N2/2)+1;for i=1:N1for j=1:N2d=sqrt((i-u0)^2+(j-v0)^2);if d<=d0h=1;elseh=0;endy(i,j)=g(i,j)*h;endendy=ifftshift(y);E1=ifft2(y);E2=real(E1);figuresubplot(2,2,1),imshow(uint8(i1));subplot(2,2,2),imshow(uint8(i2));subplot(2,2,3),imshow(uint8(E2));2、理想高通i1=imread('lena.bmp');i2=imnoise(i1,'salt & pepper',0.1); f=double(i2);k=fft2(f);g=fftshift(k);[N1,N2]=size(g);n=2;d0=10;u0=floor(N1/2)+1;v0=floor(N2/2)+1;for i=1:N1for j=1:N2d=sqrt((i-u0)^2+(j-v0)^2);if d<=d0h=0;else h=1;endy(i,j)=g(i,j)*h;endendy=ifftshift(y);E1=ifft2(y);E2=real(E1);figuresubplot(2,2,1),imshow(uint8(i1)); subplot(2,2,2),imshow(uint8(i2)); subplot(2,2,3),imshow(uint8(E2));3、Butterworth低通i1=imread('lena.bmp');i2=imnoise(i1,'salt & pepper',0.1); f=double(i2);k=fft2(f);g=fftshift(k);[N1,N2]=size(g);n=2;d0=50;u0=floor(N1/2)+1;v0=floor(N2/2)+1;for i=1:N1for j=1:N2d=sqrt((i-u0)^2+(j-v0)^2);h=1/(1+(d/d0)^(2*n));y(i,j)=g(i,j)*h;endendy=ifftshift(y);E1=ifft2(y);E2=real(E1);figuresubplot(2,2,1),imshow(uint8(i1)); subplot(2,2,2),imshow(uint8(i2)); subplot(2,2,3),imshow(uint8(E2));4、同态滤波I=rgb2gray(imread('fabric00.bmp')); [M,N]=size(I);T=double(I);L=log(T);F=fft2(L);A=2;B=0.3;for i=1:Mfor j=1:ND(i,j)=((i-M/2)^2+(j-N/2)^2);endendc=1.1;%锐化参数D0=max(M,N);H=(A-B)*(1-exp(c*(-D/(D0^2))))+B;F=F.*H;F=ifft2(F);Y=exp(F);figuresubplot(1,2,1),imshow(I);subplot(1,2,2),imshow(uint8(real(Y)));十、十一、Gabor滤波器。
基于matlab数字图像处理之高通滤波器
实践二:理想高通滤波器、Butterworth高通滤波器、高斯高通滤波器2.1.1理想高通滤波器实践代码:I=imread('');subplot(221),imshow(I);title('原图像');s=fftshift(fft2(I));subplot(223),imshow(abs(s),[]);title('图像傅里叶变换所得频谱');subplot(224),imshow(log(abs(s)),[]);title('图像傅里叶变换取对数所得频谱');[a,b]=size(s);a0=round(a/2);b0=round(b/2);d=10;p=;q=;fori=1:aforj=1:bdistance=sqrt((i-a0)^2+(j-b0)^2);ifdistance<=dh=0;elseh=1;end;s(i,j)=(p+q*h)*s(i,j);end;end;s=uint8(real(ifft2(ifftshift(s))));subplot(222),imshow(s);title('高通滤波所得图像');I=imread('');[f1,f2]=freqspace(size(I),'meshgrid');Hd=ones(size(I));r=sqrt(f1.^2+f2.^2);Hd(r<=0;figuresurf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');%画三维曲面(色)图2.1.2理想高通滤波器实践结果截图:2.2.1Butterworth高通滤波器实践代码:I1=imread('');subplot(121),imshow(I1);title('原始图像');f=double(I1);g=fft2(f);g=fftshift(g);[N1,N2]=size(g);n=2;d0=5;n1=fix(N1/2);n2=fix(N2/2);fori=1:N1forj=1:N2d=sqrt((i-n1)^2+(j-n2)^2);ifd==0h=0;elseh=1/(1+(d0/d)^(2*n));endresult(i,j)=h*g(i,j);endendresult=ifftshift(result);X2=ifft2(result);X3=uint8(real(X2));subplot(122),imshow(X3);title('Butterworth高通滤波');I1=imread('');[f1,f2]=freqspace(size(I1),'meshgrid');D=;r=f1.^2+f2.^2;n=4;fori=1:size(I1,1)forj=1:size(I1,2)t=(D*D)/r(i,j);Hd(i,j)=1/(t^n+1);endendfiguresurf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');%画三维曲面(色)图2.2.2Butterworth高通滤波器实践结果截图:2.3.1高斯高通滤波器实践代码:clearallIA=imread('');[f1,f2]=freqspace(size(IA),'meshgrid');%D=100/size(IA,1);D=;r=f1.^2+f2.^2;fori=1:size(IA,1)forj=1:size(IA,2)t=r(i,j)/(D*D);Hd(i,j)=1-exp(-t);endendY=fft2(double(IA));Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya));figuresubplot(2,2,1),imshow(uint8(IA));title('原始图像');subplot(2,2,2),imshow(uint8(Ia));title('高斯高通滤波');figuresurf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');2.3.2高斯高通滤波器实践结果截图:。
MATLAB模拟高通滤波器
MA TLAB模拟高通滤波器最简洁实现与性能测试%Butterworth 模拟低通滤波器原型n=0:0.01:2; %设定频率点for ii=1:4 %产生高阶和低阶的曲线switch iicase 1,N=2;case 2,N=5;case 3,N=10;case 4,N=30;end[z,p,k]=buttap(N); %调用Butterworth模拟低通滤波器原型函数[b,a]=zp2tf(z,p,k); %转换为传递函数形式[H,w]=freqs(b,a,n); %按n指定的频率点给出频率响应magH2=(abs(H)).^2;subplot(2,1,1);hold on;plot(w,magH2);endxlabel('w/wc');ylabel('|H(jw)|^2');title("Butterworth 模拟低通滤波器原型");text(1.5,0.18,'n=2') %队以不同曲线做标记text(1.3,0.08,'n=5')text(1.16,0.08,'n=10')text(0.93,0.98,'n=30')grid on;%模拟高通滤波器设计m=0:1:5000;for ii=1:4switch iicase 1,N=2;case 2,N=5;case 3,N=10;case 4,N=30;end[z,p,k]=buttap(N);[b,a]=zp2tf(z,p,k);[bt,at]=lp2hp(b,a,200*2*pi);%又低通原型滤波器转换为200HZ的高通滤波器[Ht,w]=freqs(bt,at,m);subplot(2,1,2)hold on;plot(w,abs(Ht));endxlabel('w/pi');ylabel('|H(jw)|'2');tile('模拟高通滤波器');text(200,0.28,'n=2')text(600,0.12,'n=4')text(1000,0.28,'n=10')text(1200,0.10,'n=30')grid on;%模拟高通滤波器性能pha=angle(Ht); %输出系统的相频特性figuresubplot(2,1,1);plot(w,20*log10(pha));grid;xlabel('w/wc');ylabel('相位/dB');title('模拟高通滤波器相频特性');mag=abs(Ht); %输出系统相频的幅频特性subplot(2,1,2);plot(w,20*log10(mag));grid;xlabel('w/wc');ylabel('幅度/dB');title('模拟高通滤波器幅频特性')%运行说明:产生低通滤波器的程序和产生高通滤波器的程序单独运行,产生相频特性和幅频特性的程序可以一起运行。
高通滤波器matlab程序代码
%高斯低通滤波器RGB=imread('132.jpg');I0=rgb2gray(RGB);subplot(2,3,1),imshow(I0);title('原图');I1=imnoise(I0,'gaussian');%对原图像加噪声subplot(2,3,2),imshow(I1);title('加入噪声后')%将灰度图像的二维不连续Fourier变换的零频率成分移到频谱的中心s=fftshift(fft2(I1));subplot(2,3,3),imshow(log(1+abs(s)),[]);title('fftshift'); [M,N]=size(s);%分别返回s的行数到M中,列数到N中%GLPF滤波d0=50;%初始化d0n1=floor(M/2);%对M/2进行取整n2=floor(N/2);%对N/2进行取整for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);%点(i,j)到傅立叶变换中心的距离h(i,j)=1*exp(-1/2*(d^2/d0^2));%GLPF滤波函数s(i,j)=h(i,j)*s(i,j);%GLPF滤波后的频域表示endends=ifftshift(s);%对s进行反FFT移动%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数s=uint8(real(ifft2(s)));subplot(2,3,4),imshow(h);title('传递函数');%显示GHPF滤波器的传递函数subplot(2,3,5),imshow(s);title('GLPF滤波(d0=50)');%显示GLPF滤波处理后的图像。
基于matlab对图像进行高通、低通、带通滤波
数字图像处理三级项目—高通、低通、带通滤波器摘要在图像处理的过程中,消除图像的噪声干扰是一个非常重要的问题。
利用matlab软件,采用频域滤波的方式,对图像进行低通和高通滤波处理。
低通滤波是要保留图像中的低频分量而除去高频分量,由于图像中的边缘和噪声都对应图像傅里叶频谱中的高频部分,所以低通滤波可以除去或消弱噪声的影响并模糊边缘轮廓;高通滤波是要保留图像中的高频分量而除去低频分量,所以高通滤波可以保留较多的边缘轮廓信息。
低通滤波器有巴特沃斯滤波器和高斯滤波器等等,本次设计使用的低通滤波器为****。
高通滤波器有巴特沃斯滤波器、高斯滤波器、Laplacian高通滤波器以及Unmask高通滤波器等等,本次设计使用巴特沃斯高通滤波器。
1、频域低通滤波器:设计低通滤波器包括 butterworth and Gaussian (选择合适的半径,计算功率谱比),平滑测试图像test1和2。
实验原理分析根据卷积定理,两个空间函数的卷积可以通过计算两个傅立叶变换函数的乘积的逆变换得到,如果f(x, y)和h(x, y)分别代表图像与空间滤波器,F(u, v)和H(u, v)分别为响应的傅立叶变换(H(u, v)又称为传递函数),那么我们可以利用卷积定理来进行频域滤波。
在频域空间,图像的信息表现为不同频率分量的组合。
如果能让某个范围内的分量或某些频率的分量受到抑制,而让其他分量不受影响,就可以改变输出图的频率分布,达到不同的增强目的。
频域空间的增强方法的步骤:(1)将图像从图像空间转换到频域空间;(2)在频域空间对图像进行增强;(3)将增强后的图像再从频域空间转换到图像空间。
低通滤波是要保留图像中的低频分量而除去高频分量。
图像中的边缘和噪声都对应图像傅里叶频谱中的高频部分,所以低通滤波可以除去或消弱噪声的影响并模糊边缘轮廓。
理想低通滤波器具有传递函数:其中D0为制定的非负数,D(u,v)为点(u,v)到滤波器中心的距离。
matlab滤波器代码
数字信号处理:已知通带截止频率fp=5kHz,通带最大衰减ap=2dB,阻带截止频率fs=2kHz,阻带最小衰减as=30dB,按照以上技术指标设计巴特沃斯低通滤波器:wp=2*pi*5000;ws=2*pi*12000;Rp=2;As=30;[N,wc]=buttord(wp,ws,Rp,As,'s');[B,A]=butter(N,wc,'s');k=0:511;fk=0:14000/512:14000;wk=2*pi*fk;Hk=freqs(B,A,wk);subplot(2,2,1);plot(fk/1000,20*log10(abs(Hk)));grid onxlabel('频率(kHz)');ylabel('幅度(dB)')axis([0,14,-40,5])切比雪夫1型低通滤波器:wp=2*pi*3000;ws=2*pi*12000;Rp=0.1;As=60;[N1,wpl]=cheb1ord(wp,ws,Rp,As,'s');%cheb1ord,里面的是1,不是L[B1,A1]=cheby1(N1,Rp,wpl,'s');subplot(2,2,1);fk=0:12000/512:12000;wk=2*pi*fk;Hk=freqs(B1,A1,wk);plot(fk/1000,20*log10(abs(Hk)));grid onxlabel('频率(kHz)');ylabel('幅度(dB)')axis([0,12,-70,5])椭圆模拟低通滤波器:wp=2*pi*3000;ws=2*pi*12000;Rp=0.1;As=60;[N,wpo]=ellipord(wp,ws,Rp,As,'s');[B,A]=ellip(N,Rp,As,wpo,'s');subplot(2,2,1);fk=0:12000/512:12000;wk=2*pi*fk;Hk=freqs(B1,A1,wk);plot(fk/1000,20*log10(abs(Hk)));grid onxlabel('频率(kHz)');ylabel('幅度(dB)')axis([0,12,-70,5])p195-14wp=2*4/80;ws=2*20/80;rp=0.5;rs=45;[N,wc]=buttord(wp,ws,rp,rs);[B,A]=butter(N,wc);[hk,wk]=freqz(B,A);fk=wk/pi*40;plot(fk,20*log10(abs(hk)));axis([0,30,-100,0])xlabel('频率(kHZ)');ylabel('幅度(db)');grid on P195-16wp=2*325/2500;ws=2*225/2500;rp=1;rs=40;[N,wc]=ellipord(wp,ws,rp,rs);[B,A]=ellip(N,rp,rs,wc);[hk,wk]=freqz(B,A);fk=wk/pi*40;plot(fk,20*log10(abs(hk)));axis([0,30,-100,0])xlabel('频率(kHZ)');ylabel('幅度(db)');grid onP195-15wp=2*4/80;ws=2*20/80;rp=0.5;rs=45;[N,wc]=cheb1ord(wp,ws,rp,rs);[B,A]=cheby1(N,rp,wc);[hk,wk]=freqz(B,A);fk=wk/pi*40;plot(fk,20*log10(abs(hk)));axis([0,30,-100,0])xlabel('频率(kHZ)');ylabel('幅度(db)');grid on 切比雪夫低通滤波器wp=2*pi*3000;ws=2*pi*12000;rp=0.1;as=60;[N1,wp1]=cheb1ord(wp,ws,rp,as,'s');[B1,A1]=cheby1(N1,rp,wp1,'s');subplot(2,2,1);fk=0:12000/512:12000;wk=2*pi*fk;hk=freqs(B1,A1,wk);plot(fk/1000,20*log10(abs(hk)));grid onxlabel('频率(kHZ)');ylabel('幅度(db)');axis([0,12,-70,5])双音频检测audiofile='test.wav'[in_audio,fs,bits]=wavread(audiofile); [b,a]=cheby1(5,0.1,0.3);out_audio=filter(b,a,in_audio);sound(out_audio,fs,bits);wavwrite(out_audio,fs,bits,'test_out'); xk1=fft(in_audio,512);xk2=fft(out_audio,512);subplot(2,1,1);stem(abs(xk1));subplot(2,1,2);stem(abs(xk2));巴特沃斯模拟高通滤波器。
基于MATLAB的高通滤波器设计
5 结语
本 文 以某 型飞 机的 货舱 系 留系 统的 静 强 度 校核 为 例说 明 了货舱 系 留系 统的 静强 度设 计 要求 以 及校 核和 验证 方法 。通 过 分析 和试 验表 明某 型飞 机的 货舱 系 留系统 是 满足 静 强 度要 求 的 ,符 合适 航条 款要 求 。 参考 文 献
h=c e. n Num { f r m = 1: : 2 o 1 51 f r k=1: 4 o 1: 9
上 接 第8 页 7
通过 试 验可 知 ,货舱 系 留系 统 中拦 阻
im>= ) f ( k ak= ()xm+1 k ; () hk半 ( 一)
e d n
e nd
在 拦阻 网上 放 置沙 袋的 形式 将 载荷 传递 的拦 阻 网上 。货 舱 系 留系统 的试 验 台架 及试 验加
载 如 图4 图5 和 所示 。
. 上接 g8 页 . 一 5
b a s t ); = b( ( ) f x
c e o d ig in we— O ma o =la (l x a g iC C. t ) n
Байду номын сангаас
次 按s ,使 数码 管显 示 “ ” ,调 节RP 使 1 2 2 电 压表 读 数 为 2 V, 当数 码 管 显 示 4 ,调 时 节 RP ,使 电 压表 读 数 为4 当数 码 管 显示 3 , “ ”时 ,调整 R 4 8 P 使输 出电压 读 数 为8 V。
权 电 阻 网络 调 整 完 成 后 ,按 S 键 ,计 数 加 l 1 ,输 出 电压相 应加 1 V。 权 电 阻 网络 D/ A转 换 器 实 现 数 量 到 模 拟 量的 原理 易 于理 解 ,且 电路 简单 、使 用 电 阻 少 ,但也 存在 两 个缺 点 ,一是 各相 邻 电 阻 之 间严 格保 持依 相 差一半 的要求 ,因此 电路 设 计 中 ,增 加 了四 个精 密可 调 电阻 ,方便 调 节 。二 是 最大 阻值 与最 阻值 相差 很大 ,当二 进 数位 增 多 时 , 种 差 别 更为 严 理 。 因此 要 这 制 造 出能满 足上 述要 求 的高精 度 电 阻是很 困 难 的 ,在集 成 工艺 中尤 为突 出 。 参考 文 献
基于matlab各滤波器源代码
汉明窗的FIR低通滤波:Fs=22050;[x,FS,bits]=wavread('G:\Users\DP\Desktop\SoundTest.wav');%G:\Users\DP\Desktop \SoundTest.wav G:\Users\DP\Desktop\好铃网-湖人掘金宣传片.wavx=x(:,1);figure(1);subplot(2,1,1);plot(x);%sound(x,FS,bits); %回放语音title('语音信号时域波形图')y=fft(x,3260);f=(FS/3260)*[1:1630];subplot(2,1,2);plot(f(1:1630),abs(y(1:1630)));title('语音信号频谱图');%产生噪声信号并加到语音信号t=0:length(x)-1;zs0=0.05*cos(2*pi*100*t/22050);figure(2);subplot(2,1,1)plot(zs0)title('噪声信号波形');zs1=fft(zs0,1200);%sound(zs0,FS,bits);%回放噪音f=(FS/1200)*[1:600];subplot(2,1,2)plot(f(1:600),abs(zs1(1:600)));title('噪声信号频谱');%sound(x1,FS,bits); %回放加入噪声后的语音y1=fft(x1,1200);figure(3);subplot(2,1,1);plot(x1);f=(FS/1200)*[1:600];subplot(2,1,2);plot(f(1:600),abs(y1(1:600)));title('加入噪声后的信号波形');title('加入噪声后的信号频谱');%加窗滤波wp=0.25*pi;ws=0.3*pi;wdelta=ws-wp;N=ceil(6.6*pi/wdelta); %取整t=0:(size(x1)-1);wn=(0.2+0.3)*pi/2;b=fir1(N,wn/pi,hamming(N+1)); %选择窗函数,并归一化截止频率f1=fftfilt(b,x1);figure(4)freqz(b,1,512)[h1,w1]=freqz(b,1);plot(w1*FS/(2*pi),20*log10(abs(h1)));figure(5)subplot(2,1,1)plot(t,x1)title('滤波前的时域波形');subplot(2,1,2)title('滤波后的时域波形');sound(f1); %播放滤波后的语音信号F0=fft(f1,1024);f=FS*(0:511)/1024;figure(6)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512))); %画出滤波前的频谱图title('滤波前的频谱')xlabel('Hz');ylabel('fuzhi');subplot(2,1,2)F1=plot(f,abs(F0(1:512))); %画出滤波后的频谱图title('滤波后的频谱')xlabel('Hz');ylabel('fuzhi');巴特沃兹低通滤波器:Fs=22050;[x,FS,bits]=wavread('G:\Users\DP\Desktop\SoundTest.wav');%G:\Users\DP\Desktop \SoundTest.wav G:\Users\DP\Desktop\好铃网-湖人掘金宣传片.wavx=x(:,1);figure(1);subplot(2,1,1);plot(x);%sound(x,FS,bits); %回放语音title('语音信号时域波形图')y=fft(x,3260);f=(FS/1630)*[1:1630];subplot(2,1,2);plot(f(1:1630),abs(y(1:1630)));title('语音信号频谱图');%产生噪声信号并加到语音信号t=0:length(x)-1;zs=0.05*cos(2*pi*10000*t/22050);zs0=0.05*cos(2*pi*10000*t/22050000); figure(2);subplot(2,1,1)plot(zs0)title('噪声信号波形');zs1=fft(zs,1200);%sound(zs,FS,bits); %回放噪音subplot(2,1,2)plot(f(1:600),abs(zs1(1:600)));title('噪声信号频谱');x1=x+zs';sound(x1,FS,bits); %回放加入噪声后的语音y1=fft(x1,1200);figure(3);subplot(2,1,1);plot(x1);title('加入噪声后的信号波形');subplot(2,1,2);plot(f(1:600),abs(y1(1:600)));title('加入噪声后的信号频谱');%低通滤波fp=3000;fs=3500;Fs=22050;rp=1;rs=10;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;Fs1=1;wap=2*tan(wp/2);was=2*tan(ws/2);[N,wc]=buttord(wap,was,rp,rs,'s');[B,A]=butter(N,wc,'s');[Bz,Az]=bilinear(B,A,Fs1);figure(4);[h,w]=freqz(Bz,Az,512,Fs1*22050);plot(w,abs(h));title('巴特沃斯低通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)');grid on;yd=filter(Bz,Az,x1);figure(5);subplot(2,1,1);plot(yd); title('滤波后信号波形');ydd=fft(yd,1200);subplot(2,1,2);plot(f(1:600),abs(ydd(1:600)));title('滤波后信号频谱');%sound(yd,FS,bits);巴特沃兹高通滤波器:Fs=22050;[x,FS,bits]=wavread('G:\Users\DP\Desktop\SoundTest.wav'); x=x(:,1);figure(1);subplot(2,1,1);plot(x);%sound(x,FS,bits); %回放语音title('语音信号时域波形图')y=fft(x,3260);f=(FS/1630)*[1:1630];subplot(2,1,2);plot(f(1:1630),abs(y(1:1630)));title('语音信号频谱图');%产生噪声信号并加到语音信号t=0:length(x)-1;zs0=0.25*cos(2*pi*100*t/22050);figure(2);subplot(2,1,1)plot(zs0)title('噪声信号波形');zs1=fft(zs0,1200);%sound(zs0,FS,bits); %回放噪音subplot(2,1,2)plot(f(1:600),abs(zs1(1:600)));title('噪声信号频谱');x1=x+zs0';%sound(x1,FS,bits); %回放加入噪声后的语音y1=fft(x1,1200);figure(3);subplot(2,1,1);plot(x1);title('加入噪声后的信号波形');subplot(2,1,2);plot(f(1:600),abs(y1(1:600)));title('加入噪声后的信号频谱');%高通滤波fp=400;fs=300;Fs=22050;rp=1;rs=10;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;T=1;Fs1=1;wap=2*tan(wp/2);was=2*tan(ws/2);[N,wc]=buttord(wap,was,rp,rs,'s');[B,A]=butter(N,wc,'high','s');[Bz,Az]=bilinear(B,A,Fs1);figure(4);[h,w]=freqz(Bz,Az,512,Fs1*22050);plot(w,abs(h));title('巴特沃斯高通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)');grid on;yd=filter(Bz,Az,x1);figure(5);subplot(2,1,1);plot(yd); title('滤波后信号波形');ydd=fft(yd,1200);subplot(2,1,2);plot(f(1:600),abs(ydd(1:600)));title('滤波后信号频谱');%sound(yd,FS,bits)巴特沃兹带通滤波器:Fs=22050;[x,FS,bits]=wavread('G:\Users\DP\Desktop\SoundTest.wav');x=x(:,1);figure(1);subplot(2,1,1);plot(x);%sound(x,FS,bits); %回放语音title('语音信号时域波形图')y=fft(x,3260);f=(FS/1630)*[1:1630];subplot(2,1,2);plot(f(1:1630),abs(y(1:1630)));title('语音信号频谱图');%产生噪声信号并加到语音信号t=0:length(x)-1;zs0=0.05*cos(2*pi*100*t/22050);figure(2);subplot(2,1,1)plot(zs0)title('噪声信号波形');zs1=fft(zs0,1200);%sound(zs,FS,bits); %回放噪音subplot(2,1,2)plot(f(1:600),abs(zs1(1:600)));title('噪声信号频谱');x1=x+zs0';%sound(x1,FS,bits); %回放加入噪声后的语音y1=fft(x1,1200);figure(3);subplot(2,1,1);plot(x1);title('加入噪声后的信号波形');subplot(2,1,2);plot(f(1:600),abs(y1(1:600)));title('加入噪声后的信号频谱');%带通滤波fp=[800,9000];fs=[700,10000];Fs=22050;rp=1;rs=10;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;T=1;Fs1=1;wap=2*tan(wp/2);was=2*tan(ws/2);[N,wc]=buttord(wap,was,rp,rs,'s');[B,A]=butter(N,wc,'s');[Bz,Az]=bilinear(B,A,Fs1);figure(4);[h,w]=freqz(Bz,Az,512,Fs1*22050);plot(w,abs(h));title('巴特沃斯带通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)'); grid on;yd=filter(Bz,Az,x1);figure(5);subplot(2,1,1);plot(yd);ydd=fft(yd,1200);subplot(2,1,2);plot(f(1:600),abs(ydd(1:600))); %sound(yd,FS,bits)Blackman加窗高通滤波器:Fs=22050;[x,FS,bits]=wavread('G:\Users\DP\Desktop\SoundTest.wav'); x=x(:,1);figure(1);subplot(2,1,1);plot(x);%sound(x,FS,bits); %回放语音title('语音信号时域波形图')y=fft(x,3260);f=(FS/1630)*[1:1630];subplot(2,1,2);plot(f(1:1630),abs(y(1:1630)));title('语音信号频谱图');%产生噪声信号并加到语音信号%产生噪声信号并加到语音信号t=0:length(x)-1;zs0=0.05*cos(2*pi*100*t/22050);figure(2);subplot(2,1,1)plot(zs0)title('噪声信号波形');zs1=fft(zs0,1200);%sound(zs,FS,bits); %回放噪音subplot(2,1,2)plot(f(1:600),abs(zs1(1:600)));title('噪声信号频谱');x1=x+zs0';%sound(x1,FS,bits); %回放加入噪声后的语音y1=fft(x1,1200);figure(3);subplot(2,1,1);plot(x1);title('加入噪声后的信号波形'); subplot(2,1,2);plot(f(1:600),abs(y1(1:600)));title('加入噪声后的信号频谱');%高通加窗滤波fp=600,fc=400;wp=2*pi*fp/FS;ws=2*pi*fc/FS;Bt=wp-ws;N0=ceil(11*pi/Bt);N=N0+mod(N0+1,2);wc=(wp+ws)/2/pi;hn=fir1(N-1,wc,'high',blackman(N)); X=conv(hn,x);%sound(X,FS,bits);X1=fft(X,1200);figure(4);subplot(211);plot(X);title('滤波后的信号波形');subplot(212);plot(f(1:600),abs(X1(1:600)));title('滤波后的信号频谱')。
常见滤波器Matalab程序
%写上标题%设计低通滤波器:[N,Wc]=buttord()%估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wc[a,b]=butter(N,Wc); %设计Butterworth低通滤波器[h,f]=freqz(); %求数字低通滤波器的频率响应figure(2); % 打开窗口2subplot(221); %图形显示分割窗口plot(f,abs(h)); %绘制Butterworth低通滤波器的幅频响应图title(巴氏低通滤波器'');grid; %绘制带网格的图像sf=filter(a,b,s); %叠加函数S经过低通滤波器以后的新函数subplot(222);plot(t,sf); %绘制叠加函数S经过低通滤波器以后的时域图形xlabel('时间(seconds)');ylabel('时间按幅度');SF=fft(sf,256); %对叠加函数S经过低通滤波器以后的新函数进行256点的基—2快速傅立叶变换w= %新信号角频率subplot(223);plot()); %绘制叠加函数S经过低通滤波器以后的频谱图title('低通滤波后的频谱图');%设计高通滤波器[N,Wc]=buttord()%估算得到Butterworth高通滤波器的最小阶数N和3dB截止频率Wc[a,b]=butter(N,Wc,'high'); %设计Butterworth高通滤波器[h,f]=freqz(); %求数字高通滤波器的频率响应figure(3);subplot(221);plot(f,abs(h)); %绘制Butterworth高通滤波器的幅频响应图title('巴氏高通滤波器');grid; %绘制带网格的图像sf=filter(); %叠加函数S经过高通滤波器以后的新函数subplot(222);plot(t,sf); ;%绘制叠加函数S经过高通滤波器以后的时域图形xlabel('Time(seconds)');ylabel('Time waveform');w; %新信号角频率subplot(223);plot()); %绘制叠加函数S经过高通滤波器以后的频谱图title('高通滤波后的频谱图');%设计带通滤波器[N,Wc]=buttord([)%估算得到Butterworth带通滤波器的最小阶数N和3dB截止频率Wc[a,b]=butter(N,Wc); %设计Butterworth带通滤波器[h,f]=freqz(); %求数字带通滤波器的频率响应figure(4);subplot(221);plot(f,abs(h)); %绘制Butterworth带通滤波器的幅频响应图title('butter bandpass filter');grid; %绘制带网格的图像sf=filter(a,b,s); %叠加函数S经过带通滤波器以后的新函数subplot(222);plot(t,sf); %绘制叠加函数S经过带通滤波器以后的时域图形xlabel('Time(seconds)');ylabel('Time waveform');SF=fft(); %对叠加函数S经过带通滤波器以后的新函数进行256点的基—2快速傅立叶变换w=( %新信号角频率subplot(223);plot(')); %绘制叠加函数S经过带通滤波器以后的频谱图title('带通滤波后的频谱图');实例应用:matlab设计的带通滤波器方法改变参数就行了cheb1% wp1=0.45*pi;wp2=0.65*pi;ws1=0.3*pi;ws2=0.75*pi;Rp=1;Rs=40% =============双线型变换法=========================================wp1=0.45*pi; wp2=0.65*pi;ws1=0.3*pi; ws2=0.75*pi;Rp=1; Rs=40;Wp1=tan(wp1/2); Wp2=tan(wp2/2);Ws1=tan(ws1/2); Ws2=tan(ws2/2);BW=Wp2-Wp1; W0=Wp1*Wp2; W00=sqrt(W0);WP=1; WS=WP*(W0^2-Ws1^2)/(Ws1*BW);[N,Wn]=cheb1ord(WP,WS,Rp,Rs,'s');[B,A]=cheby1(N,Rp,Wn,'s');[BT,A T]=lp2bp(B,A,W00,BW);[num,den]=bilinear(BT,A T,0.5);[h,omega]=freqz(num,den,64);subplot(2,2,1);stem(omega/pi,abs(h));xlabel('\omega/\pi');ylabel('|H(z)|');subplot(2,2,2);stem(omega/pi,20*log10(abs(h)));xlabel('\omega/\pi');ylabel('增益.dB');%=============双线性变化法2=================================ws=0.6*pi;Ap=1;As=25;wp=0.4*pi;T=0.001;Fs=1/T;wp=wp/T;ws=ws/T;N=buttord(wp,ws,Ap,As,'s');fprintf('\nN=%d\n',N);wc=wp/((10^(0.1*Ap)-1)^(1/2/N));fprintf('\nwc=%.4e\n',wc);[numa,dena]=butter(N,wc,'s');fprintf('\n');disp('A numerator polynomial');fprintf('%.4e\n',numa);fprintf('\n');disp('A Denominator polynomial');fprintf('%.4e\n',dena);[numd,dend]=bilinear(numa,dena,Fs);w=linspace(0,pi,512);h=freqz(numd,dend,w);norm=max(abs(h));numd1=abs(h)/norm;plot(w/pi,20*log10(numd1));grid;%xlable('Normalized frequency');%ylable('Gain,dB');fprintf('\n');disp('D numerator polynomial');fprintf('%.4e\n',numd);fprintf('\n');disp('D numerator polynomial');fprintf('%.4e\n',dend);% =============直接法================================= wp1=0.45*pi; wp2=0.65*pi;ws1=0.3*pi; ws2=0.75*pi;Rp=1; Rs=40;Wp=[wp1/pi,wp2/pi]; Ws=[ws1/pi,ws2/pi];[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs);[B,A]=cheby1(N,Rp,Wn);[h,omega]=freqz(B,A,64);subplot(2,2,3);stem(omega/pi,abs(h));xlabel('\omega/\pi');ylabel('|H(z)|');subplot(2,2,4);stem(omega/pi,20*log10(abs(h)));xlabel('\omega/\pi');ylabel('增益.dB');%cheby2%% wp1=0.45*pi;wp2=0.65*pi;ws1=0.3*pi;ws2=0.75*pi;Rp=1;Rs=40% =============脉冲响应不变法的程序================================= wp=0.4*pi;ws=0.6*pi;Ap=1;As=25;wp=0.4*pi;T=0.001;Fs=1/T;wp=wp/T;ws=ws/T;N=buttord(wp,ws,Ap,As,'s');fprintf('\nN=%d\n',N);wc=wp/((10^(0.1*Ap)-1)^(1/2/N));fprintf('\nwc=%.4e\n',wc);[numa,dena]=butter(N,wc,'s');fprintf('\n');disp('A numerator polynomial');fprintf('%.4e\n',numa);fprintf('\n');disp('A Denominator polynomial');fprintf('%.4e\n',dena);[numd,dend]=impinvar(numa,dena,Fs);w=linspace(0,pi,512);h=freqz(numd,dend,w);norm=max(abs(h));numd1=abs(h)/norm;plot(w/pi,-20*log10(numd1));grid;%xlable('Normalized frequency');%ylable('Gain,dB');fprintf('\n');disp('D numerator polynomial');fprintf('%.4e\n',numd);fprintf('\n');disp('D numerator polynomial');fprintf('%.4e\n',dend);各种滤波器形式的MATLAB参考程序和仿真内容%*******************************************************************%%mode: 1--巴特沃斯低通;2--巴特沃斯高通;3--巴特沃斯带通;4--巴特沃斯带阻% 5--契比雪夫低通;6--契比雪夫高通;7--契比雪夫带通;8--契比雪夫带阻%fp1,fp2:通带截止频率,当高通或低通时只有fp1有效%fs1, fs2:阻带截止频率,当高通或低通时只有fs1有效%rp: 通带波纹系数%as: 阻带衰减系数%sample: 采样率%h: 返回设计好的滤波器系数%*******************************************************************% function[b,a]=iirfilt(mode,fp1,fp2,fs1,fs2,rp,as,sample)wp1=2*fp1/sample;wp2=2*fp2/sample;ws1=2*fs1/sample;ws2=2*fs2/sample;%得到巴特沃斯滤波器的最小阶数N和3bd频率wnif mode<3[N,wn]=buttord(wp1,ws1,rp,as);elseif mode<5[N,wn]=buttord([wp1 wp2],[ws1 ws2],rp,as);%得到契比雪夫滤波器的最小阶数N和3bd频率wnelseif mode<7[N,wn]=cheb1ord(wp1,ws1,rp,as);else[N,wn]=cheblord([wp1 wp2],[ws1 ws2],rp,as);end%得到滤波器系数的分子b和分母aif mode= =1[b,a]=butter(N,wn);endif mode= =2[b,a]=butter(N,wn,/high/);endif mode= =3[b,a]=butter(N,wn);endif mode= =4[b,a]=butter(N,wn,/stop/);endif mode= =5[b,a]=cheby1(N,rp,wn);endif mode= =6[b,a]=cheby1(N,rp,wn,/high/);endif mode= =7[b,a]=cheby1(N,rp,wn);endif mode= =8[b,a]=cheby1(N,rp,wn,/stop/);endset(gcf,/menubar/,menubar);freq_response=freqz(b,a);magnitude=20*log10(abs(freq_response));m=0:511;f=m*sample/(2*511);subplot(3,1,1);plot(f,magnitude);grid; %幅频特性axis([0 sample/2 1.1*min(magnitude) 1.1*max(magnitude)]); ylabel('Magnitude');xlabel('Frequency-->');phase=angle(freq_response);subplot(3,1,2);plot(f,phase);grid; %相频特性axis([0 sample/2 1.1*min(phase) 1.1*max(phase)]);ylabel('Phase');xlabel('Frequency-->');h=impz(b,a,32); %32点的单位函数响应t=1:32;subplot(3,1,3);stem(t,h);grid;axis([0 32 1.2*min(h) 1.1*max(h)]);ylabel('h(n)');xlabel('n-->');。
(完整word版)用MATLAB设计滤波器
用MATLAB 设计滤波器1 IIR 滤波器的设计freqz功能:数字滤波器的频率响应。
格式:[h ,w ]=freqz (b ,a,n )[h ,f]=freqz(b ,a ,n ,Fs)[h ,w ]=freqz(b ,a,n ,’whole')[h ,f ]=freqz(b,a ,n ,'whole ’,Fs )h=freqz (b ,a ,w)h=freqz (b,a ,f ,Fs)freqz(b ,a)说明:freqz 用于计算由矢量"和b 构成的数字滤波器H (z)=A(z)B(z)= n-1--n -1 l)z a(n ....a(2)z l l)z b(n .... b(2)z b(l)++++++++ 的复频响应H (j ω).[h ,w]=freqz (b,a ,n )可得到数字滤波器的n 点的幅频响应,这n 个点均匀地分布在上半单位圆(即0~π),并将这n 点频率记录在w 中,相应的频率响应记录在h 中。
至于n值的选择没有太多的限制,只要n 〉0的整数,但最好能选取2的幂次方,这样就可采用FFT 算法进行快速计算。
如果缺省,则n=512。
[h ,f ]二freqz(b,a,n ,Fs)允许指定采样终止频率Fs (以Hz 为单位),也即在0~Fs/2频率范围内选取n 个频率点(记录在f 中),并计算相应的频率响应h 。
[h,w]=freqz(b,a,n,’whole’)表示在0~2π之间均匀选取n个点计算频率响应.[h,f]=freqz(b,a,n,'whole',Fs)则在O~Fs之间均匀选取n个点计算频率响应.h=freqz(b,a,w)计算在矢量w中指定的频率处的频率响应,但必须注意,指定的频率必须介于0和2π之间.h=freqz(b,a,f,Fs)计算在矢量f中指定的频率处的频率响应,但指定频率必须介于0和Fs之间。
butter功能:Butterworth(比特沃思)模拟和数字滤波器设计。
基于MATLAB的filter的使用,低通、带通和高通滤波器设计
基于MATLAB的filter的使⽤,低通、带通和⾼通滤波器设计1、⽬的学习MATLAB的filter函数的使⽤,通过设计低通、带通和⾼通滤波器对其进⾏仿真2、⽤到的主要函数和⼯具MATLAB、FDATOOL、filter、fft3、设计1. 信号的产⽣%% Parameter InterfaceFrequence0 = 60; %单位:HzFrequence1 = 130; %单位:HzFrequence2 = 1e3; %单位:HzSampleFre = 4e3; %单位:HzSampleLen = SampleFre; %采样点数%% Main%-------------------产⽣三路信号t = 0:1/SampleLen:1/SampleFre*(SampleLen-1);SignalData0 = sin(2*pi*Frequence0*t);SignalData1 = sin(2*pi*Frequence1*t);SignalData2 = sin(2*pi*Frequence2*t);SignalData3 = SignalData0+SignalData1+SignalData2;figure;hold onplot(t(1:150),SignalData0(1:150),'b')plot(t(1:150),SignalData1(1:150),'r')plot(t(1:150),SignalData2(1:150),'k')hold offfigure;plot(t(1:150),SignalData3(1:150))title('三路信号求和')三路信号的时域波形三路求和信号频谱分析FFT_Data = fft(SignalData3);2.低通滤波器设计基于fdatool的低通滤波器的设计在MATLAB命令⾏执⾏fdatool命令,弹出滤波器设计交互窗⼝,根据⾃⼰的需求设计符合⾃⼰要求的滤波器,这是我设计的低通滤波器见下图需要注意的是通过设计Fpass和Fstop确定了滤波器的带宽,同时参数设计的越接近理论滤波器的性能,滤波器的阶数越多,计算量越⼤,所以需要优化滤波器这两个参数,在保证性能的同时确保阶数越⼩(计算量越⼩)滤波LPF_Data = filter(LPF_Coe.LPF_60M,1,SignalData3);滤波后的时域和频谱波形3.带通和⾼通操作步骤⼤体⼀致就不详细说明4、M代码5、备注1、滤波器出数有⼀定延迟,这在具体调制解调过程中需要注意。
Matlab产生高通带通带阻滤波器方法
Matlab产生高通、带通、带阻滤波器方法高通、带通、带阻滤波器在matlab中不能直接产生,它们的生成都是有低通滤波器转换而来的,所以要生成这些滤波器就必须先生成低通滤波器,然后通过转换函数做相应的转换就可。
下面介绍这些转换函数。
1 lp2hp功能:模拟低通滤波器到模拟高通滤波器的变换。
格式:[bt,at] = lp2hp(b,a,Wo)[At,Bt,Ct,Dt] = lp2hp(A,B,C,D,Wo)说明:lp2hp函数将截止频率为1(弧度/秒)的模拟低通滤波器变换成截止频率为Wo的模拟高通滤波器。
函数的第一种形式是有传递函数描述的滤波器相应参数,第二钟为状态空间描述的滤波器相应参数,下同。
2 lp2bp功能:模拟低通滤波器到模拟带通滤波器的变换。
格式:[bt,at] = lp2bp(b,a,Wo,Bw)[At,Bt,Ct,Dt] = lp2bp(A,B,C,D,Wo,Bw)说明:lp2bp函数将截止频率为1(弧度/秒)的模拟低通滤波器变换成带宽为Bw、中心频率为Wo的模拟带通滤波器。
3 lp2bs功能:模拟低通滤波器到模拟带阻滤波器的变换。
格式:[bt,at] = lp2bs(b,a,Wo,Bw)[At,Bt,Ct,Dt] = lp2bs(A,B,C,D,Wo,Bw)说明:lp2bs函数将截止频率为1(弧度/秒)的模拟低通滤波器变换成带宽为Bw、中心频率为Wo的模拟带阻滤波器4 lp2lp功能:模拟低通滤波器到模拟低通滤波器的变换。
格式:[bt,at] = lp2lp(b,a,Wo)[At,Bt,Ct,Dt] = lp2lp(A,B,C,D,Wo)说明:lp2lp函数将截止频率为1(弧度/秒)的模拟低通滤波器变换成截止频率为为Wo的模拟低通滤波器。
Matlab中模拟低通滤波器的函数1 besselap功能:贝塞尔(Bessel)模拟低通滤波器原型。
格式:[z,p,k] = besselap(n)说明:z、p、k分别为滤波器的零点、极点和增益,n为滤波器的阶次。
MATLAB实现数字FIR高通与带通等滤波器源程序
利用汉宁窗设计Ⅰ型数字高通滤波器clear all。
Wp=0.6*pi。
Ws=0.4*pi。
tr_width=Wp-Ws。
%过渡带宽度N=ceil(6.2*pi/tr_width) %滤波器长度n=0:1:N-1。
Wc=(Ws+Wp)/2。
%理想低通滤波器的截止频率hd=ideal_hp1(Wc,N)。
%理想低通滤波器的单位冲激响应w_han=(hanning(N))'。
%汉宁窗h=hd.*w_han。
%截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1])。
%计算实际滤波器的幅度响应delta_w=2*pi/1000。
Ap=-(min(db(Wp/delta_w+1:1:501))) %实际通带纹波As=-round(max(db(1:1:Ws/delta_w+1))) %实际阻带纹波subplot(221)stem(n,hd)title('理想单位脉冲响应hd(n)')subplot(222)stem(n,w_han)title('汉宁窗w(n)')subplot(223)stem(n,h)title('实际单位脉冲响应hd(n)')subplot(224)plot(w/pi,db)title('幅度响应(dB)')axis([0,1,-100,10])clear all。
Wp=0.6*pi。
Ws=0.4*pi。
tr_width=Wp-Ws。
%过渡带宽度N=ceil(6.2*pi/tr_width) %滤波器长度n=0:1:N-1。
Wc=(Ws+Wp)/2。
%理想低通滤波器的截止频率hd=ideal_hp1(Wc,N)。
%理想低通滤波器的单位冲激响应w_han=(hanning(N))'。
%汉宁窗h=hd.*w_han。
%截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1])。
matlab滤波器设计命令
matlab滤波器设计命令Matlab滤波器设计命令滤波器是数字信号处理中常用的工具,用于去除信号中的噪声、频率干扰或其他不需要的成分。
Matlab提供了一系列有用的滤波器设计命令,使用户能够轻松设计并应用各种类型的滤波器。
在本文中,我们将详细介绍Matlab中常用的滤波器设计命令,包括滤波器设计函数、滤波器类型和设计过程。
I. Matlab中常用的滤波器设计函数在Matlab中,有几种函数可用于设计滤波器,其中最常用的函数是`designfilt`函数和`fir1`函数。
1. designfilt函数`designfilt`函数是Matlab中最灵活和功能强大的滤波器设计函数之一,可用于设计各种类型的IIR和FIR滤波器。
它的基本语法如下:`filt = designfilt(FilterType, 'PropertyName', PropertyValue, ...)`其中,`FilterType`代表滤波器类型,包括低通滤波器(Lowpass)、高通滤波器(Highpass)、带通滤波器(Bandpass)、带阻滤波器(Bandstop)等。
`PropertyName`和`PropertyValue`是可选的参数,用于设置滤波器的各种属性,如阶数(Order)、截止频率(CutoffFrequency)、通带和阻带的最大衰减(MaximumAttenuation)等。
下面是一个使用`designfilt`函数设计低通滤波器的例子:Fs = 1000; 采样频率Fpass = 20; 通带截止频率Fstop = 30; 阻带截止频率designfilt('lowpassiir', 'FilterOrder', 4, 'PassbandFrequency', Fpass, 'StopbandFrequency', Fstop, 'SampleRate', Fs)该命令将设计一个4阶的低通IIR滤波器,其通带截止频率为20Hz,阻带截止频率为30Hz,采样频率为1000Hz。
用MATLAB设计低通,带通,高通
用MATLAB设计低通,带通,高通和带阻FIR数字滤波器急!!!!悬赏分:30 - 解决时间:2006-11-1 20:56(1)低通滤波器的技术指标:H(ejw)=1,0<w<0.3pi; H(ejw)=0,0.3pi<w<pi.(2)带通滤波器的技术指标:H(ejw=0,0<w<0.4pi; H(ejw)=1;0.4pi<w<0.6pi;H(ejw)=0,0.6<w<pi;(3)高通滤波器的技术指标:H(ejw)=0,0<w<0.7pi; H(ejw)=1,0.7pi<w<pi.(4)带阻滤波器的技术指标:H(ejw)=1,0<w<0.3pi; H(ejw)=0;0.3pi<w<0.7pi;H(ejw)=1,0.7<w<pi;提问者:wwce520 - 魔法学徒一级最佳答案低通采样定理实验1.1 实验目的1.了解数字信号处理系统的一般构成;2.掌握奈奎斯特抽样定理。
1.2 实验仪器1.YBLD智能综合信号源测试仪1台2.双踪示波器1台3.MCOM-TG305数字信号处理与现代通信技术实验箱1台4.PC机(装有MATLAB、MCOM-TG305配套实验软件)1台1.3 实验原理一个典型的DSP系统除了数字信号处理部分外,还包括A/D和D/A两部分。
这是因为自然界的信号,如声音、图像等大多是模拟信号,因此需要将其数字化后进行数字信号处理,模拟信号的数字化即称为A/D 转换。
数字信号处理后的数据可能需还原为模拟信号,这就需要进行D/A转换。
一个仅包括A/D和D/A两部分的简化数字信号处理系统功能如图1所示。
A/D转换包括三个紧密相关的过程,即抽样、量化和编码。
A/D转换中需解决的以下几个重要问题:抽样后输出信号中还有没有原始信号的信息?如果有能不能把它取出来?抽样频率应该如何选择?奈奎斯特抽样定理(即低通信号的均匀抽样定理)告诉我们,一个频带限制在0至fx以内的低通信号x(t),如果以fs≥2fx的抽样速率进行均匀抽样,则x(t)可以由抽样后的信号xs(t)完全地确定,即xs(t)包含有x(t)的成分,可以通过适当的低通滤波器不失真地恢复出x(t)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%高斯低通滤波器
RGB=imread('132.jpg');
I0=rgb2gray(RGB);
subplot(2,3,1),imshow(I0);title('原图');
I1=imnoise(I0,'gaussian');%对原图像加噪声
subplot(2,3,2),imshow(I1);title('加入噪声后')
%将灰度图像的二维不连续Fourier变换的零频率成分移到频谱的中心
s=fftshift(fft2(I1));
subplot(2,3,3),imshow(log(1+abs(s)),[]);title('fftshift'); [M,N]=size(s);%分别返回s的行数到M中,列数到N中
%GLPF滤波
d0=50;%初始化d0
n1=floor(M/2);%对M/2进行取整
n2=floor(N/2);%对N/2进行取整
for i=1:M
for j=1:N
d=sqrt((i-n1)^2+(j-n2)^2);%点(i,j)到傅立叶变换中心的距离
h(i,j)=1*exp(-1/2*(d^2/d0^2));%GLPF滤波函数
s(i,j)=h(i,j)*s(i,j);%GLPF滤波后的频域表示
end
end
s=ifftshift(s);%对s进行反FFT移动
%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数
s=uint8(real(ifft2(s)));
subplot(2,3,4),imshow(h);title('传递函数');%显示GHPF滤波器的传递函数
subplot(2,3,5),imshow(s);title('GLPF滤波(d0=50)');%显示GLPF滤波处理后的图像。