数字图像处理滤波器Word文档下载推荐.docx
- 文档编号:16168662
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:14
- 大小:732.59KB
数字图像处理滤波器Word文档下载推荐.docx
《数字图像处理滤波器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字图像处理滤波器Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
%例:
创建一个圆形的低通滤波器,其频率是0.5Hz.
clearall;
clc;
[f1,f2]=freqspace(25,'
meshgrid'
);
Hd=zeros(25,25);
d=sqrt(f1.^2+f2.^2)<
0.5;
%低通滤波器频率小于0.5
Hd(d)=1;
mesh(f1,f2,Hd);
set(gcf,'
Color'
'
W'
%2.模拟滤波器的频率响应
%freqs()函数
%1)H=freqs(B,A,W):
计算由向量W(rad/s)指定的频率点上模拟滤波器系统函数的频率响应。
%2)[H,w]=freqs(B,A,M):
计算出M个频率点上的频率响应存放在向量H中,M个频率存放在向量w中。
%3)freqs:
自动绘制频率响应的幅度和相频特性曲线。
%notice:
B是分子系数,A是分母系数。
给定模拟滤波器的转换函数为H(s)=(0.2*s^2+0.3*s+1)/(s^2+0.4*s+1),
%
试着绘制其频率响应。
a=[10.41];
b=[0.20.31];
w=linspace(-1,1);
%直接画出
figure
(1)
freqs(b,a,w);
%间接画出
figure
(2)
h=freqs(b,a,w);
mag=abs(h);
phase=angle(h);
subplot(2,1,1),loglog(w,mag),gridon;
subplot(2,1,2),semilogx(w,phase),gridon;
%3.数字滤波器的频率响应
%freqz()函数
%1)H=
freqz(B,A,w):
计算由向量w(rad)指定的数字频率点上的数字滤波器H(z)的频率响应。
%2)[H,w]=freqz(B,A,N):
计算N频率点上的响应存放在向量H中。
‘
%3)[H,w]=freqz(B,A,N,'
):
计算出N个频率点上的频率响应存在向量H中。
%4)[H,f]=freqz(B,A,N,fs)或者是[H,f]=freqz(B,A,N,'
fs)返回频率向量
%5)H=freqz(B,A,f,fs):
计算指定频率向量f和抽样频率fs的频率响应
%6)[H,w,s]=freqz(...):
返回相关的信息。
%7)freqz(...);
自动画出幅频响应和相频响应
已知某滤波器的系统函数是H(z)=1-z^(-9),求概率勃起的频率响应
A=1;
B=[10000000-1];
freqz(B,A,w);
h=freqz(B,A,w);
subplot(2,1,1),plot(w,mag),gridon;
subplot(2,1,2),plot(w,phase),gridon;
%4.单位冲激响应
%impz(b,a)
%1)[h,t]=impz(b,a):
b是分子系数,a是分母系数
%2)[h,t]=impz(b,a,n):
指定长度n的冲激响应的长度
%3)[h,t]=impz(b,a,m,fs):
参数fs为抽象频率
%4)impz(b,a):
绘制单位冲激响应的波形
对于转移函数H(z)=(1-3*z^(-1)+4*z^(-2))/(5-z^(-1)-2*z^(-2)),
绘制其单位冲激响应的波形。
b=[1-34];
a=[5-1-2];
N=30;
%区域内有25个点
impz(b,a,N);
gridon;
h=impz(b,a,N);
stem(h,'
.'
),gridon;
%5.零点极点
%zplane()函数
%1)zplane(b,a);
绘制转移函数H(z)=(1-3*z^(-1)+4*z^(-2))/(5-z^(-1)-2*z^(-2))的
零极点图。
zplane(b,a);
%6.filter函数
%MATLAB提供了filter函数用于实现直接II型滤波器
%y=filter(B,A,x)
%参数说明:
%B,A分别是分子,分母系数,x是待滤波处理的序列
绘制H(z^(-1))=(b(z^(-1)))/(a(z^(-1)))=(2+3*z^(-1))/(1+0.2*z^(-1))
函数的直接II型滤波器。
loadcount.dat
count1=timeseries(count(:
1),[1:
24]);
a=[10.2];
b=[23];
filter_count=filter(count1,b,a);
plot(count1,'
-.'
gridon,holdon;
plot(filter_count,'
-'
legend('
原始数据'
II型滤波数据'
2);
%7.filtic函数,filtfilt函数
%1.filtic函数用于求直接II型滤波器的初始条件,调用格式如下:
z=filtic(b,a,y,x);
b,a分子分母系数,y,x滤波器的输入,输出信号。
求对应的滤波器的初始条件z。
%2.filtfilt函数用来对给定的信号进行零相位滤波,调用格式如下:
y=filtfilt(b,a,x);
b,a分子分母系数,x是输入信号。
对其进行零相位滤波得到y。
对给定的信号进行零相位滤波
rngdefault;
x=ecg(500)'
+0.25*randn(500,1);
%产生噪声信号。
ecg有点儿像心脏的波形
h=fdesign.lowpass('
Fp,Fst,Ap,Ast'
0.15,0.2,1,60);
d=design(h,'
equiripple'
%低通滤波
y=filtfilt(d.Numerator,1,x);
%零相位滤波
y1=filter(d.Numerator,1,x);
%传统的滤波
subplot(2,1,1),plot([yy1]),title('
滤波器后的波形'
),legend('
零相位滤波'
传统滤波'
subplot(2,1,2),plot(x),title('
原始波形'
零相位滤波就是在原始波形上进行滤波,没有相移。
传统滤波存在相移。
绿色为传统滤波,蓝色为零相位滤波。
%9.fftfilt函数
%fftfilt函数用于进行基于FFT的FIR滤波
%1)调用格式:
y=fftfilt(b,x);
通过叠加的方法对信号x进行基于FFT的FIR滤波。
b是FIR滤波器的分子多项是系数,x为准备滤波的信号。
%notice:
此方法经常用于求长序列的卷积。
%2)y=fftfilt(b,x,n):
通过参数n指定作FFT时数据的长度。
信号x(n)为余弦信号加上均值为0,功率为0.15的白噪声,其长度为1000点,领用fftfilt滤波。
p=0.15;
N=1000;
n=0:
N-1;
x1=rand(1,N);
x1=(x1-mean(x1))*sqrt(p/var(x1));
%得到均值为0,功率为0.15的白噪声。
x2=cos(2*pi*n/65);
x=x1+x2;
b=fir1(12,0.3);
%设置12阶FIR滤波器
y=fftfilt(b,x)
subplot(2,1,1),plot(x),ylabel('
x(n)'
),xlabel('
n'
),title('
滤波前的信号波形'
subplot(2,1,2),plot(y),ylabel('
y(n)'
滤波后的信号波形'
MATLAB:
fir1
function
B=fir1(N,Wn)designsanN'
thorderlowpassFIRdigitalfilter
andreturnsthefiltercoefficientsinlengthN+1vectorB.
Thecut-offfrequencyWnmustbebetween0<
Wn<
1.0,with1.0
correspondingtohalfthesamplerate.
ThefilterBisrealand
haslinear
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 滤波器