当前位置:文档之家› 2013数字信号处理实验讲义 - 实验二

2013数字信号处理实验讲义 - 实验二

2013数字信号处理实验讲义 - 实验二
2013数字信号处理实验讲义 - 实验二

实验二 离散傅立叶变换及谱分析

一、 实验目的

1.掌握离散傅里叶变换的计算机实现方法。

2.检验序列离散傅里叶变换的性质。

3.掌握计算序列的循环卷积的方法。

4.学习用DFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差,以便在实际中正确应用DFT 。

二、 实验内容

1.实现序列的离散傅里叶变换并对结果进行分析。(自己选择序列,要求包括复序列,实序列,实偶序列,实奇序列,虚奇序列)

2.计算序列循环卷积。

3.计算实序列离散傅里叶变换并检验DFT 性质。

4.实现补零序列的离散傅里叶变换。

6.实现高密度谱和高分辨率谱,并比较二者的不同。

三、 实验报告要求

见各程序要求

%以下为4个扩展函数

% (1)离散傅立叶变换 ∑-==

1

0)()(N k nk N W n x k X 采用矩阵相乘的方法

function [Xk]=dft(xn,N)

n=[0:1:N-1];

k=[0:1:N-1];

WN=exp(-j*2*pi/N);

nk=n'*k;

WNnk=WN.^(nk);

Xk=xn*WNnk;

%(2)逆离散傅立叶变换 ∑-=-=10)(1)(N k nk N W k X N

n x

function [xn]=idft(Xk,N)

n=[0:1:N-1];

k=[0:1:N-1];

WN=exp(-j*2*pi/N);

nk=n'*k;

WNnk=WN.^(-nk);

xn=(Xk*WNnk)/N;

% (3) 实序列的分解 % 实序列可分解为共扼对称分量 ]x((-n))[x(n)*(1/2)xec N +=

% 和共扼反对称分量 ]x((-n))-[x(n)*(1/2)xoc N =

function [xec,xoc]=circevod(x)

N=length(x);

n=0:(N-1);

xec=0.5*(x+x(mod(-n,N)+1)); %根据上面的公式计算,mod 函数为取余

xoc=0.5*(x-x(mod(-n,N)+1));

% (4) 序列的循环移位 N m n x n y ))(()(-=

function y=cirshftt(x,m,N)

if length(x)>N

error('N mustbe >= the length of x') %要求移位周期大于信号长度

end

x=[x zeros(1,N-length(x))];

n=[0:1:N-1];

n=mod(n-m,N);

y=x(n+1);

%例1 本例检验实序列的性质DFT[xec(n)]=Re[X(k)] DFT[xoc(n)]=Im[X(k)] % 设 x(n)=10*(0.8).^n 0<=n<=10 将x(n)分解为共扼对称及共扼反对称部分%实验报告要求:(1)将实验结果画出(2)实验结果说明什么

n=0:10;

x=10*(0.8).^n;

[xec,xoc]=circevod(x);

subplot(2,1,1);stem(n,xec); %画出序列的共扼对称分量

title('Circular -even component')

xlabel('n');ylabel('xec(n)');axis([-0.5,10.5,-1,11])

subplot(2,1,2);stem(n,xoc); %画出序列的共扼反对称分量

title('Circular -odd component')

xlabel('n');ylabel('xoc(n)');axis([-0.5,10.5,-4,4])

figure(2)

X=dft(x,11); %求出序列的DFT

Xec=dft(xec,11); %求序列的共扼对称分量的DFT

Xoc=dft(xoc,11); %求序列的共扼反对称分量的DFT

subplot(2,2,1);stem(n,real(X));axis([-0.5,10.5,-5,50])

title('Real{DFT[x(n)]}');xlabel('k'); %画出序列DFT的实部

subplot(2,2,2);stem(n,imag(X));axis([-0.5,10.5,-20,20])

title('Imag{DFT[x(n)]}');xlabel('k'); %画出序列DFT的虚部

subplot(2,2,3);stem(n,Xec);axis([-0.5,10.5,-5,50])

title('DFT[xec(n)]');xlabel('k');

subplot(2,2,4);stem(n,imag(Xoc));axis([-0.5,10.5,-20,20])

title('DFT[xoc(n)]');xlabel('k');

% 例2 本例为计算序列的循环卷积程序

% 运行之前应在命令窗口输入 x1,x2,N 的值

%实验报告要求:自己选择2个序列进行计算,将实验结果写出

if length(x1)>N

error('N must be >= the length of x1')

end

if length(x2)>N

error('N must be >= the length of x2')

end

x1=[x1 zeros(1,N-length(x1))]; %将x1,x2补0成为N长序列

x2=[x2 zeros(1,N-length(x2))];

m=[0:1:N-1];

x2=x2(mod(-m,N)+1); %该语句的功能是将序列翻褶,延拓,取主值序列

H=zeros(N,N);

for n=1:1:N %该for循环的功能是得到x2序列的循环移位矩阵

H(n,:)=cirshftt(x2,n-1,N); %和我们手工计算循环卷积得到的表是一致的

end

y=x1*H' %用矩阵相乘的方法得到结果

%例4 本例说明补零序列的离散傅立叶变换

%序列)()(5n R n x =,已给出序列的傅立叶变换程序和将原序列补零到10长序列的DFT

%实验报告要求: (1)编写将序列补零到20长后计算DFT 的程序

(2)将实验结果画出

(3)实验结果说明什么(即序列补零后进行DFT,频谱有何变化)

n=0:4;

x=[ones(1,5)]; %产生矩形序列

k=0:999;w=(pi/500)*k;

X=x*(exp(-j*pi/500)).^(n'*k); %计算离散时间傅立叶变换

Xe=abs(X); %取模

subplot(3,2,1);stem(n,x);ylabel('x(n)'); %画出矩形序列

subplot(3,2,2);plot(w/pi,Xe);ylabel('|X(ejw)|'); %画出离散时间傅立叶变换

N=10;x=[ones(1,5),zeros(1,N-5)]; %将原序列补零为10长序列

n=0:1:N-1;

X=dft(x,N); %进行DFT

magX=abs(X);

k=(0:length(magX)'-1)*N/length(magX);

subplot(3,2,3);stem(n,x);ylabel('x(n)'); %画出补零序列

subplot(3,2,4);stem(k,magX); %画出DFT 结果

axis([0,10,0,5]);ylabel('|X(k)|');

%例5 本题说明高密度谱和高分辨率谱之间的区别,高密度谱是信号补零后得到的,虽然谱线相当 %密但是因为信号有效长度不变,所以其分辨率也不变,因此还是很难看出信号的频谱成分。高分辨 %率谱是将信号有效长度加长,因此分辨率提高,可以看出信号的成分。

%有一个序列为)5.0cos()35.0cos(2)(n n n x ππ+= (该序列周期计算可得40)

%(1)下面给出有10个有效采样点序列的DFT 程序

%(2)请写出将第一问中的10长序列补零到40长,计算其DFT

%(3)采样n=0:39,计算有40个有效采样点的序列的DFT

%实验报告要求: (1)请编写将有10个有效采样点的序列补零到40长后计算DFT 的程序

(2) 请编写计算有40个有效采样点的序列的DFT 的程序

(3) 将实验结果画出并分析实验结果说明什么

M=10;

n=0:M-1;

x=2*cos(0.35*pi*n)+cos(0.5*pi*n);

subplot(2,1,1);stem(n,x);title('没有足够采样点的信号');

Y=dft(x,M);

k1=0:M-1;w1=2*pi/M*k1;

subplot(2,1,2);stem(w1/pi,abs(Y));title('信号的频谱');

数字信号处理实验一

实验一 离散时间信号分析 班级 信息131班 学号 201312030103 姓名 陈娇 日期 一、实验目的 掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为+∞<<∞-n 的整数,n 取其它值)(n x 没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t x a 进行等间隔采样,采样间隔为T ,得到)}({nT x a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)) (n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 ∑∞ -∞==-= m n h n x m n h m x n y )(*)()()()( 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。

(2)移位:将)(m h -移位n ,得)(m n h -。当n 为正数时,右移n 位;当n 为负数时,左移n 位。 (3)相乘:将)(m n h -和)(m x 的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。 三、主要实验仪器及材料 微型计算机、Matlab6.5 教学版、TC 编程环境。 四、实验内容 (1)用Matlab 或C 语言编制两个序列的相加、相乘、移位、反褶、卷积等的程序; (2)画出两个序列运算以后的图形; (3)对结果进行分析; (4)完成实验报告。 五、实验结果 六、实验总结

数字信号处理实验一

一、实验目的 1. 通过本次实验回忆并熟悉MATLAB这个软件。 2. 通过本次实验学会如何利用MATLAB进行序列的简单运算。 3. 通过本次实验深刻理解理论课上的数字信号处理的一个常见方法——对时刻n的样本附近的一些样本求平均,产生所需的输出信号。 3. 通过振幅调制信号的产生来理解载波信号与调制信号之间的关系。 二、实验内容 1. 编写程序在MATLAB中实现从被加性噪声污染的信号中移除噪声的算法,本次试验采用三点滑动平均算法,可直接输入程序P1.5。 2. 通过运行程序得出的结果回答习题Q1.31-Q1.33的问题,加深对算法思想的理解。 3. 编写程序在MATLAB中实现振幅调制信号产生的算法,可直接输入程序P1.6。 4. 通过运行程序得出的结果回答习题Q1.34-Q1.35的问题,加深对算法思想的理解。 三、主要算法与程序 1. 三点滑动平均算法的核心程序: %程序P1.5 %通过平均的信号平滑 clf; R=51; d=0.8*(rand(R,1)-0.5);%产生随噪声 m=0:R-1; s=2*m.*(0.9.^m);%产生为污染的信号 x=s+d';%产生被噪音污染的信号 subplot(2,1,1); plot(m,d','r-',m,s,'g--',m,x,'b-.');

xlabel('时间序号n');ylabel('振幅'); legend('d[n]','s[n]','x[n]'); x1=[0 0 x];x2=[0 x 0];x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2); plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n]','s[n]'); xlabel('时间序号n');ylabel('振幅'); 2. 振幅调制信号的产生核心程序:(由于要几个结果,因此利用subplot函数画图) %程序P1.6 %振幅调制信号的产生 n=0:100; m=0.1;fH=0.1;fL=0.01; m1=0.3;fH1=0.3;fL1=0.03; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; xH1=sin(2*pi*fH1*n); xL1=sin(2*pi*fL1*n); y1=(1+m1*xL).*xH; y2=(1+m*xL).*xH1; y3=(1+m*xL1).*xH; subplot(2,2,1); stem(n,y); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.1;fH=0.1;fL=0.01;'); subplot(2,2,2); stem(n,y1); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.1;fL=0.01;'); subplot(2,2,3); stem(n,y2); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.3;fL=0.01;'); subplot(2,2,4); stem(n,y3); grid;

