数字信号处理课程设计

更新时间:2024-03-30 22:58:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字信号处理 课程设计报告

题 目: 典型序列的谱分析及特性 学 院: 培黎工程技术学院 班 级: 电信111本 学 号: 20110602050105 姓 名: 董新伟 联系方式: 18309464272 指导教师: 石 蕊 报告成绩:

2014年 12月24日

目录

一、设计任务与要求 ........................................................................ 3 1.1设计任务 ................................................................................ 3 1.2 设计要求 ............................................................................... 3 二、设计原理及过程 ........................................................................ 4 2.1 设计原理 ............................................................................... 4 2.2 三种典型序列的表达式及程序 ........................................... 5 2.3 时移、频移与傅里叶变换原理 ........................................... 5 三、设计内容及结果 ........................................................................ 6 3.1 时域波形 ............................................................................... 6 3.2 幅度谱及相位谱 ................................................................... 8 3.3 时移、频移及特性实现 ..................................................... 11 3.4 自行设计一个序列—单位冲击序列 ................................. 16 四、心得与体会 .............................................................................. 18 参考文献…………………………………………………………………………………..…18

一、设计任务与要求

1.1设计任务

1.1.1对于三种典型序列------单位采样序列、实指数序列、矩形序列,要求:

1. 画出以上序列的时域波形图; 2. 求出以上序列的傅里叶变换;

3.画出以上序列的幅度谱及相位谱,并对相关结果予以理论分析;

4. 对以上序列分别进行时移,画出时移后序列的频谱图,验证傅里叶变换的时移性质; 5. 对以上序列的频谱分别进行频移,求出频移后频谱所对应的序列,并画出序列的时域波形图,验证傅里叶变换的频移性质。

1.1.2 自行设计一个周期序列,要求:

1.画出周期序列的是域波形图;

2.求周期序列的DFS,并画出幅度特性曲线; 3.求周期序列的FT,并画出扶贫特性曲线; 4.比较DFS和FT的结果,从中可以得出什么结论。

1.2 设计要求

1. 要求独立及小组合作完成设计任务。 2. 课设说明书要求:

1) 说明题目的设计原理和思路、采用方法及设计流程。 2) 详细介绍运用的理论知识和主要的Matlab程序。 3) 绘制结果图形并对仿真结果进行详细的分析。

二、设计原理及过程

2.1 设计原理

运用Matlab及相关软件,对三种典型序列进行频谱分析,得到并验证相应的结果。 MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

利用傅里叶变换的方法对振动的信号进行分解,并按频率顺序展开,使其成为频率的函数,进而在频率域中对信号进行研究和处理的一种过程,称为频谱分析。

将信号在时间域中的波形转变为频率域的频谱,进而可以对信号的信息作定量解释。

对信号进行频谱分析,是对其进行傅里叶变换,得到其振幅谱与相位谱。分析软件主要为Matlab。

对于信号来说,分模拟信号与数字信号。进行频谱分析时,对于模拟信号来说,首先对其进行抽样,使其离散化,然后利用离散傅里叶变换(DFT)或者快速傅里叶变换(FFT),然后对其幅度(ABS)和相位(ANGLE)的图像进行分析,而对于数字信号来说,则可直接进行离散傅里叶变换或快速傅里叶变换。

2.2 三种典型序列的表达式及程序

2.2.1 单位采样序列

1、公式:

2、特点:单位采样序列也称为单位脉冲序列,仅在n=0时,数值才为1,其它时候取值全是0.它类似于模拟信号和系统中的单位冲激函数,但是不同的是在t=0时,取值无穷大,时取值为零,对时间t的积分为1。 2.2.2 实指数序列

nx(n)?au(n) a为实数 1、公式:

2、特点: 当0

当a>1时,该函数是单调递增函数,称为发散序列。

2.2.3 矩阵序列

1、公式: 式子中的N为矩阵序列的长度。

2.3 时移、频移与傅里叶变换原理

2.3.1 时移原理

在这个序列运算中,x[n]的每一个样本都移动(即延迟)k个采样周期,设移位后的序列为y(n)。当k >0时每一个样本向右移动,称为x(n)的延时序列;当k<0时,每一个样本向左移动,称为x(n)的超前序列:y(n)=x(n-k)

在MATLAB中,如果原始的序列用x和nx表示,移位后的序列用y和yn表示,移位运算并不影响向量x的值,因此y=x。移位体现为位置向量的改变。ny的每个元素都比nx加了一个k,即ny=nx+k。y和ny就是移位后的向量的表述,说明y取k拍前的x值。向左移位可令k取负号,意味着y取k拍后的x值。在系统框图中用z进行标注,它被称为迟延

?1

算子,表示把输入序列右移一位;用z进行标注,它是左移运算是右移算子的逆运算。实际上迟延算子取的是序列过去的值,具有物理可实现性;而左移算子是提前算子,它要知道序列未来的值,物理上无法实现。所以数字信号处理中通常都用z算子。

