数字信号处理Matlab实现实例.docx
《数字信号处理Matlab实现实例.docx》由会员分享,可在线阅读,更多相关《数字信号处理Matlab实现实例.docx(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实用标准文案数字信号处理 Matlab 实现实例第章离散时间信号与系统例 1-1 用 MATLAB 计算序列-20113和序列120-1的离散卷积。解 MATLAB 程序如下:a=-2 0 1 -1 3;b=1 2 0 -1;c=conv(a,b); M=length(c)-1; n=0:1:M;stem(n,c);xlabel(n); ylabel(幅度);图 1.1 给出了卷积结果的图形,求得的结果存放在数组 c 中为:-2-413151-3。例 1-2 用 MATLAB 计算差分方程当输入序列为时的输出结果。解 MATLAB 程序如下:N=41;a=0.8 -0.44 0.36 0.22
2、;b=1 0.7 -0.45 -0.6;x=1 zeros(1,N-1);精彩文档实用标准文案k=0:1:N-1;y=filter(a,b,x); stem(k,y) xlabel(n);ylabel(幅度)图 1.2 给出了该差分方程的前 41 个样点的输出,即该系统的单位脉冲响应。例 1-3 用 MATLAB 计算例 1-2 差分方程所对应的系统函数的DTFT。解 例 1-2 差分方程所对应的系统函数为:H (z) =0.8 - 0.44z-1 + 0.36z-2 + 0.02z-31+ 0.7z-1 - 0.45z-2 - 0.6z-3其DTFT 为H (e- jw ) =k=256;0
3、.8 - 0.44e- jw + 0.36e- j 2w + 0.02e- j 3w1+ 0.7e- jw - 0.45e- j 2w - 0.6e- j 3w用MATLAB 计算的程序如下:num=0.8 -0.44 0.36 0.02;den=1 0.7 -0.45 -0.6;w=0:pi/k:pi; h=freqz(num,den,w); subplot(2,2,1);精彩文档实用标准文案plot(w/pi,real(h);grid title(实部)xlabel(omega/pi);ylabel(幅度) subplot(2,2,2); plot(w/pi,imag(h);gridtit
4、le( 虚 部 ) xlabel(omega/pi);ylabel(Amplitude) subplot(2,2,3);plot(w/pi,abs(h);grid title(幅度谱)xlabel(omega/pi);ylabel(幅值) subplot(2,2,4); plot(w/pi,angle(h);gridtitle( 相 位 谱 ) xlabel(omega/pi);ylabel(弧度)精彩文档实用标准文案第章离散傅里叶变换及其快速算法例 2-1 对连续的单一频率周期信号 按采样频率=20 和N =16,观察其DFT 结果的幅度谱。采样,截取长度N 分别选N解 此时离散序列,即k=
5、8。用 MATLAB 计算并作图,函数 fft 用于计算离散傅里叶变换DFT,程序如下: k=8;n1=0:1:19;xa1=sin(2*pi*n1/k); subplot(2,2,1) plot(n1,xa1)xlabel(t/T);ylabel(x(n); xk1=fft(xa1);xk1=abs(xk1); subplot(2,2,2)stem(n1,xk1) xlabel(k);ylabel(X(k); n2=0:1:15;xa2=sin(2*pi*n2/k); subplot(2,2,3) plot(n2,xa2)xlabel(t/T);ylabel(x(n); xk2=fft(xa
6、2);xk2=abs(xk2);stem(n2,xk2) xlabel(k);ylabel(X(k);精彩文档subplot(2,2,4)实用标准文案计算结果示于图 2.1,(a)和(b)分别是 N=20 时的截取信号和 DFT 结果, 由于截取了两个半周期,频谱出现泄漏;(c) 和(d) 分别是N=16 时的截取信号和DFT 结果, 由于截取了两个整周期,得到单一谱线的频谱。上述频谱的误差主要是由于时域中对信号的非整周期截断产生的频谱泄漏。例 2-2 用 FFT 计算两个序列的互相关函数。解 用 MATLAB 计算程序如下: x=1 3 -1 1 2 3 3 1;y=2 1 -1 1 2 0
7、 -1 3;k=length(x); xk=fft(x,2*k);yk=fft(y,2*k); rm=real(ifft(conj(xk).*yk); rm=rm(k+2:2*k) rm(1:k);m=(-k+1):(k-1);精彩文档实用标准文案stem(m,rm)xlabel(m); ylabel(幅度);其计算结果如图 2.2 所示。例 2-3 计算两个序列的的互相关函数,其中x(n)=2 3 5 2 1 1 0 0 12 3 5 3 0 1 2 0 1 2y(n)=x(n-4)+e(n), e(n)为一随机噪声,在MATLAB 中可以用随机函数rand 产生解 用 MATLAB 计算程
8、序如下:x=2 3 5 2 1 -1 0 0 12 3 5 3 0 -1 -2 0 1 2;y=0 0 0 0 2 3 5 2 1 -1 0 0 12 3 5 3 0 -1 -2 0 1 2;k=length(y); e=rand(1,k)-0.5; y=y+e; xk=fft(x,2*k); yk=fft(y,2*k);rm=real(ifft(conj(xk).*yk); rm=rm(k+2:2*k) rm(1:k);m=(-k+1):(k-1);stem(m,rm)xlabel(m); ylabel(幅度);精彩文档 实用标准文案计算结果如图 2.3(a),我们看到最大值出现在 m=4
9、处,正好是 y(n)对于x(n)的延迟。2. 3(b)是 x(n)的自相关函数,他和y(n)的区别除时间位置外,形状也略不同,这是由于y(n)受到噪声的干扰。虹邓军立膘m立嚼虔1实度151;1邸11lt:铅劲0gg心 占 I |I心J.j_|扫笠-1叶.,.,”及立-10.1忑(a) (b)阳 2 3 延迟厗列的互相关函获(a)和自相关函 救(b)精彩文档实用标准文案第 3 章 无限长单位脉冲响应(IIR)滤波器的设计方法例 3-1 设采样周期T=250s(采样频率fs=4kHz),用脉冲响应不变法和双线性变换法设计一个三阶巴特沃兹滤波器,其3dB 边界频率为fc=1kHz。B,A=butte
10、r(3,2*pi*1000,s);num1,den1=impinvar(B,A,4000); h1,w=freqz(num1,den1); B,A=butter(3,2/0.00025,s);num2,den2=bilinear(B,A,4000); h2,w=freqz(num2,den2); f=w/pi*2000;plot(f,abs(h1),-.,f,abs(h2),-); grid;xlabel(频率/Hz ) ylabel(幅值/dB)程序中第一个butter 的边界频率 21000,为脉冲响应不变法原型低通滤波器的边界频率;第二个 butter 的边界频率 2/T=2/0.000
11、25,为双线性变换法原型低通滤波器的边界频率.图 3.1 给出了这两种设计方法所得到的频响,虚线为脉冲响应不变法的结果;实线为双线性变换法的结果。脉冲响应不变法由于混叠效应,使得过渡带和阻带的衰减特性变差, 并且不存在传输零点。同时,也看到双线性变换法,在z=-1 即=或 f=2000Hz 处有一个三阶传输零点,这个三阶零点正是模拟滤波器在=处的三阶传输零点通过映射形成的。例 3-2设计一数字高通滤波器,它的通带为 400500Hz,通带内容许有 0.5dB 的波精彩文档实用标准文案动,阻带内衰减在小于 317Hz 的频带内至少为 19dB,采样频率为 1,000Hz。wc=2*1000*ta
12、n(2*pi*400/(2*1000); wt=2*1000*tan(2*pi*317/(2*1000); N,wn=cheb1ord(wc,wt,0.5,19,s);B,A=cheby1(N,0.5,wn,high,s); num,den=bilinear(B,A,1000); h,w=freqz(num,den);f=w/pi*500; plot(f,20*log10(abs(h);axis(0,500,-80,10);grid; xlabel()ylabel(幅度/dB)图 3.2 给出了MATLAB 计算的结果,可以看到模拟滤波器在=处的三阶零点通过高通变换后出现在=0(z=1)处,这
13、正是高通滤波器所希望得到的。例 3-3 设计一巴特沃兹带通滤波器,其dB 边界频率分别为f =110kHz 和 f =90kHz,在阻带f321= 120kHz 处的最小衰减大于dB,采样频率f =400kHz。s精彩文档实用标准文案w1=2*400*tan(2*pi*90/(2*400); w2=2*400*tan(2*pi*110/(2*400); wr=2*400*tan(2*pi*120/(2*400); N,wn=buttord(w1 w2,0 wr,3,10,s); B,A=butter(N,wn,s); num,den=bilinear(B,A,400); h,w=freqz(n
14、um,den);f=w/pi*200; plot(f,20*log10(abs(h);axis(40,160,-30,10);grid;xlabel(频率/kHz) ylabel(幅度/dB)图 3.3 给出了MATLAB 计算的结果,可以看出数字滤波器将无穷远点的二阶零点映射为z= 1 的二阶零点,数字带通滤波器的极点数是模拟低通滤波器的极点数的两倍。例 3-4 一数字滤波器采样频率 fs= 1kHz,要求滤除 100Hz 的干扰,其dB 的边界频率为 95Hz 和 105Hz,原型归一化低通滤波器为w1=95/500; w2=105/500;B,A=butter(1,w1, w2,stop
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 Matlab 实现 实例
限制150内