数字信号处理实验二

实验报告(本科) 学号 2015141443002 姓名柏冲 专业通信工程 日期 2017/12/4 实验题目时域采样和频域采样 一、实验目的

时域采样理论与频域采样理论是数字信号处理中重要的理论。要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使得采样后的信号不丢失信息;要求掌握频率采样会引起时域周期化的概念,以及频域采样定理及其对频域采样点数选择的指导作用。 二、实验过程 附:源程序 (1)时域采样 Tp=64/1000; %观察时间Tp=64毫秒 %产生M长采样序列x(n) Fs=1000; T=1/Fs; M=Tp*Fs; n=0:M-1; A=444.128; a=pi*50*2^0.5; omega=pi*50*2^0.5; xnt=A*exp(-a*n*T).*sin(omega*n*T); Xk=T*fft(xnt,M); %M点FFT[(xnt)] subplot(3,2,1); stem(xnt,'.'); %调用编绘图函数stem绘制序列图 box on;title('(a) Fs=1000Hz'); k=0:M-1;fk=k/Tp; subplot(3,2,2);stem(fk,abs(Xk),'.');title('(a) T*FT[xa(nT)],Fs=1000Hz'); xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))]); % Fs=300Hz和 Fs=200Hz的程序与上面Fs=1000Hz完全相同。 Tp=64/1000; %观察时间Tp=64毫秒 %产生M长采样序列x(n) Fs=300; T=1/Fs; M=Tp*Fs; n=0:M-1; A=444.128; a=pi*50*2^0.5; omega=pi*50*2^0.5; xnt=A*exp(-a*n*T).*sin(omega*n*T); M1=fix(M); Xk=T*fft(xnt,M1); %M点FFT[(xnt)] subplot(3,2,3); stem(xnt,'.'); %调用自编绘图函数stem绘制序列图 box on;title('(b) Fs=300Hz'); k=0:M-1;fk=k/Tp; subplot(3,2,4);stem(fk,abs(Xk),'.');title('(b) T*FT[xa(nT)],Fs=300Hz'); xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))]); Tp=64/1000; %观察时间Tp=64毫秒 %产生M长采样序列x(n) Fs=200; T=1/Fs; M=Tp*Fs; n=0:M-1; A=444.128; a=pi*50*2^0.5; omega=pi*50*2^0.5; xnt=A*exp(-a*n*T).*sin(omega*n*T); M2=fix(M);