?12.3.2 频移原理

若f(t)?F(?),则f(t)?ej?0t?F(???0) 结论:将信号f?t?乘以因子e以因子e

j?0tj?0t,对应于将频谱函数沿轴?右移?0;将信号f?t?乘

,对应于将频谱函数沿轴?右移?0。

2.3.3 傅里叶变换(DFT)原理

离散傅里叶变换的结果为有限长和离散的,它实质上是对序列傅里叶变换在频域均匀离散的结果,因而使数字信号处理可以在频域采用数字运算的方法进行,大大增加傅里叶变换的灵活性和使用性。离散傅里叶变换的定义如下

X?k??DFT?x?n????x?n?en?0N?1?j2?nkNnk??x?n?WNn?0N?1

其中为旋转因子WN,N为变换区间长度。

三、设计内容及结果

3.1 时域波形

1.单位取样序列时域波形图 程序:

n=-5:10;

y=[zeros(1,5),1,zeros(1,10)]; stem(n,y)

axis([-5,10,0,2]); title('单位取样序列')

2.指数序列时域波形图 指数序列程序 n=0:10; a1=1.2;a2=1.2; x1=a1.^n;x2=a2.^n; subplot(221);

stem(n,x1,'fill'),grid on; subplot(222);

stem(n,x2,'fill'),grid on

3.矩形时域波形图

程序: n=-5:10;

y=[zeros(1,5),ones(1,5),zeros(1,6)]; plot(n,y) stem(n,y)

axis([-5,10,0,2]); title('矩形序列');

3.2 幅度谱及相位谱

1.单位采样序列幅度普及相位谱

程序:

n=1:50; % 定义序列的长度是50

x=zeros(1,50); % 注意:MATLAB 中数组下标从1 开始 x(1)=1; close all;

subplot(3,1,1);stem(x);title('单位冲击信号序列'); k=-25:25;

