数字信号处理课程设计.docx

上传人:b****6 文档编号:8620820 上传时间:2023-02-01 格式:DOCX 页数:21 大小:229.76KB
下载 相关 举报
数字信号处理课程设计.docx_第1页
第1页 / 共21页
数字信号处理课程设计.docx_第2页
第2页 / 共21页
数字信号处理课程设计.docx_第3页
第3页 / 共21页
数字信号处理课程设计.docx_第4页
第4页 / 共21页
数字信号处理课程设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数字信号处理课程设计.docx

《数字信号处理课程设计.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计.docx(21页珍藏版)》请在冰豆网上搜索。

数字信号处理课程设计.docx

数字信号处理课程设计

数字信号处理

课程设计报告

题目:

典型序列频谱分析

学院:

班级:

学号:

姓名:

联系方式:

指导教师:

报告成绩:

 

2014年12月24日

引言

数字信号处理的主要研究对象是数字信号,且是采用运算的方法达到处理的目的的,因此,其实现方法,基本上分成两种实现方法,即软件和硬件实现方法。

软件实现方法指的是按照原理和算法,自己编写程序或者采用现成的程序在通用计算机上实现,硬件实现指的是按照具体的要求和算法,设计硬件结构图,用乘法器加法器延时器、控制器、存储器以及输入输出接口部件实现的一种方法。

显然前者灵活,只要改变程序中的有关参数,但是运算速度慢,一般达不到实时处理,因此,这种方法适合于科研和教学。

后者运算速度快,可以达到实时处理要求,但是不灵活。

目前DSP芯片已进入市场,且正在高速发展,速度高,体积小,性能优良,价格也在不断下降。

可以说,用DSP芯片实现数字信号处理,正在变成工程技术领域的主要方法。

用合适的DSP芯片,配有合适的芯片语言及任务要求的软件,来实现信号处理功能无疑是一种最佳的数字信号处理系统。

课程设计目的

1.熟悉离散信号和系统的时域特性。

2.掌握数字信号处理的基本概念,基本理论和基本方法。

3.掌握序列快速傅里叶变换方法。

4.学会MATLAB的使用,掌握MATLAB的程序设计方法。

课程设计要求

1.1对于三种典型序列------单位采样序列、实指数序列、矩形序列

要求:

(1)画出以上序列的时域波形图;

(2)求出以上序列的傅里叶变换;(3)画出以上序列的幅度谱及相位谱,并对相关结果予以理论分析;(4)对以上序列分别进行时移,画出时移后序列的频谱图,验证傅里叶变换的时移性质;(5)对以上序列的频谱分别进行频移,求出频移后频谱所对应的序列,并画出序列的时域波形图,验证傅里叶变换的频移性质。

1.2自行设计一个周期序列

要求:

(1)画出周期序列的时域波形图;

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

 

设计内容

一、三种序列的时域波形图

1.1单位采样序列

公式

程序:

n=-25:

25;

y=[zeros(1,25),1,zeros(1,25)];

stem(n,y)

axis([-25,25,0,2]);

title('单位采样序列时域波形')

特点:

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

1.2实指数序列

公式

a为实数

特点

当0

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

程序

n=0:

40;

a=1.2;

x=power(a,n);

stem(x,'fill');

xlabel('时间(n)');

ylabel('幅度x(n)');

title('实指数序列时域波形');

1.3矩形序列

公式

式子中N为矩形序列的长度

程序

n0=0;n1=-10;n2=10;n3=50;

n=n0:

n3;

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

stem(x,'fill');

xlabel('时间(n)');

ylabel('幅度x(n)');

title('矩形序列时域波形');

图1

二、三种典型序列的傅里叶变换

2.1傅里叶变换原理

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

离散傅里叶变换的定义如下

其中为旋转因子

,N为变换区间长度。

三、三种典型序列的幅度谱与相位谱

3.1单位采样序列的幅度谱及相位谱

程序

clear

closeall

clc

n=-24:

26;

x=[zeros(1,24),1,zeros(1,26)];

x(25)=1;