数字信号处理实验

实验一 离散傅里叶变换(DFT )对确定信号进行谱分析 一.实验目的 1.加深对DFT 算法原理和基本性质的理解。 2.熟悉DFT 算法和原理的编程方法。 3.学习用DFT 对信号进行谱分析的方法,了解可能出现的误差及其原因,以便在实际中正确利用。 二.实验原理 一个连续信号)(t x a 的频谱可以用其傅里叶变换表示,即 dt e t x j X t j a a Ω-∞ ∞ -? = Ω)()( 若对)(t x a 进行理想采样可得采样序列 )(|)()(nT x t x n x a nT t a === 对)(n x 进行DTFT ,可得其频谱为: ∑∞ -∞ =-= n n j j e n x e X ωω )()( 其中数字频率ω与模拟频率Ω的关系为: s f T Ω = Ω=ω )(n x 的DFT 为∑∞ -∞ =-= n nk N j e n x k X π 2)()( 若)(t x a 是限带信号,且在满足采样定理的条件下,)(ω j e X 是)(Ωj X a 的周期延拓, )(k X 是)(ωj e X 在单位圆上的等间隔采样值,即k N j e X k X πωω2| )()(= =。 为在计算机上分析计算方便,常用)(k X 来近似)(ω j e X ,这样对于长度为N 的有限 长序列(无限长序列也可用有限长序列来逼近),便可通过DFT 求其离散频谱。 三.实验内容 1.用DFT 对下列序列进行谱分析。 (1))()04.0sin(3)(100n R n n x π=

1 (2)]0,0,0,0,0,0,0,0,1,1,1,1[)(=n x 2.为了说明高密度频谱和高分辨率频谱之间的区别,考察序列 )52.0cos()48.0cos()(n n n x ππ+= (1)当0≤n ≤10时,确定并画出x(n)的离散傅里叶变换。 (2)当0≤n ≤100时,确定并画出x(n)的离散傅里叶变换。 四.实验结果 1. (1) (2)

数字信号处理实验讲义

实验一 序列的产生及绘图 一、实验目的 1.熟悉信号处理软件MATLAB 的使用。 2.离散信号的基本运算实现。 3.了解基本序列及复杂序列的产生方法。 4.运用卷积方法观察系统的时域特性。 5.掌握线性时不变系统的频域表示方法。 二、实验内容 1.熟悉扩展函数 2.运行例题程序 3.编程实现下列内容 (1)利用扩展函数产生序列并画图 (a) )4()2(*2)(--+=n n n x δδ -5<=n<=5 (b) )04.0cos()(n n x π=和)(2.0)04.0cos()(n w n n y +=π 0<=n<=50 w(n)为白噪声 函数为 w=randn(size(n)) (2)设线性移不变系统的抽样响应为 )()9.0()(n u n h n = 输入序列为 )10()()(--=n u n u n x 求系统输出 y(n)并画图 提示: 输出为输入和抽样响应的卷积 三、实验报告要求 1.记录例题程序的实验结果、图形。 2.写出自己编写的程序并记录结果、图形。 注:以下程序中所有以 % 开头的行均为注释, 所有汉字均为注释,%后的内容不用写入程序 %如果要了解哪个函数的应用方法请用help 命令 如help zreos %本软件中 * 表示乘法, 卷积用函数 conv 或修改后的卷积 conv_m %以下是7个扩展函数 %扩展函数1~7的用法和该软件自带函数用法一致,即在调用时要将实参代入 %例:应用扩展函数3需要输入x1(n),x2(n)的值。 %在Command Window (命令窗口)中输入 % n1=1:5; % n2=2:6; % x1=[1 3 5 7 9]; % x2=[2 4 6 8 10]; % [y,n]=sigadd(x1,n1,x2,n2) 即可得两序列相加的结果 %7个扩展函数要分别存到不同的文件中,并且文件名要和该扩展函数的函数名一致 %如产生单位取样序列的函数所存文件的文件名必须为 impseq %1.单位取样序列 x(n)=delta(n-n0) 要求n1<=n0<=n2 function[x,n]=impseq(n0,n1,n2) n=[n1:n2]; x=[(n-n0)==0]; %2.单位阶跃序列 x(n)=u(n-n0) 要求n1<=n0<=n2 function[x,n]=stepseq(n0,n1,n2) n=[n1:n2]; x=[(n-n0)>=0]; %3.信号加 y(n)=x1(n)+x2(n) %find 函数:找出非零元素的索引号 %x1:第一个序列的值,n1:序列x1的索引号 %x2:第二个序列的值,n2:序列x2的索引号 function[y,n]=sigadd(x1,n1,x2,n2) n=min(min(n1),min(n2)):max(max(n1),max(n2));

数字信号处理实验答案完整版

数字信号处理实验答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

实验一熟悉Matlab环境 一、实验目的 1.熟悉MATLAB的主要操作命令。 2.学会简单的矩阵输入和数据读写。 3.掌握简单的绘图命令。 4.用MATLAB编程并学会创建函数。 5.观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。 clear all; a=[1 2 3 4]; b=[3 4 5 6]; c=a+b; d=a-b; e=a.*b; f=a./b; g=a.^b; n=1:4; subplot(4,2,1);stem(n,a); xlabel('n');xlim([0 5]);ylabel('A'); subplot(4,2,2);stem(n,b); xlabel('n');xlim([0 5]);ylabel('B'); subplot(4,2,3);stem(n,c); xlabel('n');xlim([0 5]);ylabel('C'); subplot(4,2,4);stem(n,d); xlabel('n');xlim([0 5]);ylabel('D'); subplot(4,2,5);stem(n,e); xlabel('n');xlim([0 5]);ylabel('E'); subplot(4,2,6);stem(n,f); xlabel('n');xlim([0 5]);ylabel('F'); subplot(4,2,7);stem(n,g); xlabel('n');xlim([0 5]);ylabel('G'); (2)用MATLAB实现下列序列: a) x(n)= 0≤n≤15 b) x(n)=e+3j)n 0≤n≤15 c) x(n)=3cosπn+π)+2sinπn+π) 0≤n≤15 d) 将c)中的x(n)扩展为以16为周期的函数x(n)=x(n+16),绘出四个周期。

