1、图1.1给出了卷积结果的图形,求得的结果存放在数组c中为:-2 -4 1 3 1 5 1 -3。例1-2 用MATLAB计算差分方程 当输入序列为 时的输出结果 。 N=41; a=0.8 -0.44 0.36 0.22; b=1 0.7 -0.45 -0.6; x=1 zeros(1,N-1); k=0:N-1; y=filter(a,b,x); stem(k,y)ylabel() 图 1.2 给出了该差分方程的前41个样点的输出,即该系统的单位脉冲响应。例1-3 用MATLAB计算例1-2差分方程 所对应的系统函数的DTFT。解 例1-2差分方程所对应的系统函数为: 其DTFT为 用MAT
2、LAB计算的程序如下: k=256; 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(实部omega/pi subplot(2,2,2); plot(w/pi,imag(h);虚部Amplitude subplot(2,2,3); plot(w/pi,abs(h);幅度谱幅值 subplot(2,2,4); plot(w/pi,angle(h);相位谱 xlabel(弧度) 返回页首返回目录第2
3、章 离散傅里叶变换及其快速算法 例2-1 对连续的单一频率周期信号 按采样频率 采样,截取长度N分别选N =20和N =16,观察其DFT结果的幅度谱。解 此时离散序列 ,即k=8。用MATLAB计算并作图,函数fft用于计算离散傅里叶变换DFT,程序如下: k=8; n1=0:19; xa1=sin(2*pi*n1/k); subplot(2,2,1) plot(n1,xa1) t/Tx(n) xk1=fft(xa1);xk1=abs(xk1); subplot(2,2,2) stem(n1,xk1) kX(k) n2=0:15; xa2=sin(2*pi*n2/k); subplot(2,
4、2,3) plot(n2,xa2) xk2=fft(xa2);xk2=abs(xk2); subplot(2,2,4) stem(n2,xk2) 计算结果示于图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 -1 3; k=length
5、(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) m 其计算结果如图2.2所示。例2-3计算两个序列的的互相关函数,其中 x(n)=2 3 5 2 1 1 0 0 12 3 5 3 0 1 2 0 1 2 y(n)=x(n-4)+e(n), e(n)为一随机噪声,在MATLAB中可以用随机函数rand产生 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
6、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; stem(m,rm)计算结果如图2.3(a),我们看到最大值出现在m=4处,正好是y(n)对于x(n)的延迟。2. 3(b)是x(n)的自相关函数,他和y(n)的区别除时间位置外,形状也略不同,这是由于y(n)受到噪声的干扰。第3章 无限长单位脉冲响应(IIR)滤波器的设计方法 例3-1 设采样周期T=250s(采样频率fs =4kHz),用脉冲响应不变法和双线性变换法设计一个三阶巴特沃兹滤波器,其3dB边界频率为fc =1kHz。 B,A=but
7、ter(3,2*pi*1000,s num1,den1=impinvar(B,A,4000); h1,w=freqz(num1,den1); B,A=butter(3,2/0.00025, num2,den2=bilinear(B,A,4000); h2,w=freqz(num2,den2); f=w/pi*2000; plot(f,abs(h1),-.,f,abs(h2),- grid;频率/Hz ylabel(幅值/dB 程序中第一个butter的边界频率21000,为脉冲响应不变法原型低通滤波器的边界频率;第二个butter的边界频率2/T=2/0.00025,为双线性变换法原型低通滤波
8、器的边界频率.图3.1给出了这两种设计方法所得到的频响,虚线为脉冲响应不变法的结果;实线为双线性变换法的结果。脉冲响应不变法由于混叠效应,使得过渡带和阻带的衰减特性变差,并且不存在传输零点。同时,也看到双线性变换法,在z=-1即=或f=2000Hz处有一个三阶传输零点,这个三阶零点正是模拟滤波器在=处的三阶传输零点通过映射形成的。例3-2 设计一数字高通滤波器,它的通带为400500Hz,通带内容许有0.5dB的波动,阻带内衰减在小于317Hz的频带内至少为19dB,采样频率为1,000Hz。 wc=2*1000*tan(2*pi*400/(2*1000); wt=2*1000*tan(2*p
9、i*317/(2*1000); N,wn=cheb1ord(wc,wt,0.5,19, B,A=cheby1(N,0.5,wn,high, 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;幅度/dB图3.2给出了MATLAB计算的结果,可以看到模拟滤波器在=处的三阶零点通过高通变换后出现在=0(z=1)处,这正是高通滤波器所希望得到的。例3-3 设计一巴特沃兹带通滤波器,其dB边界频率分别为f2=110kHz和f1=90kHz
10、,在阻带f3 = 120kHz处的最小衰减大于dB,采样频率fs=400kHz。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, B,A=butter(N,wn, num,den=bilinear(B,A,400); f=w/pi*200; axis(40,160,-30,10);频率/kHz图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 h,w=freqz(B,A); axis(50,150,-30,10);频率/Hz
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1