X=x*(exp(-j*pi/12.5)).^(n'*k); magX=abs(X); % 绘制x(n) 的幅度谱

subplot(3,1,2);stem(magX);title('单位冲击信号的幅度谱'); angX=angle(X); % 绘制x(n) 的相位谱

subplot(3,1,3);stem(angX) ; title ('单位冲击信号的相位谱') ;

2.实指数序列幅度普及相位谱

程序: n=0:10;a=0.5; x=a.^n;

stem(n,x,'filled');

xlabel('时间(n)'); ylabel('幅度x(n)'); title('实指数序列');

n=0:20; a=1.2; x=a.^n; subplot(311); stem(n,x,'fill'),grid on;title ('实指数序列') k=-10:10; X=x*(exp(-j*pi/10)).^(n'*k);

magX=abs(X); subplot(312);stem(magX);title('实指数序列的幅度谱'); angX=angle(X); subplot(313);stem(angX);title ('实指数序列的相位谱');

3.矩形序列幅度普及相位谱

程序: n=1:50;

x=sign(sign(10-n)+1); close all;

subplot(3,1,1); stem(x);title('矩形信号序列'); k=-25:25;

X=x*(exp(-j*pi/25)).^(n'*k); magX=abs(X); % 绘制x(n) 的幅度谱

subplot(3,1,2);stem(magX);title('矩形序列的幅度谱'); angX=angle(X); % 绘制x(n) 的相位谱

subplot(3,1,3);stem(angX) ; title ('矩形序列相位谱') ;

3.3 时移、频移及特性实现

3.3.1 单位采样序列的特性实现

程序:

n=1:50;

x=zeros(1,50); t=10;

x(t)=1; figure

subplot(3,1,1); stem(x);title('单位采样序列的时移'); k=-25:25;

X=x*(exp(-j*pi/25)).^(n'*k); magX=abs(X);

subplot(3,1,2);stem(magX);title('单位采样序列时移的幅度谱'); angX=angle(X);

subplot(3,1,3);stem(angX); title ('单位采样序列时移的相位谱'); n=1:50;

x=zeros(1,50); x(1)=1; l = 5;

y = exp(-j*pi/25*l).^n; z=x.*y; figure

subplot(3,1,1);stem(z);title('频移后单位采样序列');

k=-25:25;

X=z*(exp(-j*pi/25)).^(n'*k); magX=abs(X);

subplot(3,1,2);stem(magX);title('频移后单位采样序幅度谱'); angX=angle(X);

subplot(3,1,3);stem(angX); title ('频移后单位采样序列的相位谱');

时移特性如下图:

频移特性如下图:

3.3.2指数序列的特性实现

程序

n=0:20; a=1.2; t=5;

x=power(a,(n-t)); figure

subplot(3,1,1);stem((n+t),x,'fill');title('实指数序列的时移'); k=-10:10;

X=x*(exp(-j*pi/10)).^((n-t)'*k); magX=abs(X);

subplot(3,1,2);stem(magX,'fill');title('实指数序列时移的幅度谱'); angX=angle(X);

subplot(3,1,3);stem(angX,'fill'); title ('实指数序列时移的相位谱'); n=0:19; a=1.2;

x=power(a,n); l = 5;

y = exp(-j*pi/10*l).^n; z=x.*y; figure

subplot(3,1,1);stem(z,'fill');title('频移后实指数序列'); k=-10:10;

X=z*(exp(-j*pi/10)).^(n'*k); magX=abs(X);

subplot(3,1,2);stem(magX,'fill');title('频移后实指数序列幅度谱'); angX=angle(X);

subplot(3,1,3);stem(angX,'fill'); title ('频移后实指数序列的相位谱');

时移特性如下图:

频移特性如下图:

3.3.3 矩形序列的特性实现

程序:

figure

n1=-10;n2=10;n3=40;n0=0; n=n1:n3; n4=10;

x=[(n>=n0+n4)&(n

subplot(3,1,1);stem(n,x,'filled');title('时移的矩形序列 '); k=-20:20;

X=x*(exp(-j*pi/20)).^((n+n4)'*k); magX=abs(X);

subplot(3,1,2);stem(magX);title('时移矩形序列的幅度谱'); angX=angle(X);

subplot(3,1,3);stem(angX); title ('时移矩形序列的相位谱'); figure

n1=-10;n2=10;n3=40;n0=0; n=n1:n3;

x=[(n>=n0+n4)&(n

y = exp(-j*pi/20*l).^n; z=x.*y;

subplot(3,1,1);stem(n,z,'filled');title('频移后的矩形序列');

k=-20:20;

X=z*(exp(-j*pi/20)).^((n)'*k); magX=abs(X);

subplot(3,1,2);stem(magX);title('频移后的矩形序列的幅度谱'); angX=angle(X);

subplot(3,1,3);stem(angX); title ('频移后的矩形序列的相位谱');

时移特性如下图:

频移特性如下图:

3.4 自行设计一个序列—单位冲击序列

程序:

n=1:50; % 定义序列的长度是50 close all;

subplot(3,1,1);stem(x);title('单位冲击信号序列'); k=-25:25;

X=x*(exp(-j*pi/12.5)).^(n'*k); magX=abs(X); % 绘制x(n) 的幅度谱

subplot(3,1,2);stem(magX);title('单位冲击信号的幅度谱'); angX=angle(X); % 绘制x(n) 的相位谱

subplot(3,1,3);stem(angX) ; title ('单位冲击信号的相位谱') ;

x=sin(pi*n); % 注意:MATLAB 中数组下标从1 开始

周期序列的DFS

程序: n=0:9; k=[0:1:9]; x=sin(5*pi*n); WN=exp(-j*2*pi/9);

nk=n'*k; WNnk=WN.^nk; Xk=x*WNnk; xlabel('Xk')

正弦信号傅里叶变换

程序:

fs=100;%设定采样频率 N=128; n=0:N-1;

t=n/fs; %设定正弦信号频率 %生成正弦信号 x=sin(pi *t); figure(1); subplot(231);

plot(t,x);%作正弦信号的时域波形

xlabel('t'); ylabel('y');

title('正弦信号y=2*pi*10t时域波形'); grid;

%进行FFT变换并做频谱图 y=fft(x,N);%进行fft变换 mag=abs(y);%求幅值

f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换 figure(1); subplot(232);

plot(f,mag);%做频谱图 axis([0,100,0,80]); xlabel('频率(Hz)'); ylabel('幅值');

title('正弦信号y=2*pi*10t幅频谱图N=128');

四、心得与体会

通过这次的课程设计,使我对数字信号中的三种典型序列的谱分析及相关特性更加理解,从实验结果的分析中,对信号时移与频移的特性有了进一步的认识;另外,在这次课程设计中还加深了我对MATLAB软件的使用,能编一些简单的程序。但是在课程设计过程中也遇到一些问题,如因为对知识的理解不够深,编程过程中有种凑结果的节奏,但最后在同学的帮助下,我完全明白了谱分析的那些特性。同时也让我了解了自己的不足之处,要掌握好一门课程,仅仅靠死记硬背是不行的,特别是对学工科的我们来说,实践操作尤为重要, 我们应该重视它,它是检验我们我们学习知识是否牢固的重要途径。

参考文献

[1]高西全,丁玉美...数字信号处理..西安电子科技大学出版社,2008,第3版 [2]刘泉,阙大顺...数字信号处理原理与实现..电子工业出版社,2005 [3]赵之劲,刘顺兰...数字信号处理实验..浙江大学出版社,2007 [4]张威...Matlab基础与编程入门..西安电子科技大学出版社,2006

[5]陈怀探...数字信号处理教程--Matlab释义与实现..电子工业出版社,2005

本文来源:https://www.bwwdw.com/article/s04r.html

Top