数字信号处理实验2

实验2 离散时间系统的时域分析 一、实验目的 (1)加深对时域信号抽样与恢复的基本原理的理解; (2)掌握应用线性卷积求解离散时间系统响应的基本方法; (3)掌握求解离散时间系统冲击响应和频率响应程序的编写方法,了解常用子函数。 二、实验内容 1. 已知一个连续时间信号()t f t f t f 006sin 3 12sin ππ+ =,Hz f 10=,取最高有限带宽频率 05f f m =。 分别显示原连续时间信号波形和()() m s m s m s m s m s f f f f f f f f f f =<==>2, 2,32三种情况下抽样信号波形,并尝试用内插公式重建原信号。 脚本文件如下: f0=1; fm=5*f0; t=0:0.01:5; f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); subplot(7,1,1) figure(1) plot(t,f) for i=1:3 fs=i*fm; ts=1/fs; t1=0:ts:5; f1=sin(2*pi*f0*t1)+1/3*sin(6*pi*f0*t1); subplot(7,1,i+1); stem(t1,f1,'filled'); f1i=interp1(t1,f1,ti,'spline'); subplot(7,1,i+4) plot(ti,f1i) end 抽样图像及内插后图像:

2. 在MATLAB 中利用内部函数conv 来计算两个有限长序列的卷积。给出两个序列,试求其卷积结果。 ()[]()[] ()()() n h n x n y n n h n n x *=≤≤-=≤≤--=519,14,11,20,5,7,181 38,6,3,9,5 脚本文件: n1=-3:1; x=[5,9,3,6,-8]; n2=-1:5; h=[18,7,5,20,11,14,9]; n=-4:6; y=conv(x,h); stem(n,y);

