MATLAB窗函数法实现FIR的高通,带通和低通滤波器的程序

MATLAB窗函数法实现FIR的高通,带通和低通滤波器的程序
MATLAB窗函数法实现FIR的高通,带通和低通滤波器的程序

MATLAB窗函数法实现FIR的高通,带通和低通滤波器的程序

MATLAB 学院:地球物理与石油资源学院班级:姓名:学号:班内编号:指导教师:完成日期:测井11001大牛啊啊啊陈义群2013年6月3日课程设计报告一、题目FIR滤波器的窗函数设计法及性能比较 1. FIR滤波器简介数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应滤波器和有限冲激响应滤波器。与IIR滤波器相比,FIR滤波器的主要特点为: a. 线性相位;b.非递归运算。 2. FIR 滤波器的设计FIR滤波器的设计方法主要有三种:a.窗函数设计法;b.频率

抽样发;c.最小平法抽样法;这里我主要讨论在MATLAB环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能。窗函数法设计FIR滤波器的一般步骤如下: a. 根据实际问题确定要设计的滤波器类型; b. 根据给定的技术指标,确定期望滤波器的理想频率特性;c. 求期望滤波器的单位脉冲响应;d. 求数字滤波器的单位脉冲响应; e. 应用。常用的窗函数有(1)Hanningwindoww(n)?[?((2)Hammingw indoww(n)?[?((3)Balckmanwindoww(n)?[ ?((4)KaiserwindowI0{?1?[2n/(N?1)]2}w(n )?RN(n)I0(?)式中I0(x)是零阶Bessel函数,可定义为()2?n4?n)?()]RN(n)N?1N?1()2?n)]RN(n)N ?1() ?nN?1)]RN(n)() (x/2)m2I0(x)?1??m!m?1? 当x?0时与矩形窗一致;当x?时与海明窗结果相同;当x?时与布莱克曼窗结果相同。3.窗函数的选择标准 1. 较低的旁瓣

幅度,尤其是第一旁瓣; 2. 旁瓣幅度要下降得快,以利于增加阻带衰减;3. 主瓣宽度要窄,这样滤波器过渡带较窄。

4. 常用窗函数的参数

5. FIR 滤波器的MATLAB实现方式在MATLAB信号分析与处理工具箱中提供了大量FIR窗函数的设计函数,本次用到主要有以下几种:hanning(N) hanning窗函数的调用hamming(N) hamming窗函数的调用blackman(N) blackman窗函数的调用kaiser(n+1,beta) kaiser窗函数的调用kaiserord 计算kaiser窗函数的相关参数freqz 求取频率响应filter对信号进行滤波的函数

6. 实验具体步骤本次实验分别通过调用hanning ,hamming ,Blackman,kaiser窗函数,给以相同的技术参数,来设计低通,带通,高通滤波器,用上述窗函数的选择标准来比较各种窗函数的优劣,并给以一个简谐波进行滤波处理,比较滤波前后的效果。达到综合比较的效果。

二、源代码 1.利用hanning hamming blackman kaiser窗,设计一个低通FIR function lowpassfilter clc; clear all; Fs=100;%采样频率fp=20;%通带截止频率fs=30;%阻带起始频率wp=2*pi*fp/Fs;%将模拟通带截止频率转换为数字滤波器频率ws=2*pi*fs/Fs;%将模拟阻带起始频率转换为数字滤波器频率wn=(wp+ws)/2/pi;%标准化的截止频率响应Bt=ws-wp; N0=ceil(*pi/Bt);%滤波器长度N=N0+mod(N0+1,2); window1=hanning(N);%使用hanning窗函数window2=hamming(N);%使用hamming窗函数window3=blackman(N);%使用blackman 窗函数[n,Wn,beta,ftype]=kaiserord([20 25],[1 0],[ ],100); window4=kaiser(n+1,beta);%使用kaiser窗函数%设计加窗函数fir1 b1=fir1(N-1,wn,window1); b2=fir1(N-1,wn,window2);

b3=fir1(N-1,wn,window3);

b4=fir1(n,Wn/pi,window4 ,’noscale’); %求取频率响应[H1,W1]=freqz(b1,1,512,2);

[H2,W2]=freqz(b2,1,512,2);

[H3,W3]=freqz(b3,1,512,2);

[H4,W4]=freqz(b4,1,512,2);

figure(1);