subplot(3,1,1);stem(x);title('单位采样序列');

N=50;

k=-25:

25;

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

magX=abs(X);

subplot(3,1,2);stem(magX);title('单位采样序列的幅度谱');

angX=angle(X);

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

图2

3.2实指数序列的幅度谱及相位谱

程序

clearall

closeall

clc

n=0:

40;

a=1.2;

x=power(a,n);

subplot(3,1,1);stem(x,'fill');title('实指数序列时域波形');

k=-20:

20;

X=x*(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矩形序列的幅度谱及相位谱

程序

clear

closeall

clc

n0=0;n1=-10;n2=10;n3=20;

n=n1:

n3;

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

subplot(3,1,1);stem(n,x,'filled');title('矩形序列');

k=-25:

25;

X=x*(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('矩形序列的相位谱');

图4

四、三种典型序列的时移

4.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进行标注,它是左移运算是右移算子的逆运算。

实际上迟延算子取的是序列过去的值,具有物理可实现性;而左移算子是提前算子,它要知道序列未来的值,物理上无法实现。

所以数字信号处理中通常都用

算子。

4.2单位采样信号的时移及时移后的频谱图

程序

n=1:

100;

x=zeros(1,100);

t=30;

x(t)=1;

figure

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

k=-50:

50;

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('单位采样序列时移的相位谱');

图5

4.3实指数序列的时移及时移后的频谱图

程序

n=0:

40;

a=1.2;

t=45;

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

figure

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

k=-20:

20;

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('实指数序列时移的相位谱');

图6

4.4矩形序列的时移及时移后的频谱图

程序

n1=-10;n2=10;n3=20;n0=0;

n=n1:

n3;

n4=10;

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

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

k=-25:

25;

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('时移矩形序列的相位谱');

图7

 

五、三种典型序列的频移

5.1频移的原理

,则

结论:

将信号

乘以因子

,对应于将频谱函数沿轴

右移

;将信号

乘以因子

,对应于将频谱函数沿轴

右移

5.2单位采样信号的频移及频移后的特性图

程序

n=1:

100;

x=zeros(1,100);

x

(1)=1;

l=5;

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

z=x.*y;

figure

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

k=-50:

50;

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('频移后单位采样序列的相位谱');

图8

5.3实指数序列的频移及频移后的特性图

程序

n=0:

40;

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=-20:

20;

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('频移后实指数序列的相位谱');

图9

5.4矩形序列的频移及频移后的特性图

程序

n1=-10;n2=10;n3=20;n0=0;

n=n1:

n3;

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

l=5;

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

z=x.*y;

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

k=-25:

25;

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('频移后的矩形序列的相位谱');

图10

六、结果分析

6.1单位采样序列分析

从图1的第一个波形和图5的第一个图中我们可以明显看出,单位采样序列在时域上向右移动10位,即的图形,在时移的过程中,通过图2与图5的第二个图形,我们可以看出,时移时,傅里叶变换的幅度谱没有什么变化,与原先一样;但从图2与图5中第三个图形中可以看出其相位谱有很大的变化,相位沿X轴旋转。

从图1第一个波形和图8的第一个图中我们可以明显看出频移图是原图的上下翻转;从图2与图8中的第二个图形中可以看出原图与频移图形没有什么变化;从图2与图8中的第三个图形中可以看出,频移图的相位是原图相位的时移,即向右移动5位。

6.2实指数序列分析

从图1和图6的第一个图中我们可以明显看出,实指数序列在时域上向右移动5位,在时移的过程中,通过图1与图6的第二个图形,我们可以看出,时移时,傅里叶变换的幅度谱没有什么变化,与原先一样;但从图1与图6中第三个图形中可以看出其相位谱有很大的变化,相位沿X轴旋转。

从图1和图9的第一个图中我们可以明显看出频移图是原图的上下翻转;从图3与图9中的第二个图形中可以看出相较与原图,频移图形向左移动5位;从图3与图9中的第三个图形中可以看出,频移图的相位与原图相位相反,且图形有移动。

6.3矩形序列分析

从图1和图10的第一个图中我们可以明显看出,矩形序列在时域上向右移动10位,在时移的过程中,通过图4与图10的第二个图形,我们可以看出,时移时,傅里叶变换的幅度谱没有什么变化,与原先一样;但从图4与图10中第三个图形中可以看出其相位谱有很大的变化,相位沿X轴旋转。

从图1和图10的第一个图中我们可以明显看出频移图与原图相比,沿着X轴翻转,在不为0的区域里;从图4与图10中的第二个图形中可以看出相较与原图,频移图形向左移动5位;从图4与图10中的第三个图形中可以看出,频移图的相位与原图相位相反,且图形有移动。

七、周期序列的设计

7.1周期序列时域波形

程序

fs=25;%设定采样频率

N=256;

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时域波形');

图11

7.2周期序列的FT

程序

fs=25;%设定采样频率

N=256;

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=256');

图12

7.3周期序列的DFS

在MTALAB中,DFS通过建立周期延拓函数语句实现:

functionXk=DFS(n,x,N)

ifN>length(x)

n=0:

N-1;

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

end

k=0:

N-1;

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

nk=n'*k;

WNnk=WN.^nk;

Xk=x*WNnk;

End

利用DFS计算实现代码如下:

fs=25;%设定采样频率

N=256;

n=0:

N-1;

t=n/fs;

f0=10;%设定正弦信号频率

%生成正弦信号

x=sin(2*pi*f0*t);

figure

(1);

subplot(231);

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

xlabel('t');

ylabel('y');

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

X=fft(t,1024);

Xk=DFS(n,t,8);

figure

(2);

plot((-1023:

2048)/2048*16,[abs(X)abs(X)abs(X)],'--');holdon;

stem(-8:

15,[abs(Xk2)abs(Xk2)abs(Xk2)],'LineWidth',2);grid;

set(gcf,'color','w');

图13

7.4周期序列DFS与FT比较分析

FT是傅立叶变换,它主要用于分析连续非周期信号,由于信号是非周期的,它必包含了各种频率的信号,所以具有时域连续非周期对应频域连续非周期的特点。

离散的信号为周期序列时,严格的讲,傅立叶变换是不存在的,因为它不满足信号序列绝对级数和收敛(绝对可和)这一傅立叶变换的充要条件,但是采用DFS(离散傅立叶级数)这一分析工具仍然可以对其进行傅立叶分析。

采用类似DFS的分析方法可以把有限长非周期序列假设为一无限长周期序列的一个主直周期,即对有限长非周期序列进行周期延拓,延拓后的序列完全可以采用DFS进行处理,即采用复指数基频序列和此有限长时间序列取相关,得出每个主值在各频率上的频谱分量以表示出这个“主值周期”的频谱信息。

 

心得体会

本次课程设计是关于三种典型序列的谱分析及特性,要求学生掌握典型序列的特性,能熟练使用MATLAB软件,学会运用MATLAB编写一些简单的程序,用图形表示出来,能把数字信号处理的知识学以至用,运用理论对典型序列的频谱加以分析,达到理论知识实践化。

MATLAB主要用于数值运算,可利用为数众多的附加工具箱,它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。

它还是一个包含大量计算算法的集合。

其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。

在通常情况下,可以用它来代替底层编程语言。

在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。

MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。

函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。

通过这次的课程设计,使我对数字信号中的三种典型序列的谱分析及相关特性更加理解,从实验结果的分析中,对信号时移与频移的特性有了进一步的认识;另外,在这次课程设计中还加深了我对MATLAB软件的使用,能编一些简单的程序。

但是在课程设计过程中也遇到一些问题,如因为对知识的理解不够深,编程过程中有种凑结果的节奏,但最后经老师的讲解与同学的帮助,我完全明白了谱分析的那些特性。

参考文献

[1]数字信号处理基础(第三版)北京邮电大学出版社周利清、苏菲编

[2]MATLAB及在电子信息课程中的应用(第4版)电子工业出版社陈怀琛编

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1