数字信号处理实验三

实验三:离散LSI 系统的频域分析 一、实验内容 2、求以下各序列的z 变换: 12030() ()sin() ()sin()n an x n na x n n x n e n ωω-=== 程序清单如下: syms w0 n z a; x1=n*a^n;X1=ztrans(x1) x2=sin(w0*n);X2=ztrans(x2) x3= exp(-a*n)*sin(w0*n);X3=ztrans(x3) 程序运行结果如下: X1 =z/(a*(z/a - 1)^2) X2 =(z*sin(w0))/(z^2 - 2*cos(w0)*z + 1) X3 =(z*exp(a)*sin(w0))/(exp(2*a)*z^2 - 2*exp(a)*cos(w0)*z + 1) 3、求下列函数的逆z 变换 0 312342 1 1() () () ()() 1j z z z z X z X z X z X z z a z a z e z ω---= = = = ---- 程序清单如下: syms w0 n z a; X1=z/(z-a);x1=iztrans(X1) X2= z/(a-z)^2;x2=iztrans(X2) X3=z/ z-exp(j*w0);x3=iztrans(X3) X4=(1-z^-3)/(1-z^-1);x4=iztrans(X4) 程序运行结果如下: x1 =a^n x2 =n*a^n/a 课程名称 数字信号 实验成绩 指导教师 实 验 报 告 院系 信息工程学院 班级 学号 姓名 日期