subplot(2,2,1),plot(W1,20*log10(abs(H1)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘低通hanning窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); subplot(2,2,2),plot(W2,20*log10(abs(H2)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘低通hamming窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); subplot(2,2,3),plot(W3,20*log10(abs(H3)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘低通blackman窗的频率响应图形’);

xlabel(‘频率(Hz)’); ylabel(‘幅值’); subplot(2,2,4),plot(W4,20*log10(abs(H4)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘低通kaiser窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); T=1/Fs; L=100;%信号长度t=(0:L-1)*T;%定义时间范围和步长y=sin(2*pi*5*t)+5*sin(2*pi*15*t)+8*sin( 2*pi*40*t);%滤波前的图形NFFT = 2

extpow2(L); % Next power of 2 from length of y Y = fft(y,NFFT)/L;%将时域信号变换到频域 f = Fs/2*linspace(0,1,NFFT/2+1);%频域采样figure(2);

plot(f,2*abs(Y(1:NFFT/2+1)));xlabel(‘freq uency/Hz’);ylabel(‘Amuplitude’) ;%滤波前频谱title(‘滤波前的频谱’); %滤波后频谱%采用hanning窗滤波器yy1=filter(b1,1,y);%调用滤波函数YY1=fft(yy1,NFFT)/L;%进行傅里叶变换,下同。f1=Fs/2*linspace(0,1,NFFT/2+1);

figure(3);

subplot(2,2,1),plot(f1,2*abs(YY1(1:NFFT/ 2+1))) ;xlabel(‘frequency/Hz’);ylabel(‘Am uplitude’); title(‘hanning窗的滤波效果’); %采用hammning窗滤波器yy2=filter(b2,1,y);

YY2=fft(yy2,NFFT)/L;

f1=Fs/2*linspace(0,1,NFFT/2+1); subplot(2,2,2),plot(f1,2*abs(YY2(1:NFFT/

2+1))) ;xlabel(‘frequency/Hz’);ylabel(‘Am uplitude’); title(‘hamming窗的滤波效果’); %采用blackman窗滤波器yy3=filter(b3,1,y);

YY3=fft(yy3,NFFT)/L;

f1=Fs/2*linspace(0,1,NFFT/2+1); subplot(2,2,3),

plot(f1,2*abs(YY3(1:NFFT/2+1))) ;xlabel(‘frequency/Hz’);ylabel(‘Amuplitude’); title(‘blackman窗的滤波效果’); %采用kaiser窗滤波器yy4=filter(b4,1,y); YY4=fft(yy4,NFFT)/L;

f1=Fs/2*linspace(0,1,NFFT/2+1); subplot(2,2,4),plot(f1,2*abs(YY4(1:NFFT/ 2+1))) ;xlabel(‘frequency/Hz’);ylabel(‘Am uplitude’);

xlabel(‘frequency/Hz’);ylabel(‘Amuplitud e’); title(‘kaiser窗函数滤波效果’); %滤波前后的信号的时域对比

figure(4);

plot(y);xlabel(‘时间/s’);ylabel(‘振幅’);title(‘滤波前振幅特性’); figure(5); subplot(2,2,1),plot(yy1);xlabel(‘时间/s’);ylabel(‘振幅’);title(‘hanning窗函数滤波振幅特性’); subplot(2,2,2),plot(yy2);xlabel(‘时间/s’);ylabel(‘振幅’);title(‘hamming窗函数滤波振幅特性’); subplot(2,2,3),plot(yy3);xlabel(‘时间/s’);ylabel(‘振幅’);title(‘blackman窗函数滤波振幅特性’); subplot(2,2,4),plot(yy4);xlabel(‘时间/s’);ylabel(‘振幅’);title(‘kaiser窗函数滤波振幅特性’); %滤波前后的信号的相位对比figure(6); plot(angle(Y));xlabel(‘时间/s’);ylabel(‘相位’);title(‘滤波前的相位特性’); figure(7); subplot(2,2,1),plot(angle(YY1));xlabel(‘时间/s’);ylabel(‘相位’);title(‘hanning窗函数滤波相位特性’); subplot(2,2,2),plot(angle(YY2));xlabel(‘时间/s’);ylabel(‘相位’);title(‘hamming窗函

数滤波相位特性’); subplot(2,2,3),plot(angle(YY3));xlabel(‘时间/s’);ylabel(‘相位’);title(‘blackman窗函数滤波相位特性’); subplot(2,2,4),plot(angle(YY4));xlabel(‘时间/s’);ylabel(‘相位’);title(‘kaiser窗函数滤波相位特性’); 2.设计一个hanning hamming blackman kaiser窗函数bandpass_FIR %设计一个hanning hamming blackman kaiser窗函数bandpass_FIR function bandpassfilter Fs=100;%采样频率fp1=15;%通带下限截止频率fp2=20;%通带上限截止频率fs1=10; fs2=25; wp1=2*pi*fp1/Fs;%将通带下限截止频率转换为数字滤波器频率wp2=2*pi*fp2/Fs;%将通带上限截止频率转换为数字滤波器频率ws1=2*pi*fs1/Fs;%将通带下限截止频率转换为数字滤波器频率ws2=2*pi*fs2/Fs;%将通带上限截止频率转换为数字滤波器频率

Bt=wp1-ws1; N0=ceil(*pi/Bt); N=N0+mod(N0+1,2);

wn=[(wp1+ws1)/2/pi,(wp2+ws2)/2/pi]; window1=hanning(N);%使用hanning窗函数window2=hamming(N);%使用hamming窗函数window3=blackman(N);%使用blackman 窗函数%设过渡带宽度为5Hz [n,Wn,beta,ftype]=kaiserord([10 15 20 25],[0 1 0],[ ],100);%求阶数n以及参数beta window4=kaiser(n+1,beta);%使用kaiser窗函数%设计加窗函数fir1 b1=fir1(N-1,wn,window1);

b2=fir1(N-1,wn,window2);

b3=fir1(N-1,wn,window3);

b4=fir1(n,Wn,window4,’noscale’); %求取频率响应[H1,W1]=freqz(b1,1,512,2);

[H2,W2]=freqz(b2,1,512,2);

[H3,W3]=freqz(b3,1,512,2);

[H4,W4]=freqz(b4,1,512,2);

figure(1);

subplot(2,2,1),plot(W1,20*log10(abs(H1)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘带通hanning窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); subplot(2,2,2),plot(W2,20*log10(abs(H2)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘带通hamming窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); subplot(2,2,3),plot(W3,20*log10(abs(H3)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘带通blackman窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); subplot(2,2,4),plot(W4,20*log10(abs(H4)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘带通kaiser窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); T=1/Fs; L=100;%信号长度t=(0:L-1)*T;%定义时间范围和步长

y=sin(2*pi*5*t)+5*sin(2*pi*15*t)+8*sin( 2*pi*40*t);%滤波前的图形NFFT = 2

extpow2(L); % Next power of 2 from length of y Y = fft(y,NFFT)/L;%将时域信号变换到频域 f = Fs/2*linspace(0,1,NFFT/2+1);%频域采样figure(2);

plot(f,2*abs(Y(1:NFFT/2+1)));xlabel(‘freq uency/Hz’);ylabel(‘Amuplitude’) ;%滤波前频谱title(‘滤波前的频谱’); %滤波后频谱%采用hanning窗滤波器yy1=filter(b1,1,y);%调用滤波函数YY1=fft(yy1,NFFT)/L;%进行傅里叶变换,下同。f1=Fs/2*linspace(0,1,NFFT/2+1);

figure(3);

subplot(2,2,1),plot(f1,2*abs(YY1(1:NFFT/ 2+1))) ;xlabel(‘frequency/Hz’);ylabel(‘Am uplitude’); title(‘hanning窗的滤波效果’); %采用hammning窗滤波器yy2=filter(b2,1,y);

YY2=fft(yy2,NFFT)/L;

f1=Fs/2*linspace(0,1,NFFT/2+1);

subplot(2,2,2),plot(f1,2*abs(YY2(1:NFFT/ 2+1))) ;xlabel(‘frequency/Hz’);ylabel(‘Am uplitude’); title(‘hamming窗的滤波效果’); %采用blackman窗滤波器yy3=filter(b3,1,y);

YY3=fft(yy3,NFFT)/L;

f1=Fs/2*linspace(0,1,NFFT/2+1); subplot(2,2,3),

plot(f1,2*abs(YY3(1:NFFT/2+1))) ;xlabel(‘frequency/Hz’);ylabel(‘Amuplitude’); title(‘blackman窗的滤波效果’); %采用kaiser窗滤波器yy4=filter(b4,1,y); YY4=fft(yy4,NFFT)/L;

f1=Fs/2*linspace(0,1,NFFT/2+1); subplot(2,2,4),plot(f1,2*abs(YY4(1:NFFT/ 2+1))) ;xlabel(‘frequency/Hz’);ylabel(‘Am uplitude’);

xlabel(‘frequency/Hz’);ylabel(‘Amuplitud e’); title(‘kaiser窗函数滤波效果’); %滤波前后的信号的时域对比figure(4); plot(y);xlabel(‘时间/s’);ylabel(‘振幅’);title(‘滤波前振幅特

性’); figure(5); subplot(2,2,1),plot(yy1);xlabel(‘时间/s’);ylabel(‘振幅’);title(‘hanning窗函数滤波振幅特性’); subplot(2,2,2),plot(yy2);xlabel(‘时间/s’);ylabel(‘振幅’);title(‘hamming窗函数滤波振幅特性’); subplot(2,2,3),plot(yy3);xlabel(‘时间/s’);ylabel(‘振幅’);title(‘blackman窗函数滤波振幅特性’); subplot(2,2,4),plot(yy4);xlabel(‘时间/s’);ylabel(‘振幅’);title(‘kaiser窗函数滤波振幅特性’); %滤波前后的信号的相位对比figure(6); plot(angle(Y));xlabel(‘时间/s’);ylabel(‘相位’);title(‘滤波前的相位特性’); figure(7); subplot(2,2,1),plot(angle(YY1));xlabel(‘时间/s’);ylabel(‘相位’);title(‘hann ing窗函数滤波相位特性’); subplot(2,2,2),plot(angle(YY2));xlabel(‘时间/s’);ylabel(‘相位’);title(‘hamming窗函数滤波相位特性’);

subplot(2,2,3),plot(angle(YY3));xlabel(‘时间/s’);ylabel(‘相位’);title(‘blackman窗函数滤波相位特性’); subplot(2,2,4),plot(angle(YY4));xlabel(‘时间/s’);ylabel(‘相位’);title(‘kaiser窗函数滤波相位特性’); 3.分别设计hanning hamming blackman kaiser窗函数highpass_FIR function highpassfilter clc; clear all; Fs=100;%采样频率fs=35;%高通阻带模拟截止频率fp=40;%高通通带模拟起始频率ws=2*pi*fs/Fs; wp=2*pi*fp/Fs; wn=(wp+ws)/2/pi; Bt=wp-ws; N0=ceil(55*pi/Bt);

N=N0+mod(N0+1,2); %调用窗函数window1=hanning(N);

window2=hamming(N);

window3=blackman(N);

[n,Wn,beta,ftype]=kaiserord([35,40],[0 1],[ ],100); window4=kaiser(n+1,beta); %设计加窗函数fir1 b1=fir1(N-1,wn,’high’,window1);

b2=fir1(N-1,wn,’high’,window2);

b3=fir1(N-1,wn,’high’,window3);

b4=fir1(n,Wn,’high’,window4 ,’noscale’); %求取频率响应[H1,W1]=freqz(b1,1,512,2);

[H2,W2]=freqz(b2,1,512,2);

[H3,W3]=freqz(b3,1,512,2);

[H4,W4]=freqz(b4,1,512,2);

figure(1);

subplot(2,2,1),plot(W1,20*log10(abs(H1)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘高通hanning窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); subplot(2,2,2),plot(W2,20*log10(abs(H2)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘高通hamming窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); subplot(2,2,3),plot(W3,20*log10(abs(H3)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘高通

blackman窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); subplot(2,2,4),plot(W4,20*log10(abs(H4)) );%绘制频率响应图形axis([0,1,-100,100]); title(‘ 高通kaiser窗的频率响应图形’); xlabel(‘频率(Hz)’); ylabel(‘幅值’); T=1/Fs; L=100;%信号长度t=(0:L-1)*T;%定义时间范围和步长y=sin(2*pi*5*t)+5*sin(2*pi*15*t)+8*sin( 2*pi*40*t);%滤波前的图形NFFT = 2

extpow2(L); % Next power of 2 from length of y Y = fft(y,NFFT)/L;%将时域信号变换到频域 f = Fs/2*linspace(0,1,NFFT/2+1);%频域采样figure(2);

plot(f,2*abs(Y(1:NFF T/2+1)));xlabel(‘freq uency/Hz’);ylabel(‘Amuplitude’) ;%滤波前频谱title(‘滤波前的频谱’); %滤波后频谱%采用hanning窗滤波器yy1=filter(b1,1,y);%调用滤波函数YY1=fft(yy1,NFFT)/L;%进行傅里叶变换,下同。f1=Fs/2*linspace(0,1,NFFT/2+1);

figure(3);

subplot(2,2,1),plot(f1,2*abs(YY1(1:NFFT/ 2+1))) ;xlabel(‘frequency/Hz’);ylabel(‘Am uplitude’); title(‘hanning窗的滤波效果’); %采用hammning窗滤波器yy2=filter(b2,1,y);

YY2=fft(yy2,NFFT)/L;

f1=Fs/2*linspace(0,1,NFFT/2+1); subplot(2,2,2),plot(f1,2*abs(YY2(1:NFFT/

简单低通滤波器设计及matlab仿真

东北大学 研究生考试试卷 考试科目: 课程编号: 阅卷人: 考试日期: 姓名:xl 学号: 注意事项 1.考前研究生将上述项目填写清楚. 2.字迹要清楚,保持卷面清洁. 3.交卷时请将本试卷和题签一起上交. 4.课程考试后二周内授课教师完成评卷工作,公共课成绩单与试卷交研究生院培养办公室, 专业课成绩单与试卷交各学院,各学院把成绩单交研究生院培养办公室. 东北大学研究生院培养办公室

数字滤波器设计 技术指标: 通带最大衰减: =3dB , 通带边界频率: =100Hz 阻带最小衰减: =20dB 阻带边界频率: =200Hz 采样频率:Fs=200Hz 目标: 1、根据性能指标设计一个巴特沃斯低通模拟滤波器。 2、通过双线性变换将该模拟滤波器转变为数字滤波器。 原理: 一、模拟滤波器设计 每一个滤波器的频率范围将直接取决于应用目的,因此必然是千差万别。为了使设计规范化,需要将滤波器的频率参数作归一化处理。设所给的实际频 率为Ω(或f ),归一化后的频率为λ,对低通模拟滤波器令λ=p ΩΩ/,则1 =p λ, p s s ΩΩ=/λ。令归一化复数变量为p ,λj p =,则p p s j j p Ω=ΩΩ==//λ。所以巴 特沃思模拟低通滤波器的设计可按以下三个步骤来进行。 (1)将实际频率Ω规一化 (2)求Ωc 和N 11010/2-=P C α s p s N λααlg 1 10 110lg 10 /10/--= 这样Ωc 和N 可求。 p x fp s x s f

根据滤波器设计要求=3dB ,则C =1,这样巴特沃思滤波器的设计就只剩一个参数N ,这时 N p N j G 222 )/(11 11)(ΩΩ+= += λλ (3)确定)(s G 因为λj p =,根据上面公式有 N N N p j p p G p G 22)1(11 )/(11)()(-+= += - 由 0)1(12=-+N N p 解得 )221 2exp(πN N k j p k -+=,k =1,2, (2) 这样可得 1 )21 2cos(21 ) )((1 )(21+-+-= --= -+πN N k p p p p p p p G k N k k 求得)(p G 后,用p s Ω/代替变量p ,即得实际需要得)(s G 。 二、双线性变换法 双线性变换法是将s 平面压缩变换到某一中介1s 平面的一条横带里,再通过标准变换关系)*1exp(T s z =将此带变换到整个z 平面上去,这样就使s 平面与z 平面之间建立一一对应的单值关系,消除了多值变换性。 为了将s 平面的Ωj 轴压缩到1s 平面的1Ωj 轴上的pi -到pi 一段上,可以通过以下的正切变换来实现: )21 tan(21T T Ω= Ω 这样当1Ω由T pi -经0变化到T pi 时,Ω由∞-经过0变化到∞+,也映射到了整个Ωj 轴。将这个关系延拓到整个s 平面和1s 平面,则可以得到

数字滤波器matlab的程序

数字滤波器matlab的源代码 function lvbo(Ua,Ub,choise) %参考指令:lvbo(2*pi,10*pi,1/0/-1) U1=min(Ua,Ub); U2=max(Ua,Ub); Us=16*U2; T=2*pi/Us; T_sum=4*max(2*pi/Ua,2*pi/Ub); sum=T_sum/T; t=T:T:T_sum; x=sin(U1*t)+0.8*sin(U2*t); X=DFT(x); figure(1); subplot(221) U=Us/sum:Us/sum:Us; stem(U,abs(X));grid on axis([Us/sum,Us/2,0,1.2*max(abs(X))]) title('原模拟信号采样频谱图') Ucd=U1+(U2-U1)*1/5;Usd=U2-(U2-U1)*1/5; switch choise case 1 Hz_ejw=IIR_DF_BW(Ucd,1,Usd,30,T,sum); case -1 Hz_ejw=IIR_DF_CF(Ucd,1,Usd,30,T,sum); case 0 Hz_ejw=FIR_DF_HM(U1,U2,T,sum); otherwise Hz_ejw=IIR_DF_BW(Ucd,1,Usd,30,T,sum); end Y=X.*Hz_ejw; y=1/sum*conj(DFT(conj(Y))); figure(1); subplot(224) plot(t,real(y)); title('模拟信号滤波后');grid on axis([0,T_sum,-max(real(y))*1.5,max(real(y))*1.5]) subplot(222); plot(t,x); hold on

中值滤波原理及MATLAB实现.

中值滤波原理及MATLAB实现 摘要:图像是一种重要的信息源,通过图像处理可以帮助人们了解信息的内涵。本文将纯净的图像加入椒盐噪声,然后采用中值滤波的方法对其进行去噪。中值滤波是一种常用的非线性信号处理技术,在图像处理中,它对滤除脉冲干扰噪声最为有效。文章阐述了中值滤波的原理、算法以及在图像处理中的应用。MATLAB是一种高效的工程计算语言,在数据处理、图像处理、神经网络、小波分析等方面都有广泛的应用。 关键词:图像,中值滤波,去噪,MATLAB 1. 引言 20世纪20年代,图像处理首次得到应用。上个世纪60年代中期,随着计算机科学的发展和计算机的普及,图像处理得到广泛的应用。60年代末期,图像处理技术不断完善,逐渐成为一个新兴的学科。图像处理中输入的是质量低的图像,输出的是改善质量后的图像。 为了改善图像质量,从图像中提取有效信息,必须对图像进行去噪预处理。根据噪声频谱分布的规律和统计特征以及图像的特点,出现了多种多样的去噪方法。经典的去噪方法有:空域合成法,频域合成法和最优合成法等,与之适应的出现了许多应用方法,如均值滤波器,中值滤波器,低通滤波器,维纳滤波器,最小失真法等。这些方法的广泛应用,促进数字信号处理的极大发展,显著提高了图像质量。 2. 中值滤波 在图像滤波中,常用的方法是线性滤波技术和非线性滤波技术,线性滤波以其完美的理论基础,数学处理简单、易于采用和硬件实现等优点,一直在图像滤波领域中占有重要的地位。线性滤波对加性高斯噪声有较好的平滑作用,但对脉冲信号和其它形式的高频分量抑制效果较差,且模糊信号边缘。非线性滤波是基于对输入信号序列的一种非线性投影关系,常把某一特定的噪声近似为零而保留信号的重要特征,一定程度上克服线性滤波器的不足,非线性滤波早期运用较多的是中值滤波器,其应用于多维信号处理时,对窄脉冲信号具有良好的抑制能力,但

各类滤波器的MATLAB程序清单

各类滤波器的MATLAB程序 一、理想低通滤波器 IA=imread(''); [f1,f2]=freqspace(size(IA),'meshgrid'); Hd=ones(size(IA)); r=sqrt(f1.^2+f2.^2); Hd(r>=0; Y=fft2(double(IA)); Y=fftshift(Y); Ya=Y.*Hd; Ya=ifftshift(Ya); Ia=ifft2(Ya); figure subplot(2,2,1),imshow(uint8(IA)); subplot(2,2,2),imshow(uint8(Ia)); figure surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); 二、理想高通滤波器 IA=imread(''); [f1,f2]=freqspace(size(IA),'meshgrid'); Hd=ones(size(IA)); r=sqrt(f1.^2+f2.^2); Hd(r<=0; Y=fft2(double(IA));

Y=fftshift(Y); Ya=Y.*Hd; Ya=ifftshift(Ya); Ia=real(ifft2(Ya)); figure subplot(2,2,1),imshow(uint8(IA)); subplot(2,2,2),imshow(uint8(Ia)); figure surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); 三、B utterworth低通滤波器 IA=imread(''); [f1,f2]=freqspace(size(IA),'meshgrid'); D=; 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); end end Y=fft2(double(IA)); Y=fftshift(Y); Ya=Y.*Hd; Ya=ifftshift(Ya); Ia=real(ifft2(Ya));

基于Matlab的常用滤波算法研究(含代码)讲解

毕业设计(论文) UNDERGRADUATE PROJECT (THESIS) 题目: 冲击测试常用滤波算法研究 学院 专业 学号 学生姓名 指导教师 起讫日期

目录 摘要 (2) ABSTRACT (3) 第一章绪论 (4) 1.1课题背景 (4) 1.2国内外相关领域的研究 (4) 1.3主要研究内容与创新 (5) 1.3.1研究内容与意义 (5) 1.3.2课题的创新点 (5) 1.3.3 研究目的与技术指标 (6) 第二章数字滤波基础 (7) 2.1数字滤波算法概念 (7) 2.2数据采样与频谱分析原理 (8) 2.2.1 时域抽样定理 (8) 2.2.2 离散傅立叶变换(DFT) (8) 2.2.3 快速傅立叶变换(FFT) (9) 2.2.4 频谱分析原理 (9) 2.3常用数字滤波算法基础 (10) 2.3.1常用数字滤波算法分类 (10) 2.3.2常用数字滤波算法特点 (11) 2.3.3常用滤波算法相关原理 (13) 2.4 冲击测试采样数据 (16) 2.4.1噪声的特点与分类 (16) 2.4.2冲击测试采样数据特点 (17) 2.5 MATLAB简介 (17) 2.5.1 MATLAB功能简介 (18) 2.5.2 MATLAB的发展 (18) 第三章、冲击测试滤波算法设计及滤波效果分析 (20) 3.1 冲击测试采样数据的分析 (20) 3.2 滤波算法设计及效果分析 (21) 3.2.1 中位值平均法的设计 (21) 3.2.2限幅法和限速法的设计 (23) 3.2.3一阶滞后法的设计 (25) 3.2.4低通法的设计 (26) 第四章结论与展望 (34) 4.1冲击测试的滤波算法总结 (34) 4.2冲击测试的滤波算法展望 (34) 致谢 (36) 参考文献 (37) 附录:程序代码清单 (38)

matlab程序之——滤波器(带通-带阻)教学内容

m a t l a b程序之——滤波器(带通-带阻)

matlab程序之——滤波器(带通,带阻) 以下两个滤波器都是切比雪夫I型数字滤波器,不是巴特沃尔滤波器,请使用者注意! 1.带通滤波器 function y=bandp(x,f1,f3,fsl,fsh,rp,rs,Fs) %带通滤波 %使用注意事项:通带或阻带的截止频率与采样率的选取范围是不能超过采样率的一半 %即,f1,f3,fs1,fsh,的值小于 Fs/2 %x:需要带通滤波的序列 % f 1:通带左边界 % f 3:通带右边界 % fs1:衰减截止左边界 % fsh:衰变截止右边界 %rp:边带区衰减DB数设置 %rs:截止区衰减DB数设置 %FS:序列x的采样频率 % f1=300;f3=500;%通带截止频率上下限 % fsl=200;fsh=600;%阻带截止频率上下限 % rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值 % Fs=2000;%采样率 % wp1=2*pi*f1/Fs; wp3=2*pi*f3/Fs; wsl=2*pi*fsl/Fs; wsh=2*pi*fsh/Fs; wp=[wp1 wp3]; ws=[wsl wsh]; % % 设计切比雪夫滤波器; [n,wn]=cheb1ord(ws/pi,wp/pi,rp,rs); [bz1,az1]=cheby1(n,rp,wp/pi); %查看设计滤波器的曲线 [h,w]=freqz(bz1,az1,256,Fs); h=20*log10(abs(h));

figure;plot(w,h);title('所设计滤波器的通带曲线');grid on; y=filter(bz1,az1,x); end 带通滤波器使用例子 %-------------- %带通滤波器测试程序 fs=2000; t=(1:fs)/fs; ff1=100; ff2=400; ff3=700; x=sin(2*pi*ff1*t)+sin(2*pi*ff2*t)+sin(2*pi*ff3*t); figure; subplot(211);plot(t,x); subplot(212);hua_fft(x,fs,1); % y=filter(bz1,az1,x); y=bandp(x,300,500,200,600,0.1,30,fs); figure; subplot(211);plot(t,y); subplot(212);hua_fft(y,fs,1); %调用到的hua_fft()函数代码如下 function hua_fft(y,fs,style,varargin) %当style=1,画幅值谱;当style=2,画功率谱;当style=其他的,那么花幅值谱和功率谱 %当style=1时,还可以多输入2个可选参数 %可选输入参数是用来控制需要查看的频率段的 %第一个是需要查看的频率段起点 %第二个是需要查看的频率段的终点 %其他style不具备可选输入参数,如果输入发生位置错误 nfft= 2^nextpow2(length(y));%找出大于y的个数的最大的2的指数值(自动进算最佳FFT步长nfft) %nfft=1024;%人为设置FFT的步长nfft y=y-mean(y);%去除直流分量 y_ft=fft(y,nfft);%对y信号进行DFT,得到频率的幅值分布 y_p=y_ft.*conj(y_ft)/nfft;%conj()函数是求y函数的共轭复数,实数的共轭复数是他本身。

基于matlab-的巴特沃斯低通滤波器的实现

基于matlab 的巴特沃斯低通滤波器的实现 一、课程设计的目的 运用MATLAB实现巴特沃斯低通滤波器的设计以及相应结果的显示,另外还对多种低通滤波窗口进行了比较。 二、课程设计的基本要求 1)熟悉和掌握MATLAB 的基本应用技巧。 2)学习和熟悉MATLAB相关函数的调用和应用。 3)学会运用MATLAB实现低通滤波器的设计并进行结果显示。 三、双线性变换实现巴特沃斯低通滤波器的技术指标: 1.采样频率10Hz。 2.通带截止频率fp=0.2*pi Hz。 3.阻带截止频率fs=0.3*pi Hz。 4.通带衰减小于1dB,阻带衰减大于20dB 四、使用双线性变换法由模拟滤波器原型设计数字滤波器 程序代码: T=0.1; FS=1/T; fp=0.2*pi;fs=0.3*pi; wp=fp/FS*2*pi; ws=fs/FS*2*pi; Rp = 1; % 通带衰减 As = 15; % 阻带衰减 OmegaP = (2/T)*tan(wp/2); % 频率预计 OmegaS = (2/T)*tan(ws/2); % 频率预计 %设计巴特沃斯低通滤波器原型

N = ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(OmegaP/OmegaS))); OmegaC = OmegaP/((10^(Rp/10)-1)^(1/(2*N))); [z,p,k] = buttap(N); %获取零极点参数 p = p * OmegaC ; k = k*OmegaC^N; B = real(poly(z)); b0 = k; cs = k*B; ds = real(poly(p)); [b,a] = bilinear(cs,ds,FS);% 双线性变换 figure(1);% 绘制结果 freqz(b,a,512,FS);%进行滤波验证 figure(2); % 绘制结果 f1=50; f2=250; n=0:63; x=sin(2*pi*f1*n)+sin(2*pi*f2*n); subplot(2,2,1);stem(x,'.'); title ('输入信号'); y=filter(b,a,x); subplot(2,2,2);stem(y,'.') ; title('滤波之后的信号'); figure(3) ; stem(y,'.') title('输出的信号'))

matlab实现中值滤波去除脉冲噪声matlab小程序

matlab实现中值滤波去除脉冲噪声matlab小程序(图像处理)2010-04-1612:58:44阅读8评论0字号:大中小 实验原理:中值滤波器是将领域内像素灰度的中值代替该像素的值,对处理脉冲噪声(椒盐噪声)非常有效。为了对一幅图像上的某个点进行中值滤波处理,必须先将掩模内欲求的像素及其领域的像素值排序,确定出中值,主要功能是使拥有不同灰度的点看起来更接近于它的邻近值。 程序说明:函数名为mid(pic_name,s)的函数,其中参数pic_name为读入的图像,s为掩模矩阵的边长,由用户自行决定。 实验说明:随着掩模矩阵的变大,我们可以看到脉冲噪声去除得更加理想,但同时图像会变得更模糊,因为各点像素与其邻域更为接近,因此,进行中值滤波时选择一个适合的掩模矩阵十分重要。另外,我们看到图像的边界处出现了黑色的斑点,这是由于我采用了0来直译边界,这种影响可用镜像反射方式对称地沿其边界扩展来减弱。 另附:其实本实验可以完全由matlab中的函数median或medfilt2简单实现,此处写出内部处理过程,主要是为了让大家理解中值滤波的具体处理过程。 程序源代码: function mid(pic_name,s) close all; s=double(s); X=imread(pic_name); Y1=imnoise(X,'salt&pepper',0.2);%对读入的图像加脉冲噪声 figure; imshow(uint8(Y1)); Y1=double(Y1); [m,n]=size(X); s2=round(s/2); s3=round(s*s/2);%中值像素点的位置

FIR低通滤波器+matlab编程+滤波前后图形

Matlab实现振动信号低通滤波 附件txt中的数字是一个实测振动信号,采样频率为5000Hz,试设计一个长度为M=32的FIR低通滤波器,截止频率为600Hz,用此滤波器对此信号进行滤波。要求: (1)计算数字截止频率; (2)给出滤波器系数; (3)绘出原信号波形; (4)绘出滤波后的信号波形; 解答过程: 第一部分:数字截止频率的计算 =600/5000/2=0.24 数字截止频率等于截止频率除以采样频率的一半,即 n 第二部分:滤波器系数的确定 在matlab中输入如下程序,即可得到滤波器系数: n=32 Wn=0.24 b=fir1(n,Wn) 得到的滤波器系数b为 Columns 1 through 9 -0.0008 -0.0018 -0.0024 -0.0014 0.0021 0.0075 0.0110 0.0077 -0.0054 Columns 10 through 18 -0.0242 -0.0374 -0.0299 0.0087 0.0756 0.1537 0.2166 0.2407 0.2166 Columns 19 through 27 0.1537 0.0756 0.0087 -0.0299 -0.0374 -0.0242 -0.0054 0.0077 0.0110 Columns 28 through 33 0.0075 0.0021 -0.0014 -0.0024 -0.0018 -0.0008 第三部分:原信号波形 将附件4中的dat文件利用识别软件读取其中的数据,共1024个点,存在TXT 文档中,取名bv.txt,并复制到matlab的work文件夹。 在matlab中编写如下程序: x0=load('zhendong.txt'); %找到信号数据地址并加载数据。 t=0:1/5000:1023/5000; %将数据的1024个点对应时间加载

完整的维纳滤波器Matlab源程序

完整的维纳滤波器Matlab源程序学术2009-11-20 20:31:58 阅读308 评论0 字号:大中小 完整的维纳滤波器Matlab源程序 clear;clc; %输入信号 A=1; %信号的幅值 f=1000; %信号的频率 fs=10^5; %采样频率 t=(0:999); %采样点 Mlag=100; %相关函数长度变量 x=A*cos(2*pi*f*t/fs); %输入正弦波信号 xmean=mean(x); %正弦波信号均值 xvar=var(x,1); %正弦波信号方差 xn=awgn(x,5); %给正弦波信号加入信噪比为20dB的高斯白噪声 figure(1) plot(t,xn) %绘制输入信号图像 title('输入信号图像') xlabel('x轴单位:t/s','color','b') ylabel('y轴单位:f/HZ','color','b') xnmean=mean(xn) %计算输入信号均值xnms=mean(xn.^2) %计算输入信号均方值xnvar=var(xn,1) %计算输入信号方差 Rxn=xcorr(xn,Mlag,'biased'); %计算输入信号自相关函数figure(2) subplot(221) plot((-Mlag:Mlag),Rxn) %绘制自相关函数图像 title('输入信号自相关函数图像') [f,xi]=ksdensity(xn); %计算输入信号的概率密度,f 为样本点xi处的概率密度 subplot(222) plot(xi,f) %绘制概率密度图像 title('输入信号概率密度图像') X=fft(xn); %计算输入信号序列的快速离散傅里叶变换 Px=X.*conj(X)/600; %计算信号频谱 subplot(223) semilogy(t,Px) %绘制在半对数坐标系下频

基于MATLAB的巴特沃斯滤波器

数字信号处理课程设计 2015年 6 月25 日

目录 一.设计目的: (3) 二.设计要求: (3) 三.设计内容: (4) 3.1选择巴特涡斯低通数据滤波器及双线性变换法的原因 (4) 3.2巴特沃思低通滤波器的基本原理 (4) 3.3双线性变换法原理 (5) 3.4数字滤波器设计流程图 (7) 3.5数字滤波器的设计步骤 (7) 四.用matlab实现巴特沃斯低通数字滤波器的仿真并分析 (9) 4.1巴特沃斯低通数字滤波器技术指标的设置 (9) 4.2用matlab实现巴特沃斯低通数字滤波器的仿真 (9) 4.3波形图分析: (12) 五.总结与体会 (13) 六.附录参考文献 (14) 2

一.设计目的: 该课程设计是测控技术与仪器专业的必修课,开设课程设计的目的使学生掌握数字信号处理的基本概念和基本理论,能够利用辅助工具进行FIR和IIR数字滤波器的设计,进行一维信号的频谱分析,并进行仿真验证。加强实践教学环节,加强学生独立分析、解决问题的能力,培养学生动手能力和解决实际问题的能力,实现宽口径教育。 (1)理解低通滤波器的过滤方法。 (2)进一步熟悉低通滤波器的基本应用。 (3)用仿真工具matlab软件对设计的滤波器进行软件和硬件仿真。 (6)将对仿真结果进行比较,从而检验滤波器滤波性能的准确性。 二.设计要求: 地震发生时,除了会产生地震波,还会由地层岩石在断裂、碰撞过程中所发生的震动产生次声波。它的频率大约在每秒十赫兹到二十赫兹之间(可以用11Hz和15Hz的两个信号的和进行仿真,幅度可以分别设定为1、2)。大气对次声波的吸收系数很小,因此它可以传播的很远,而且穿透性很强。通过监测次声波信号可以监测地震的发生、强度等信息,因为自然界中广泛存在着各种次声波,这就对地震产生的次声波产生了干扰(可以用白噪声模拟,方差为5),需要采取一定的处理方法,才能检测到该信号,要求设计检测方案;并处理方法给出具体的软件(可以以51系列单片机、STM32F407、TMS320F28335或TMS320F6745为例)。 假设地震次声波信号为x,输入x=sin(2*π*11*t)+2*sin(2*π*15*t)和伴有白噪声的合成信号,经过滤波器后滤除15Hz以上的分量,即只保留x=sin(2*π*11*t)+2*sin(2*π*15*t)的分量信号,来验证设计的滤波器是否达到了设计要求。 3

滤波器设计MATLAB

数字信号处理

第一章概述 《数字信号处理》课程是通信专业的一门重要专业基础课,是信息的数字化处理、存储和应用的基础。通过该课程的课程设计实践,使我们对信号与信息的采集、处理、传输、显示、存储、分析和应用等有一个系统的掌握和理解,巩固和运用在《数字信号处理》课程中所学的理论知识和实验技能,掌握数字信号处理的基础理论和处理方法,提高分析和解决信号与信息处理相关问题的能力,为以后的工作和学习打下基础。 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。 其中,设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用

最广泛的是双线性变换法。 我们在课本中学到基本设计过程是: ①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标; ②设计过渡模拟滤波器; ③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。 而MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。 第二章总体方案设计 首先我将所给信号用MATLAB作图分析,然后通过观察st的幅频特性曲线,确定用高通滤波器作为处理信号的滤波器。选取滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB 为参数。 然后通过编程序调用MATLAB滤波器设计函数ellipord和ellip设计椭圆滤波器;通过编程序调用函数cheb1ord和cheby1设计切比雪夫滤波器,并绘图显示其幅频响应特性曲线。最后使用用滤波器实现函数filter,用两个滤波器分别对信号st进行滤波后绘图显示时域波形,观察滤波效果。 实验程序框图如图所示:

数字图像处理_平均滤波与中值滤波(含MATLAB代码)

数字图像处理实验二 15生医 一、实验内容 产生教材104页题图4.18(右图)所示的二值图像(白为1,黑为0),编程实现习题4.18所要求的处理(3x3的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取0或1),显示处理前后的图像,比较其异同。 二、运行环境 MATLAB R2014a 三、运行结果及分析 1. 四种不同的窗的3x3平均滤波 ①在 MATLAB 图形窗界面进行放大可以看出四者之间的差别: 4领域与8邻域之间没有明显差别,但是加权与未加权之间的差别较为明显,体现在: 加权后每个矩形块的四个尖角部分都被保留了下来4邻域平均滤波后图 像8邻域平均滤波后图像 4邻域加权平均滤波后图像8邻域加权平均滤波后图像

(图像四周边界不考虑),而未加权的尖角处黑色变为白色。 ②原因分析: 加权后尖角处原来白色的点(1)进行计算3/5=0.6四舍五入后值为1,保持白色,原来黑色的点(0)进行计算2/5=0.4四舍五入后值为0,保持黑色;而未加权尖角处无论原来是黑色还是白色,进行计算 2/4=0.5四舍五入后值为1,所以原先的黑色(0)也变成了白色(1)。 ③下图为放大后的截图: 2.中值滤波与原图像的对比

①在 MATLAB图形窗界面进行放大后可观察出: 使用3x3 方形中值滤波模板的效果与4领域、8领域加权平均滤波的 效果相同,每个矩形块的四个尖角部分都被保留了下来(图像四周边界不考虑)。 ②原因分析: 套用3x3方形中值滤波模板后,尖角处原来白色的点(1)在窗内1多于0,取中值后仍保持白色,原来黑色的点(0)在窗内0多于1,取中值后仍保持白色。 ③下图为放大后的截图: 原图像中值滤波后图像

设计数字低通滤波器(用matlab实现)

DSP 设计滤波器报告 姓名:张胜男 班级:07级电信(1)班 学号:078319120 一·低通滤波器的设计 (一)实验目的:掌握IIR 数字低通滤波器的设计方法。 (二)实验原理: 1、滤波器的分类 滤波器分两大类:经典滤波器和现代滤波器。 经典滤波器是假定输入信号)(n x 中的有用成分和希望取出的成分各自占有不同的频带。这样,当)(n x 通过一个线性系统(即滤波器)后可讲欲去除的成分有效的去除。 现代滤波器理论研究的主要内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。 经典滤波器分为低通、高通、带通、带阻滤波器。每一种又有模拟滤波器(AF )和数字滤波器(DF )。对数字滤波器,又有IIR 滤波器和FIR 滤波器。 IIR DF 的转移函数是: ∑∑=-=-+==N k k k M r r r z a z b z X z Y z H 10 1)()()( FIR DF 的转移函数是: ∑-=-=10)()(N n n z n h z H FIR 滤波器可以对给定的频率特性直接进行设计,而IIR 滤波器目前最通用的方法是利用已经很成熟的模拟滤波器的设计方法进行设计。 2、滤波器的技术要求 低通滤波器: p ω:通带截止频率(又称通带上限频率) s ω:阻带下限截止频率 p α:通带允许的最大衰减 s α:阻带允许的最小衰减 (p α,s α的单位dB ) p Ω:通带上限角频率 s Ω:阻带下限角频率 (s p p T ω=Ω,s s s T ω=Ω)即 C p p F ωπ2=Ω C s s F ωπ2=Ω 3、IIR 数字滤波器的设计步骤:

中值滤波快速算法&菱形窗口matlab实现

function g=QuiMedFil2(f) g=f; t=2; [m,n]=size(f); for i=2:m-1 for j=2:n-1 if(j==2) A=f(i-1:i+1,j-1:j+1); hist=imhist(A); mdn=median(A(:)); %mdn=Med(f(i-1:i+1,j-1:j+1))+1; L=find(f(i-1:i+1,j-1:j+1)th mdn=mdn-1; Ltmdn = Ltmdn-hist(mdn+1); end

while (Ltmdn+hist(mdn+1))<=th Ltmdn=Ltmdn+hist(mdn+1); mdn=mdn+1; end g(i,j)=mdn; end end t=t+1;%t-line; end ======================================= =========================实现过程如下 rgb=imread('Figure1.JPG'); %此处通过matlab读入任何一幅图像 >> I=rgb2gray(rgb); %将图像灰度化 >> I=imresize(I,0.1); %若图像过大可进行适当调整,或省略此步 >> g=QuiMedFil2(I) %调用所编程序执行中值滤波快速算法 figure,imshow(I),figure,imshow(g) %显示原图像和滤波后的图像 =============================================================================== =================================================== 与传统中值滤波算法的同窗口的计算时间对比 快速算法略高于一般算法 =============================================================================== =====================================================菱形5*5中值滤波程序function g=MedFilRho(f) g=f; g=[]; [m,n]=size(f); for i=3:(m-2) for j=3:(n-2) B=[f(i,j),f(i-2,j),f(i-1,j),f(i+1,j),f(i+2,j),f(i,j-1),f(i,j-2),f(i,j+1),f(i,j+2),f(i-1,j-1),f(i+1,j+1),f(i-1,j+1),f(i+1,j-1)]; g(i,j)=median(B); end end 备注:程序为原创,原文地址: https://www.360docs.net/doc/089012391.html,/walqxlqxaw/blog/item/aabb517f877e6f190dd7daad.ht ml

Matlab在滤波器中的应用

MATLAB大作业 院(系):信息工程学院 专业:09通信工程 班级:通信一班 学生:钟锦慧 学号:20090610080118 指导教师:邹丹 2011年12月18日

MATLAB在滤波器设计中的应用 1. 绪论 从20世纪初至今,在通信与电子系统中,滤波器的研究和应用经历了漫长、艰辛而曲折的道路,滤波器在信号传输与信号处理中的重要地位和作用已经非常明显,所以滤波器的分析与设计更是应该重点研究的问题。滤波器,顾名思义,是对波进行过滤的器件。“波”是一个非常广泛的物理概念,在电子技术领域,“波”被狭义地局限于特指描述各种物理量的取值随时间起伏变化的过程。该过程通过各类传感器的作用,被转换为电压或电流的时间函数,称之为各种物理量的时间波形,或者称之为信号。因为自变量时间是连续取值的,所以称之为连续时间信号,又习惯地称之为模拟信号(Analog Signal)。随着数字式电子计算机(一般简称计算机)技术的产生和飞速发展,为了便于计算机对信号进行处理,产生了在抽样定理指导下将连续时间信号变换成离散时间信号的完整的理论和方法。也就是说,可以只用原模拟信号在一系列离散时间坐标点上的样本值表达原始信号而不丢失任何信息,波、波形、信号这些概念既然表达的是客观世界中各种物理量的变化,自然就是现代社会赖以生存的各种信息的载体。信息需要传播,靠的就是波形信号的传递。信号在它的产生、转换、传输的每一个环节都可能由于环境和干扰的存在而畸变,有时,甚至是在相当多的情况下,这种畸变还很严重,以致于信号及其所携带的信息被深深地埋在噪声当中了[。 2. MATLAB简介 2.1 MATLAB的概述 20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MA TLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MA TLAB推向市场。到20世纪90年代,MA TLAB已成为国际控制界的标准计算软件。 MA TLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MA TLAB和Simulink两大部分。 MA TLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测

matlab设计低通滤波器

个matlab程序怎么编?(设计低通滤波器) 通带边缘频率10khz 阻带边缘频率22khz 阻带衰减75db 采样频率50khz 要求设计这个低通滤波器 画出脉冲响应的图形 还有滤波器的形状 具体程序怎么编? 谢谢各位大虾的指点!!! 最佳答案 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)。最小抽样速率fs=2fx称为奈奎斯特速率。 低通 译码 编码 量化 抽样 输入信号样点输出滤波输出 A/D(模数转换)D/A(数模转换) 图1 低通采样定理演示 为方便实现,实验中更换了一种表现形式,即抽样频率固定(10KHz),通过改变输入模拟信号的频率来展示低通抽样定理。我们可以通过研究抽样频率和模拟信号最高频率分量的频率之间的关系,来验证低通抽样定理。 1.4 实验内容 1.软件仿真实验:编写并调试MATLAB程序,分析有关参数,记录有关波形。 2.硬件实验:输入不同频率的正弦信号,观察采样时钟波形、输入信号波形、样点输出波形和滤波输出波形。 1.5 MATLAB参考程序和仿真内容 %*******************************************************************% %f—余弦信号的频率

高通滤波器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;%初始化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滤波处理后的图像

MATLAB滤波程序

1线性平滑滤波器 用MA TLAB实现领域平均法抑制噪声程序: I=imread(' c4.jpg '); subplot(231) imshow(I) title('原始图像') I=rgb2gray(I); I1=imnoise(I,'salt & pepper',0.02); subplot(232) imshow(I1) title(' 添加椒盐噪声的图像') k1=filter2(fspecial('average',3),I1)/255; %进行3*3模板平滑滤波 k2=filter2(fspecial('average',5),I1)/255; %进行5*5模板平滑滤波 k3=filter2(fspecial('average',7),I1)/255; %进行7*7模板平滑滤波 k4=filter2(fspecial('average',9),I1)/255; %进行9*9模板平滑滤波 subplot(233),imshow(k1);title('3*3 模板平滑滤波'); subplot(234),imshow(k2);title('5*5 模板平滑滤波'); subplot(235),imshow(k3);title('7*7 模板平滑滤波'); subplot(236),imshow(k4);title('9*9 模板平滑滤波'); 2.中值滤波器 用MA TLAB实现中值滤波程序如下: I=imread(' c4.jpg '); I=rgb2gray(I); J=imnoise(I,'salt&pepper',0.02); subplot(231),imshow(I);title('原图像'); subplot(232),imshow(J);title('添加椒盐噪声图像'); k1=medfilt2(J); %进行3*3模板中值滤波 k2=medfilt2(J,[5,5]); %进行5*5模板中值滤波 k3=medfilt2(J,[7,7]); %进行7*7模板中值滤波 k4=medfilt2(J,[9,9]); %进行9*9模板中值滤波 subplot(233),imshow(k1);title('3*3模板中值滤波'); subplot(234),imshow(k2);title('5*5模板中值滤波'); subplot(235),imshow(k3);title('7*7模板中值滤波'); subplot(236),imshow(k4);title('9*9 模板中值滤波'); 3状态统计滤波器:ordfilt2函数 Y=ordfilt2(X,order,domain) 由domain中非0元素指定邻域的排序集中的第order个元素代替X中的每个元素。Domain 是一个仅包括0和1的矩阵,1仅定义滤波运算的邻域。 Y=ordfilt2(X,order,domain,S) S与domain一样大,用与domain的非0值相应的S的值作为附加补偿。 4二维自适应除噪滤波器:wiener2函数 wiener2函数估计每个像素的局部均值与方差,该函数用法如下:

相关文档
最新文档