数字信号处理实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“dsp实验报告一”。
JIANGSU
UNIVERSITY OF TECHNOLOGY
数字信号处理实验报告
学院名称: 电气信息工程学院
专 业:
班 级: 姓 名: 学 号: 指导老师: 张维玺(教授)
2013年12月20日
实验一 离散时间信号的产生
一、实验目的数字信号处理系统中的信号都是以离散时间形态存在的,所以对离散时间信号的研究是数字信号的基本所在。而要研究离散时间信号,首先需要产生出各种离散时间信号。使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大绘图功能,便于用户直观地处理输出结果。
通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,实现信号的卷积运算,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。
二、实验原理
离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用x(n)来表示,自变量必须是整数。常见的离散信号如下:(1)单位冲激序列δ(n)
如果δ(n)在时间轴上延迟了k个单位,得到δ(n-k),即长度为N的单位冲激序列δ(n)可以通过下面的MATLAB命令获得。
n=-(N-1):N-1 x=[zeros(1,N-1)1 zeros(1,N-1)]; stem(n,x)延迟K个采样点的长度为N的单位冲激序列δ(n-k)(k
n=0:N-1 y=[zeros(1,M)1 zeros(1,N-M-1)]; stem(n,y)
(2)单位阶跃序列u(n)
如果u(n)在时间轴上延迟了k个单位,得到u(n-k),即长度为N的单位阶跃序列u(n)可以通过下面的MATLAB命令获得。
n=-(N-1):N-1 x=[zeros(1,N-1)ones(1,N)]; stem(n,x)延迟的单位阶跃序列可以使用类似于单位冲激序列的方法获得。(3)矩形序列
矩形序列有一个重要的参数,就是序列的宽度N。矩形序列与u(n)之间的关系为矩形序列等= u(n)— u(n-N)。
因此,用MATLAB表示矩形序列可利用上面的单位阶跃序列组合而成。(4)正弦序列x(n)
这里,正弦序列的参数都是实数。与连续的正弦信号不同,正弦序列的自变量n必须为整数。可以证明,只有当2π/w为有理数时,正弦序列具有周期性。
长度为N的正弦序列x(n)可以通过下面的MATLAB命令获得。n=0:N-1 x=A*cos(2*pi*f*n/Fs+phase)(5)单边实指数序列x(n)
长度为N的实指数序列x(n)可以通过下面的MATLAB命令实现。n=0:N-1 x=a.^n stem(n,x)单边指数序列n的取值范围为n>=0。当|a|>1时,单边指数序列发散;当|a|0时,该序列均取正值;当a
(6)负指数序列x(n)
当a=0时,得到虚指数序列x(n)。
与连续负指数信号一样,我们将负指数序列实部和虚部的波形分开讨论,得到如下结论:
1)当a>0时,负指数序列x(n)的实部和虚部分别是按指数规律增长的正弦振荡序列;
2)当a
3)当a=0时,负指数序列x(n)即为虚指数序列,其实部和虚部分别是等幅的正弦振荡序列;
长度为N的实指数序列x(n)可以通过下面的MATLAB命令实现。n=0:N-1 x=exp((a.+j*w)*n)stem(n,real(x))或
stem(n,imag(x))
三、实验内容及分析
1n01、编制程序产生单位冲激序列n“并绘出其图及n”学号后两位0n0形。程序:(1)N=4;
n=-(N-1):N-1;
x=[zeros(1,N-1)1 zeros(1,N-1)];stem(n,x);
title('单位冲激序列');
grid on;
(2)N=6;
M=1;%学号01 n=-(N-1):N-1;
y=[zeros(1,N-M+1)1 zeros(1,N-M-1)];stem(n,y);
title('单位冲激序列');grid on;
分析:在上图的基础上向右平移了1个单位。
1n02、编制程序产生单位阶跃序列un、un“学号后两位”及
0n0unun“学号后两位”,并绘出其图形。程序: 4
(1)N=5;
n=-(N-1):N-1;
x=[zeros(1,N-1)ones(1,N)];stem(n,x);
title('单位阶跃序列');grid on;
(2)N=6;
M=1;%学号01 n=-(N-1):N-1;
x=[zeros(1,N-M+1)ones(1,N-M)];stem(n,x);
title('单位阶跃序列');grid on;
分析:在上图的基础上平移了1个单位.(3)N=6;
M=1;%学号01 n=-(N-1):N-1;
x=[zeros(1,N-1)ones(1,N)];y=[zeros(1,N-M+1)ones(1,N-M)];z=x-y;stem(n,z);
title('单位阶跃序列');grid on;
2
3、编制程序产生正弦序列xncos2n、xncosn及
学号后两位xnsin2n并绘出其图形。
程序:(1)N=5;
A=1;
w=2*pi;phi=0;n=0:0.05:N-1;x=A*cos(w*n+phi);stem(n,x);title('余弦信号');grid on;
分析:该序列具有周期性,且输出为余弦信号.(2)N=5;
A=1;
w=2*pi/1;%学号01 phi=0;n=0:0.05:N-1;x=A*cos(w*n+phi);stem(n,x);title('余弦信号');grid on;
;
分析:该序列具有周期性,且输出为余弦信号.(3)N=5;
A=1;
w=2*pi;phi=0;
n=0:0.05:N-1;x=A*sin(w*n+phi);stem(n,x);title('正弦信号');grid on;
分析:该序列具有周期性,且输出为正弦信号.4、编制程序产生复正弦序列xne(2j学号后两位)n,并绘出其图形。N=3;
n=0:0.2:N-1;
w=1;%学号01 x=exp((2+j*w)*n);subplot(2,1,1)
stem(n,real(x)),title('实部');grid on;subplot(2,1,2)
stem(n,imag(x)),title('虚部');grid on;
5、编制程序产生指数序列xnan,并绘出其图形。其中a=学号后两位、a=1/“学号后两位”。
(1)N=10;
n=0:N-1;
a=1;%学号01 x=a.^n;stem(n,x);title('指数序列');grid on;
(2)N=10;
n=0:N-1;
a=1;%学号01 x=a.^(-n);stem(n,x);title('指数序列');grid on;
实验三 离散时间信号的频域分析
一、实验目的信号的频域分析是信号处理中一种有效的工具。在离散信号的频域分析中,通常将信号表示成单位采样序列的线性组合,而在频域中,将信号表示成复变量或的线性组合。通过这样的表示,可以将时域的离散序列映射到频域以便于进一步的处理。
在本实验中,将学习利用MATLAB计算离散时间信号的DTFT和DFT,并加深对其相互关系的理解。
二、实验原理
(1)DTFT和DFT的定义及其相互关系。
(2)使用到的MATLAB命令有基于DTFT离散时间信号分析函数以及求解序列的DFT函数。
三、实验内容及分析
(1)编程计算并画出下面DTFT的实部、虚部、幅度和相位谱。
X(e)jw0.05180.1553e11.2828ex(n)cosjwjw0.1553ej2w1.0388ej2w0.0518ej3w0.3418ej3w
(2)计算32点序列
5n16,0≦n≦31的32点和64点DFT,分别绘出幅度谱图形,并绘出该序列的DTFT图形。
3-1
clear;
x=[0.0518,-0.1553,0.1553,0.0518];y=[1,1.2828,1.0388,0.3418];w=[0:500]*pi/500 H=freqz(x,y,w);
magX=abs(H);angX=angle(H);realX=real(H);imagX=imag(H);subplot(221);plot(w/pi,magX);grid;
xlabel('frequency in pi unit');ylabel('magnitude');title('幅度 part');axis([0 0.9 0 1.1]);
subplot(223);plot(w/pi,angX);grid;
xlabel('frequency in pi unit');ylabel('radians');title('相位 part');axis([0 1-3.2 3.2]);
subplot(222);plot(w/pi,realX);grid;
xlabel('frequency in pi unit');ylabel('real part');title('实部 part');axis([0 1-1 1]);
subplot(224);plot(w/pi,imagX);grid;
xlabel('frequency in pi unit');ylabel('imaginary');title('虚部 part');axis([0 1-1 1.1]);
3-2
N=32;n=0:N-1;
xn=cos(5*pi*n/16);k=0:1:N-1;Xk=fft(xn,N);subplot(2,1,1);stem(n,xn);subplot(2,1,2);stem(k,abs(Xk));title('32点');figure N=64;n=0:N-1;
xn=cos(5*pi*n/16);k=0:1:N-1;Xk=fft(xn,N);subplot(2,1,1);stem(n,xn);subplot(2,1,2);stem(k,abs(Xk));title('64点');
(1)
(2)
实验四 离散时间LTI系统的Z域分析
一、实验目的本实验通过使用MATLAB函数对离散时间系统的一些特性进行仿真分析,以加深对离散时间系统的零极点、稳定性,频率响应等概念的理解。学会运用MATLAB分析离散时间系统的系统函数的零极点;学会运用MATLAB分析系统函数的零极点分布与其时域特性的关系;学会运用MATLAB进行离散时间系统的频率特性分析。
二、实验原理
离散时间系统的系统函数定义为系统零状态响应的Z变化与激励的Z变化之比。
在MATLAB中系统函数的零极点可通过函数roots得到,也可借助函数tf2zp得到,tf2zp的语句格式为
[Z,P,K]=tf2zp(B,A)其中,B与A分别表示H(z)的分子与分母多项式的系数向量。它的作用是将H(z)的有理分式表示式转换为零极点增益形式。
若要获得系统函数H(z)的零极点分布图,可直接应用zplane函数,其语句格式为
Zplane(B,A)
其中,B与A分别表示H(z)的分子和分母多项式的系数向量。它的作用是在z平面上画出单位圆、零点与极点。
离散系统中z变化建立了时域函数h(n)与z域函数H(z)之间的对应关系。因此,z变化的函数H(z)从形式可以反映h(n)的部分内在性质。可根据系统的传递函数H(z)求单位冲激响应h(n)的函数impz、filter等。
利用系统的频率响应,可以分析系统对各种频率成分的响应特性,并推出系统的特性(高通、低通、带通、带阻等)。
MATLAB提供了求离散时间系统频响特性的函数freqz,调用freqz的格式主要有两种。一种形式为
[H,w]= reqz(B,A,N)其中,B与A分别表示H(z)分子和分母多项式的系数向量;N为正整数,默认值为512;返回值w包含[0,π]范围内的N个频率等分点;返回值H则是离散时间系统频率响应在0~π范围内N个频率处的值。另一种形式为
[H,w]= freqz(B,A,N,‘whole’)
与第一种方式不同之处在于角频率的范围由[0,π]扩展到[0,2π]。
三、实验内容与结果分析
已知LTI离散时间系统,要求由键盘实现系统参数输入,并绘出幅频和相频响应曲线和零极点分布图,进而分析系统的滤波特性和稳定性。
(一)程序
b=[0.0528,0.797,0.1295,0.1295,0.797,0.0528];
a=[1,-1.8107,2.4947,-1.8801,0.9537,-0.2336];w=[0:20:500]*pi/500;
x1=0.0528+0.797*exp(-1*j*w)+0.1295*exp(-2*j*w)+0.1295*exp(-3*j*w)+0.797*exp(-4*j*w)+0.0528*exp(-5*j*w);
x2=1-1.8107*exp(-1*j*w)+2.4947*exp(-2*j*w)+1.8801*exp(-3*j*w)+0.9537*exp(-4*j*w)+0.2336*exp(-5*j*w);x22=x2+(x2==0)*eps;x=x1./x22;magx=abs(x);
angx=angle(x).*180/pi;
subplot(2,2,3);zplane(b,a);title('零极点图');subplot(2,2,2);stem(w/pi,magx);title('幅度部分');ylabel('振幅');subplot(2,2,4);stem(w/pi,angx);
xlabel('以pi为单位的频率');title('相位部分');ylabel('相位');
(二)波形图
图4-1 幅频、相频响应曲线、零极点分布图
实验六 IIR数字滤波器的设计
一、实验目的从理论上讲,任何的线性是不变(LTI)离散时间系统都可以看做一个数字滤波器,因此设计数字滤波器实际就是设计离散时间系统。数字滤波器你包括IIR(无限冲激响应)和FIR(有限冲激响应)型,在设计时通常采用不同的方法。
本实验通过使用MATLAB函数对数字滤波器进行设计和和实现,要求掌握IIR数字巴特沃斯滤波器、数字切比雪夫滤波器的设计原理、设计方法和设计步骤;能根据给定的滤波器指标进行滤波器设计;同时也加深学生对数字滤波器的常用指标和设计过程的理解。
二、实验原理
在IIR滤波器的设计中,常用的方法是:先根据设计要求寻找一个合适的模拟原型滤波器,然后根据一定的准则将此模拟原型滤波器转换为数字滤波器。
IIR滤波器的阶数就等于所选的模拟原型滤波器的阶数,所以其阶数确定主要是在模拟原型滤波器中进行的。
IIR数字滤波器的设计方法如下:(1)冲激响应不变法。(2)双线性变化法。
一般来说,在要求时域冲激响应能模仿模拟滤波器的场合,一般使用冲激响应不变法。冲激响应不变法一个重要特点是频率坐标的变化是线性的,因此如果模拟滤波器的频率响应带限于折叠频率的话,则通过变换后滤波器的频率响应可不失真地反映原响应与频率的关系。
与冲激响应不变法比较,双线性变化的主要优点是靠频率的非线性关系得到s平面与z平面的单值一一对应关系,整个值对应于单位圆一周。所以从模拟传递函数可直接通过代数置换得到数字滤波器的传递函数。
MATLAB提供了一组标准的数字滤波器设计函数,大大简化了滤波器的设计工程。
(1)butter。
(2)cheby1、cheby2。
三、实验内容及分析
利用MATLAB编程方法或利用MATLAB中fdatool工具设计不同功能的IIR数字滤波器。
1、基于chebyshev I型模拟滤波器原型使用冲激不变转换方法设计数字滤波器,要求参数为通带截止频率p0.4;通带最大衰减Ap1dB;阻带截止频率s0.4;阻带最小衰减As35dB。
程序:
wp=0.2*pi;
%通带边界频率
ws=0.4*pi;
%阻带截止频率 rp=1;
%通带最大衰减 rs=35;
%阻带最小衰减
Fs=1000;
%¼ÙÉè³éÑùÂö³å1000hz
[N,Wn]=cheb1ord(wp,ws,rp,rs,'s');
[Z,P,K]=cheby1(N,rp,Wn,'s');[H,W]=zp2tf(Z,P,K);
figure(1);freqs(H,W);[P,Q]=freqs(H,W);figure(2);plot(Q*Fs/(2*pi),abs(P));grid on;
xlabel('频率/Hz');ylabel('幅度');
2、基于Butterworth型模拟滤波器原型使用双线性变换方法设计数字滤波器的,要求参数为截止频率p0.4;通带最大衰减Ap1dB;阻带截止频率s0.25;阻带最小衰减AS40dB。程序: wp=0.4*pi;ws=0.25*pi;rp=1;rs=40;fs=500;ts=1/fs;wp1=wp*ts;ws1=ws*ts;
wp2=2*fs*tan(wp1/2);ws2=2*fs*tan(ws1/2);
[N,Wn]=buttord(wp2,ws2,rp,rs,'s');[Z,P,K]=buttap(N);[Bap,Aap]=zp2tf(Z,P,K);[b,a]=lp2lp(Bap,Aap,Wn);[bz,az]=bilinear(b,a,fs);[H,W]=freqz(bz,az);subplot(2,1,1);plot(W/pi,abs(H));grid on;xlabel('频率')ylabel('幅度')subplot(2,1,2);
plot(W/pi,20*log10(abs(H)));grid on;xlabel('频率');ylabel('幅度(dB)');
实验七 FIR数字滤波器的设计
一、实验目的掌握用窗函数设计FIR数字滤波的原理及其设计步骤;熟悉线性相位数字滤波器的特性。学习编写数字滤波器的设计程序的方法,并能进行正确编程;根据给定的滤波器指标,给出设计步骤。
二、实验原理
如果系统的冲激响应h(n)为已知,则系统的输入输出关系为
y(n)=x(n)*h(n)
对于低通滤波器,只要设计出低通滤波器的冲激响应函数,就可以由式得到系统的输出了。
但是将h(n)作为滤波器的脉冲响应有两个问题:一是它是无限长的;二是它是非因果的。对此,采取两项措施:一是将h(n)截短;二是将其右移。
设计时,要根据阻带的最小衰减和过渡带宽度来选择恰当的窗函数类型和窗口长度N。常用的窗函数有矩形窗、海明窗和布莱克曼窗等。
窗函数设计FIR滤波器步骤如下:
(1)给定理想频率响应的幅频特性和相频特性;
(2)求理想单位脉冲响应,在实际计算中,可对理想频率响应采样。(3)根据过渡带宽度和阻带最小衰减,确定窗函数类型和窗口长度N;(4)求FIR滤波器单位脉冲响应;
(5)分析幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述设计过程,以得到满意的结果。
三、实验内容及分析
1、分别用海明窗和布莱克曼窗设计一个48阶的FIR带通滤波器,通带为Wn0.450.55。程序1:海明窗设计
N=48;
Window=hamming(N+1);w1=0.45;w2=0.55;ws=[w1,w2];
b=fir1(N,ws/pi,Window);freqz(b,1,512);title('海明窗');grid on;
程序2:莱克曼窗设计
N=48;
Window=blackman(N+1);w1=0.45;w2=0.55;ws=[w1,w2];
b=fir1(N,ws/pi,Window);freqz(b,1,512);title('布莱克曼窗');grid on;
2、用矩形窗设计一个线性相位高通滤波器。其中Hejwej00.3
00.3程序: N=9;
alpha=(N-1)/2;Wc=0.7*pi;n=(0:8);i=n-alpha;i=i+(i==0)*eps;
h=(-1).^n.*sin((i).*Wc)./((i).*pi);%矩形窗函数设计的系统脉冲响应 w=(0:1:500)*2*pi/500;
H=h*exp(-j*n'*w);%矩形窗函数设计的频响 magH=abs(H);% 矩形窗函数设计的振幅 subplot(211);stem(n,h);
axis([0,8,-0.4,0.4]);title('矩形窗设计h(n)');line([0,10],[0,0]);xlabel('n');ylabel('h');subplot(212);plot(w/pi,magH);
xlabel('以pi为单位的频率');ylabel('H振幅');axis([0,2,0,1.7]);title('矩形窗设计振幅谱');
实验心得体会:
这次实验使我进一步加深了对MATLAB软件的使用。从上次的信号系统实验的初步使用到这一次的深入了解,有了更深刻的认识。对这种语言环境也有了新的了解。
在实验的过程中,我对数字滤波器的整个过程有了很好的理解和掌握。IIR数字滤波器的设计让我知道了巴特沃思滤波器和切比雪夫滤波器的频率特性,还有双线性变换及脉冲响应不变法设计的滤波器的频率特性。做这两个实验的时候程序有点困难,但经过细心的改写图形最终出来了。FIR数字滤波器的设计出来的是两种窗的图形,通过两种窗的比较,我了解了他们各自的特点,幅频和相频特性。
最后,感谢张老师对我的谆谆教导!
数字信号处理 实验报告实验一序列的傅立叶变换一、实验目的1.进一步加深理解DFS,DFT算法的原理; 2.研究补零问题; 3.快速傅立叶变换(FFT)的应用。二、实验步骤1.复习DFS和DFT......
南京邮电大学实 验 报 告实验名称_____熟悉MATLAB环境 ___ 快速傅里叶变换及其应用 ____IIR数字滤波器的设计_ FIR数字滤波器的设计课程名称 数字信号处理A班级学号_____......
怀化学院数学系实验报告实验项目名称:IIR数字滤波器的设计(1)指 导老 师: 欧卫华学姓实验项目制定人:实验项目审批人:年月日一、实验目的掌脉冲相应不变法设计IIR-Butterworth数......
实验一 自适应滤波器一、实验目的1、掌握功率谱估计方法2、会用matlab对功率谱进行仿真二、实验原理功率谱估计方法有很多种,一般分成两大类,一类是经典谱估计;另一类是现代谱......
数字信号处理心得体会某些事情让我们心里有了一些心得后,有这样的时机,要好好记录下来,从而不断地丰富我们的思想。那么写心得体会要注意的内容有什么呢?下面是小编为大家整理的......