x3 =charfcn[0](n)-iztrans(exp(i*w0),w0,n) x4 =charfcn[2](n)+charfcn[1](n)+charfcn[0](n) 4、求一下系统函数所描述的离散系统的零极点分布图,并判断系统的稳定性 (1) (0.3)()(1)(1) z z H z z j z j -= +-++ z1=[0,0.3]';p1=[-1+j,-1-j]';k=1; [b1,a1]=zp2tf(z1,p1,k); subplot(1,2,1);zplane(z1,p1); title('极点在单位圆外); subplot(1,2,2);impz(b1,a1,20); 由图可见:当极点位于单位圆内,系统的单位序列响应随着频率的增大而收敛;当极点位于单位圆上,系统的单位序列响应为等幅振荡;当极点位于单位圆外,系统的单位序列响应随着频率的增大而发散。由此可知系统为不稳定系统。 -1 -0.5 00.51 -2 -1.5-1-0.500.511.5 2Real Part I m a g i n a r y P a r t 极点在单位圆外 n (samples) A m p l i t u d e Impulse Response

数字信号处理自编实验讲义

贵州师范大学 数字信号处理实验讲义 陈世国编

实验一 离散时间信号的产生及信号的卷积和运算 一、实验室名称:数字信号处理实验室 二、实验项目名称:离散时间信号的产生及信号的卷积和运算 三、实验原理: (一)常见的离散时间信号: 1. 单位抽样序列,或称为离散时间冲激,单位冲激: ???=0 1)(n δ ≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ? ??=-01)(k n δ 0≠=n k n 2.单位阶跃序列 ?? ?=0 1)(n u 00<≥n n 如果)(n u 在时间轴上延迟了k 个单位,得到)(k n u -即: ? ??=01 )(n u k n k n <≥ 3.正弦序列 0()cos()x n A n ω?=+ 这里, ,,0ωA 和φ都是实数,它们分别称为正弦信号()x n 的振幅,角频率和初始相位。 πω200=f 为频率。 4.复正弦序列 n j e n x ω=)( 5.实指数序列 n A n x α=)( (二)、信号的卷积和运算

)(*)()()()(n h n x m n h m x n y m =-= ∑∞ -∞ = (三)MATLAB 编程介绍: MATLAB 是一套功能强大,但使用方便的工程计算及数据处理软件。其编程风格很简洁,没有太多的语法限制,所以使用起来非常方便,尤其对初学者来说,可以避免去阅读大量的指令系统,以便很快上手编程。值得注意得就是,MATLAB 中把所有参与处理的数据都视为矩阵,并且其函数众多,希望同学注意查看帮助,经过一段时间的训练就会慢慢熟练使用本软件了。关于更多的MATLAB 介绍,请大家查阅MATLAB 有关书籍及MATLAB 软件中的帮助。 本实验中使用到一些MATLAB 的基本函数,其中包括对矩阵操作的函数ones( )、pi 、rand( )、randn( )、zeros( ),基本函数 cos( ), exp( ), imag( ), real( ),数据分析函数sum( ),二维图形处理函数axis 、grid 、legend 、plot 、stem 、title 、xlabel 、ylabel 及通用功能图形函数clf 、subplot 等。 1. 单位脉冲序列 长度为N 的单位脉冲序列)(n δ可以通过下面的MATLAB 命令获得: n=-(N-1):N-1 delt=[)1,1(-N zeros 1 )1,1(-N zeros ]; stem(n,delt) 延迟M 个采样点的长度为N 的单位脉冲序列)(M n -δ(M

数字信号处理实验报告一

武汉工程大学 数字信号处理实验报告 姓名:周权 学号:1204140228 班级:通信工程02

一、实验设备 计算机,MATLAB语言环境。 二、实验基础理论 1.序列的相关概念 2.常见序列 3.序列的基本运算 4.离散傅里叶变换的相关概念 5.Z变换的相关概念 三、实验内容与步骤 1.离散时间信号(序列)的产生 利用MATLAB语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。 四实验目的 认识常用的各种信号,理解其数字表达式和波形表示,掌握在计算机中生成及绘制数字信号波形的方法,掌握序列的简单运算及计算机实现与作用,理解离散时间傅里叶变换,Z变换及它们的性质和信号的频域分

实验一离散时间信号(序列)的产生 代码一 单位样值 x=2; y=1; stem(x,y); title('单位样值 ') 单位阶跃序列 n0=0; n1=-10; n2=10; n=[n1:n2]; x=[(n-n0)>=0]; stem(n,x); xlabel('n'); ylabel('x{n}'); title('单位阶跃序列');

实指数序列 n=[0:10]; x=(0.5).^n; stem(n,x); xlabel('n'); ylabel('x{n}'); title('实指数序列');

正弦序列 n=[-100:100]; x=2*sin(0.05*pi*n); stem(n,x); xlabel('n'); ylabel('x{n}'); title('正弦序列');

随机序列 n=[1:10]; x=rand(1,10); subplot(221); stem(n,x); xlabel('n'); ylabel('x{n}'); title('随机序列');

数字信号处理实验2

常见离散信号的 M ATLAB 产生和图形显示 姓名: 刘雷明 学号:222015327012037 一、实验目的 (1)熟悉MATLAB 应用环境,常用窗口的功能和使用方法。 (2)加深对常用离散时间信号的理解。 (3)掌握简单的绘图命令。 (4)掌握线性卷积的计算机编程方法。 二、实验原理与方法 1)单位抽样序列 ?1 n = 0 δ (n ) = ? n ≠ 0 ?0 如果δ (n ) 在时间轴上延迟了 k 个单位,得到δ (n - k ) 即: 1 n = k δ (n - k ) = ? n ≠ 0 ?0 (2)单位阶跃序列 ?1 n ≥ 0 u (n ) = ? n < 0 ?0 ?1 0 ≤ n ≤ N -1 (3)矩形序列 R N (n ) = ? ?0 其他 (4)正弦序列 x (n ) = A sin(wn +?) (5)复正弦序列 x (n ) = e jwn

(6)指数序列 x(n)= a n (7)线性时不变系统的响应为如下的卷积计算式: ∞ y(n)= x (n)* h(n)=∑x(m)h(n - m) m=-∞ 三、实验内容及步骤 (1)复习常用离散时间信号的有关内容。 (2)编制程序产生上述 6 种序列(长度可输入确定,对(4) (5) (6)中的参数可自行选择),并绘出其图形。 (3)已知系统的单位脉冲响应h(n)=0.9n u(n),输入信号x(n)= R10 (n),试用卷积法求解系统的输出y(n),并绘出x(n) ~ n 、h(n) ~ n 及y(n) ~ n 图 形。 四、实验结果 一:

二:

数字信号处理实验4

数字信号处理实验四 第一题结果: (1)没有增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 %H(3,13) = 0.75;H(5,11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线

(2)增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 H(3) = 0.75;H(13) = 0.75;H(5) = 0.25;H(11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线 第二题结果:

副本-数字信号处理实验讲义_2013(1)

数字信号处理实验讲义 电气与自动化工程学院 DSP实验室 2013年1月

前言 (2) 实验一MATLAB简介 (3) 实验二用FFT实现信号的谱分析 (5) 实验三IIR数字巴特沃思滤波器的设计 (9) 实验四FIR数字滤波器的设计 (10) 存在的问题: 1. Matlab 不熟悉,很多同学都是第一次使用,软件一定要自己多动手,程序要自己编写,学会找错。 2. 程序的路径保存问题:最好不要出现在中文目录下。M文件首字母不要为数字或者下划线,或者其它专用的英文名称,如sin 3. 函数的编写问题和调用问题:函数只是表达一种自变量和应变量间的关系,不要在函数中定义x的取值。在同一个文件夹底下调用,弄清楚函数和变量(向量)的不同 4. 括号的使用,运算中都使用小括号,不要使用大括号或者中括号 5. 向量之间的运算要用点乘,分清是否使用向量函数还是标量函数。 6. 运行下一个程序前,要对前一个程序所遗留下来的变量进行清空。

前言 信号处理与计算机的应用紧密结合。目前广泛应用的MA TLAB工具软件包,以其强大的分析、开发及扩展功能为信号处理提供了强有力的支持。在数字信号处理实验中,我们主要应用MA TLAB的信号处理工具箱及其灵活、便捷的编程工具,通过上机实验,帮助学生学习、掌握和应用MA TLAB软件对信号处理所学的内容加以分析、计算,加深对信号处理基本算法的理解。

实验一MATLAB简介 实验目的 1.熟悉MATLAB软件的使用方法; 2.MA TLAB的绘图功能; 3.用MA TLAB语句实现信号的描述及变换。 实验原理 1.在MA TLAB下编辑和运行程序 在MA TLAB中,对于简单问题可以在命令窗(command windows)直接输入命令,得到结果;对于比较复杂的问题则可以将多个命令放在一个脚本文件中,这个脚本文件是以m 为扩展名的,所以称之为M文件。用M文件进行程序的编辑和运行步骤如下:(1)打开MA TLAB,进入其基本界面; (2)在菜单栏的File项中选择新建一个M文件; (3)在M文件编辑窗口编写程序; (4)完成之后,可以在编辑窗口利用Debug工具调试运行程序,在命令窗口查看输出结果;也可以将此文件保存在某个目录中,在MATLAB的基本窗口中的File项中选择Run The Script,然后选择你所要运行的脚本文件及其路径,即可得出结果;也可以将此文件保存在当前目录中,在MA TLAB命令窗口,“>>”提示符后直接输入文件名。 2.MA TLAB的绘图功能 plot(x,y) 基本绘图函数,绘制x和y之间的坐标图。 figure(n ) 开设一个图形窗口n subplot(m,n,N) 分割图形窗口的MATLAB函数,用于在一个窗口中显示多个图形,将图形窗口分为m行n列,在第N个窗口内绘制图形。 axis([a0,b0,a1,b1] ) 调整坐标轴状态 title(‘’) 给图形加题注 xlabel (‘‘) 给x轴加标注 ylabel (‘‘) 给y轴加标注 grid 给图形加网格线 3.信号描述及变换 信号描述及变换包括连续时间信号和离散时间信号内容,详细内容请见课本第1章、第2章。

数字信号处理实验指导书

本科数字信号处理实验指导书 基于EXP-III(TMS320F2812)实验教学平台 编写:姚晓通 兰州交通大学电工电子实验中心

第一章实验系统介绍 一、系统概述 EL-DSP-EXP III 教学系统是一种综合的教学实验系统,采用模块化分离式结构,使用灵活,方便用户二次开发。通过“E_LAB”和“TECH_V”扩展总线,可以扩展声、光、机、电等不同领域的控制对象。客户可根据自己的需求选用不同类型的CPU适配板,我公司所有CPU适配板是完全兼容的,用户在不需要改变任何配置情况下,更换CPU 适配板即可做TI公司的不同类型的DSP的相关试验。现已开发的CPU板类型有’C5000系列的:5402、5409、5410、5416,’C2000系列的2407、2812。 注:我公司将陆续推出VC5509、ARM系列CPU板,最新产品信息请向总公司或各地分公司咨询。 系统组成框图

实验箱 仿真器

第二章算法实验指导 实验一快速傅立叶变换(FFT)算法实验 一.实验目的 1.加深对DFT算法原理和基本性质的理解; 2.熟悉FFT算法原理和FFT子程序的应用; 3.学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。 二.实验设备 计算机,CCS 2.0 版软件,EXP3实验箱,DSP仿真器,导线 三.基本原理 1.离散傅立叶变换DFT的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。 2.FFT是DFT的一种快速算法,将DFT的N2步运算减少为(N/2)log2N步,极大的提高了运算的速度。 3.旋转因子的变化规律。 4.蝶形运算规律。 5.基2FFT算法。 四.实验步骤 1.复习DFT的定义、性质和用DFT作谱分析的有关内容; 2.复习FFT算法原理与编程思想,并对照DIT-FFT运算流程图和程序框图,了解本实验提供的FFT子程序; 3.阅读本实验所提供的样例子程序; 4.运行CCS软件,对样例程序进行跟踪,分析结果;记录必要的参数。 5.填写实验报告。 6.提供样例程序实验操作说明 A.实验前准备 用导线连接“模拟信号源单元”中2号孔接口“信号源1”和“A/D单元”的2号孔接口“ADIN2”;信号源1选择正弦波,并适当调节波形的频率和幅值,“A/D单元”JP3中的4打到“ON”。S23全部置OFF; B.实验

数字信号处理书上实验1.2.3.4

实验一熟悉Matlab环境 一、实验目的 1.熟悉MATLAB的主要操作命令。 2.学会简单的矩阵输入和数据读写。 3.掌握简单的绘图命令。 4.用MATLAB编程并学会创建函数。 5.观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MA TLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。 clear all; a=[1 2 3 4]; b=[3 4 5 6]; c=a+b; d=a-b; e=a.*b; f=a./b; g=a.^b; n=1:4; subplot(4,2,1);stem(n,a); xlabel('n');xlim([0 5]);ylabel('A'); subplot(4,2,2);stem(n,b); xlabel('n');xlim([0 5]);ylabel('B'); subplot(4,2,3);stem(n,c); xlabel('n');xlim([0 5]);ylabel('C'); subplot(4,2,4);stem(n,d); xlabel('n');xlim([0 5]);ylabel('D'); subplot(4,2,5);stem(n,e); xlabel('n');xlim([0 5]);ylabel('E'); subplot(4,2,6);stem(n,f); xlabel('n');xlim([0 5]);ylabel('F'); subplot(4,2,7);stem(n,g); xlabel('n');xlim([0 5]);ylabel('G'); (2)用MATLAB实现下列序列: a) x(n)=0.8n0≤n≤15 b) x(n)=e(0.2+3j)n0≤n≤15 c) x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π) 0≤n≤15 d) 将c)中的x(n)扩展为以16为周期的函数x16(n)=x(n+16),绘出四个周期。 e) 将c)中的x(n)扩展为以10为周期的函数x10(n)=x(n+10),绘出四个周期。 clear all; N=0:15; % a) x(n)=0.8n 0≤n≤15 xa=0.8.^N;

数字信号处理实验资料

实验一 自适应滤波器 一、实验目的 1、掌握功率谱估计方法 2、会用matlab 对功率谱进行仿真 二、实验原理 功率谱估计方法有很多种,一般分成两大类,一类是经典谱估计;另一类是现代谱估计。经典谱估计可以分成两种,一种是BT 法,另一种是周期法;BT 法是先估计自相关函数,然后将相关函数进行傅里叶变换得到功率谱函数。相应公式如下所示: ||1 *0 1 ?()()()(11) ??()(12) N m xx n jwn BT xx m r m x n x n m N P r m e --=∞ -=-∞ =+-=-∑ ∑ 周期图法是采用功率谱的另一种定义,但与BT 法是等价的,相应的功率谱估计如下所示: 21 1? ()()01 (13)N jw jwn xx n P e x n e n N N --== ≤≤--∑ 其计算框图如下所示: ) (jw xx e ∧ 图1.1周期图法计算用功率谱框图

由于观测数据有限,所以周期图法估计分辨率低,估计误差大。针对经典谱估计的缺点,一般有三种改进方法:平均周期图法、窗函数法和修正的周期图平均法。 三、实验要求 信号是正弦波加正态零均值白噪声,信噪比为10dB,信号频率为2kHZ,取样频率为100kHZ。 四、实验程序与实验结果 (1)用周期图法进行谱估计 A、实验程序: %用周期法进行谱估计 clear all; N1=128;%数据长度 N2=256; N3=512; N4=1024; f=2;%正弦波频率,单位为kHZ fs=100;%抽样频率,单位为kHZ n1=0:N1-1; n2=0:N2-1; n3=0:N3-1; n4=0:N4-1; a=sqrt(20);%由信噪比为10dB计算正弦信号的幅度

数字信号处理实验八

实验报告 实验名称:FIR数字滤波器设计及应用 课程名称____数字信号处理________ 院系部:电气与电子工程专业班级:信息1002 学生姓名:王萌学号: 11012000219同组人:实验台号: 指导教师:范杰清成绩: 实验日期: 华北电力大学

一、实验目的 加深理解 FIR 数字滤波器的时域特性和频域特性,掌握FIR 数字 滤波器的设计原理与设计方法,以及FIR 数字滤波器的应用。 二、 实验原理 FIR 数字滤波器可以设计成具有线性相位,在数据通信、图像处理、 语音信号处理等实际应用领域得到广泛应用。 M 阶FIR 数字滤波器的系统函数为: FIR 数字滤波器的单位脉冲响应h [k ]是长度为M +1的有限长因果序列。当满足对称条件时,该FIR 数字滤波器具有线性相位。FIR 数字滤波器设计方法主要有窗口法、频率取样法及优化设计法。 MATLAB 中提供的常用FIR 数字滤波器设计函数有: fir1 窗函数法设计FIR 数字滤波器(低通、高通、带通、 带阻、多频带滤波器) fir2 频率取样法设计FIR 数字滤波器:任意频率响应 firls FIR 数字滤波器设计:指定频率响应 firrcos 升余弦型 FIR 数字滤波器设计 intfilt 内插FIR 数字滤波器设计 kaiserord 凯塞(Kaiser)窗函数设计法的阶数估计 firpm Parks-McClellan 算法实现FIR 数字滤波器优化设计 firpmord Parks-McClellan 数字滤波器的阶数选择 cremez 复系数非线性相位FIR 等波纹滤波器设计 1、 窗口法设计FIR 数字滤波器 fir1函数可以很容易地实现FIR 数字滤波器窗口法设计。 可设计低通、高通、带通、带阻滤波器、多频带滤波器。 k M k z k h z H -=∑=][)(0

数字信号处理MATLAB实验1

实验一熟悉MATLAB环境 一、实验目的 (1)熟悉MATLAB的主要操作命令。 (2)学会简单的矩阵输入和数据读写。 (3)掌握简单的绘图命令。 (4)用MATLAB编程并学会创建函数。 (5)观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1234],B=[345 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出 A、B、C、D、E、F、G。 (2)用MATLAB实现以下序列。 a)x(n)=0.8n0≤n≤15 b)x(n)=e(0.2+3j)n0≤n≤15 c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π)0≤n≤15 (n)=x(n+16),绘出四个d)将c)中的x(n)扩展为以16为周期的函数x 16 周期。 (n)=x(n+10),绘出四个e)将c)中的x(n)扩展为以10为周期的函数x 10 周期。

(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本。 a)x 1(n)=2x(n+2)-x(n-1)-2x(n) b)∑=-=5 1k 2) k n (nx (n) x (4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注。 a)x(t)=sin(2πt)0≤t≤10s b)x(t)=cos(100πt)sin(πt) 0≤t≤4s (5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1

相关主题
文本预览
相关文档 最新文档