数字信号课程设计.docx
- 文档编号:9271061
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:14
- 大小:55.42KB
数字信号课程设计.docx
《数字信号课程设计.docx》由会员分享,可在线阅读,更多相关《数字信号课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
数字信号课程设计
摘要
信号处理是将信号表示并且处理的理论和技术。
数字信号处理与模拟信号是信号处理的子集。
在本次课程设计中主要用数字信号来解决问题。
数字信号处理的核心算法是离散傅里叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用计算机处理离散信号。
而使数字信号处理从理论走向实用的是快速傅里叶变换,FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能,极大促进学科的发展。
MATLAB是矩阵实验室的()简称,在数学类科技应用软件中数学计算方面首屈一指。
,MATLAB可以进行矩阵运算,绘制函数和数据以及图形,主要用于工程计算,控制设计、信号处理、信号检测等。
关键词:
MATLAB、快速傅里叶变换(FFT)、
一 课程设计的目的
1.熟悉离散信号和系统的时域和频域的特性。
2.掌握数字信号处理的基本概念,基本理论和基本方法。
3.掌握序列快速傅里叶变换方法。
4.学会MATLAB的使用,掌握MATLAB的程序设计方法。
5.熟练使用一种高级语言进行编程实现
二MATLAB基本原理
1、原理概述
1.1、MATLAB是一种科学计算软件,主要适用于矩阵运算机控制和信息处理领域的分析设计。
它使用方便,输入简洁,内容丰富,并且很容易由用户字形扩展。
因此,当期已成为大学教学和科学研究中最常用而必不可少的工具。
MATLAB是矩阵实验室(MATrixLABoratoy)的缩写。
它是一种以矩阵运算为基础的交换式程序语言,专门针对科学、工程计算及绘图的要求。
与其它计算机语言相比,其特点是简洁和智能化,适用科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。
它用解决方式工作,键入程序立即得到结果,人机交换性能好,深得科技人员喜爱。
1.2、MATLAB的工作环境
MATLAB7.0的工作环境主要由命令窗(commandwindow)、图形窗(figurewindow)和文本编辑窗(FileEdior)组成。
2、语句介绍
2.1、绘图命令:
以下介绍几个常用的绘图命令:
plot、ezplot、stairs,stem。
其中,绘制连续信号得到光滑的曲线时用plot命令;显示连续信号中的不连续点时用stairs命令较好;绘制离散信号波形用stem命令;本实验中的信号都是离散信号,因此都是用stem命令。
Stem使用格式:
stem(n,x)
2.2、Fft和ifft用于一维快速正逆傅里叶变换,其调用格式如下:
X=fft(x,N);
用于计算序列向量x的N点DFT。
默认N时fft函数自动按x的长度计算DFT。
当N为2的整数次幂,fft按基2的算法计算,否则用混合基算法。
Ifft调用格式相同。
即:
X=ifft(x,N)。
三 理论知识论述
离散傅里叶变换(DFT)是数字信号处理中最重要的数学工具之一,其实质是对有限长序列频谱的频谱化,即通过DFT使时域有限长序列与频域有限长序列相对应,从而在频率域用计算机进行信号处理。
快速傅里叶变换简称FFT,它并不是一种新的变化,而是离散傅里叶变换的一种快速算法,是为了减少DFT计算次数的一种快速有效的算法。
FFT算法基本可以分为两类:
按时间抽取的FFT(DIT-FFT)算法和按频率抽取的FFT(DIF-FFT)。
若N=2m,其中m为种数,这时候的FFT称为基2FFT。
按时间
MATLAB基础部分提供了fft,ifft,fft2和ifft2等快速计算傅里叶变换的函数,它使DFT的运算量提高了若干的数量级。
信号处理工具箱提供了czt,dct,idct,fftshift等有关的变换函数。
为了简化程序,后面的运用君直接调用这些函数。
四、MATLAB程序设计
(1)绘制单位冲激序列
,矩形序列
,三角波序列
,反三角波序列
,正弦序列
(取
),衰减的正弦序列
。
(2)对三角波序列
和反三角波序列
,作
点的FFT,观察比较它们的幅频特性,说明它们有什么异同。
并绘制出两序列及其它们的幅频特性曲线。
在
和
的尾部补零,作
点的FFT,观察它们的幅频特性发生了什么变化,分析说明原因。
N=16时,两者的频谱不同,因为此时再做周期延拓就不相同了。
在后面补领对于正三角波在N=8时是连续的,而反三角波在N=8有个突变,时域中出现了陡峭的地方,在频谱中频谱分量会增多。
通过N=8和N=20比较得知,通过在原序列的末端补零,增加了采样的点数,弱化了栅栏效应,但增多后的谱线形状是与时域信号的形状有关的,但补零不能增加分辨率。
三角波序列与反三角波序列FFT
有限长序列x(n)的FFT就是将x(n)进行周期延拓后的序列进行DFS变换,然后取主值序列,得到的就是X(K)。
x(n)的X(K)就是它的Z变换X(Z)在Z平面单位圆上N个等分点上的采样值。
下图是三角波序列与反三角序列8点以及16点的FFT变化图。
由图可以看出FFT变换具有对称性,幅频关于N/2偶对称。
三角波序列和反三角波序列8点的FFT相同,而16点的FFT不同。
这是因为三角波序列[1,2,3,4,4,3,2,1]以及反三角波序列[4,3,2,1,1,2,3,4]在不补零的情况下进行周期延拓得到的序列是一样的,所以得到的DFS是一样的,所以DFT也是一样的;但是在补零之后再周期延拓得到的序列就不一样,所以DFT也不一样了。
从图中还可以看到:
同一序列16点的FFT是在8点的FFT基础上在其相邻两点的中间内插了一个点。
我们知道x(n)的X(K)就是它的Z变换X(Z)在Z平面单位圆上N个等分点上的采样值。
同一序列的Z变换是一样的。
(3)对于正弦序列
,取数据长度
分别等于8,16,20,分别作
点FFT,观察它们的时域和幅频特性,说明它们的差别,简要说明原因。
由上图可知:
当N越大时,所求得的FFT的幅值就越密,包络曲线就越接近原函数的包络。
这是因为N与它的周期紧密相连,序列FFT的幅值是关于N/2对称的。
序列周期N=2*
/(
/4)=8。
在对序列进行M点FFT时,若取M为N的整数倍,则不会发生频谱泄露。
由于FFT具有对称性,而且正弦序列16点的时域图是8点的时域图的一个周期延拓,所以在进行FFT时得到的序列形状是一样的,只是增加了点数。
而20不是8的整数倍,所以在做20点FFT时,会发生频谱泄露现象。
(4)观察衰减的正弦序列
的时域和幅频特性,绘制出幅频特性曲线,改变采样频率
。
使
,观察此时的频谱的形状和谱峰出现的位置,说明产生此现象的原因。
采样我们知道是对信号进行时间上的量化,即采样后频谱发生变化。
结合我们所学的理论的知识和上图体现出不管是序列的时域还是幅频特性它们的图形都与采样周期相关联,时域的衰减长度及快慢与采样频率联系,fs越大其的衰减长度就越长衰减的也越慢,当fs是300是序列衰减长度是fs=1000的300/1000倍即衰减的速度是fs=1000的300/1000倍。
同时它的幅频特性也发生了变化,fs=300Hz的一个完整的幅频长度是fs=1000Hz的长度发的3/10倍,从上图我们可以看出在实际中我们不一定只能根据信号的宽度来选择滤波器,也可根据所得滤波器去去调整信号宽度减少信号的泄露。
五、课程设计发生的问题和心得体会
通过本次课程设计,发现自己对数字信号的知识不够扎实和充分,对离散傅里叶变换(DFT)的运用和扩展不够精通,以及没有正确使用快速傅里叶变换(FFT)的算法;由于对MATLAB的命令使用不够精炼和熟练,导致前期的准备进程缓慢。
在本次课程设计中,不但收获了知识,而且汲取了许多宝贵的经验,提高综合运用所学知识独立分析和解决问题的能力。
全面复习课程所学理论知识,巩固了离散傅里叶变换(DFT)的知识和使用FFT算法的技巧,将理论与实践很好地结合起来;熟练使用MATLAB高级语言进行编程实现。
(6)附录(居中)
(7)参考文献(居中)
【1】彭军,李宏主编.《信号与信息处理基础》.中国铁道出版社,2009
【2】高西全,丁玉美,阔永红编著.《数字信号处理----原理实现及应用》.电子工业出版社,2006
【3】王家文,王皓,刘海编著.《Matlab7.0编程基础》.机械工业出版社,2008
【4】刘顺兰,吴杰主编《数字信号处理》.2012
【5】唐向宏,岳恒立主编《MATLAB及在电子信息类》电子工业出版社
%代码:
%1.单位冲激序列
function[x,n]=impseq(n0,n1,n2)
n=n1:
n2;
x=[(n-n0)==0]%另外保存一个M文件,命名为impseq.m
[x,n]=impseq(0,-5,5);
subplot(321);
stem(n,x,'.')
title('单位冲激序列')
%矩形序列
n=-15:
15;
x=[zeros(1,5),ones(1,21),zeros(1,5)];
subplot(322);
stem(n,x,'.');
title('矩形序列')
%三角波序列
n1=0:
3;
y1=n1+1;
n2=4:
7;
y2=8-n2;
subplot(323);
stem([n1,n2],[y1,y2],'.');
title('三角波序列')
%反三角波序列
n1=0:
3;
y1=4-n1;
n2=4:
7;
y2=n2-3;
subplot(324);
stem([n1,n2],[y1,y2],'.');
title('反三角波序列')
%正弦序列
T=1/64;
n=0:
15;
t=n*T;
x=sin(16*pi*t);
subplot(325);
stem(n,x,'.');
title('正弦序列')
%衰减的正弦序列
A=50;a=100;f0=62.5;
T=1/1000;
n=1:
50;
x=A*exp(-1*a*n*T).*sin(2*pi*f0*n*T);
subplot(326);
stem(n,x,'.');
title('衰减的正弦序列')
%2对三角波序列和反三角波序列,作点的FFT,
%三角波序列
n1=0:
3;
y1=n1+1;
n2=4:
7;
y2=8-n2;
subplot(321);
stem([n1,n2],[y1,y2],'.');
title('三角波序列')
%反三角波序列
n1=0:
3;
y1=4-n1;
n2=4:
7;
y2=n2-3;
subplot(322);
stem([n1,n2],[y1,y2],'.');
title('反三角波序列')
%三角波序列
n1=0:
3;
y1=n1+1;
n2=4:
7;
y2=8-n2;
n=[n1n2];
y=[y1y2];
subplot(323);
stem(abs(fft(y,8)),'.');
title('N=8点的三角波序列幅频特性')
%反三角波序列
n1=0:
3;
y1=4-n1;
n2=4:
7;
y2=n2-3;
n=[n1n2];
y=[y1y2];
subplot(324);
stem(abs(fft(y,8)),'.');
title('N=8点的反三角波序列幅频特性')
%三角波序列
n1=0:
3;
y1=n1+1;
n2=4:
7;
y2=8-n2;
n=[n1n2];
y=[y1y2];
subplot(325);
stem(abs(fft(y,16)),'.');
title('N=16点的三角波序列幅频特性')
%反三角波序列
n1=0:
3;
y1=4-n1;
n2=4:
7;
y2=n2-3;
n=[n1n2];
y=[y1y2];
subplot(326);
stem(abs(fft(y,16)),'.');
title('N=16点的反三角波序列幅频特性')
%3.对于正弦序列,取数据长度分别等于8,16,20,分别作N点FFT
T=1/64;
n=0:
7;
t=n*T;
x1=sin(16*pi*t);
subplot(321);
stem(n,x1,'.');
title('N=8的正弦序列时域特性')
T=1/64;
n=0:
7;
t=n*T;
x2=sin(16*pi*t);
X2=fft(x2);
subplot(322);
stem(abs(fft(x2,8)),'.');
title('N=8的正弦序列频域特性')
T=1/64;
n1=0:
15;
t=n1*T;
x3=sin(16*pi*t);
subplot(323);
stem(n1,x3,'.');
title('N=16的正弦序列时域特性')
T=1/64;
n1=0:
15;
t=n1*T;
x4=sin(16*pi*t);
X4=fft(x4);
subplot(324);
stem(abs(fft(x4,16)),'.');
title('N=16的正弦序列频域特性')
T=1/64;
n2=0:
15;
t=n2*T;
x5=sin(16*pi*t);
subplot(325);
stem(n2,x5,'.');
title('N=20的正弦序列时域特性')
T=1/64;
n2=0:
19;
t=n2*T;
x6=sin(16*pi*t);
subplot(326);
stem(abs(fft(x6,20)),'.');
title('N=20的正弦序列频域特性')
%4.观察衰减的正弦序列的时域和幅频特性,绘制出幅频特性曲线,改变采样频率。
A=50;a=100;f0=62.5;
T=1/1000;
n=1:
50;
t=n*T;
x1=A*exp(-1*a*n*T).*sin(2*pi*f0*n*T);
subplot(221);
stem(n,x1,'.');
title('衰减的正弦序列时域特性')
A=50;a=100;f0=62.5;
T=1/1000;
n=1:
50;
t=n*T;
x2=A*exp(-1*a*n*T).*sin(2*pi*f0*n*T);
X2=fft(x2);
subplot(222);
stem(n,X2,'.');
title('衰减的正弦序列幅频特性')
A=50;a=100;f0=62.5;
T=1/300;
n=1:
50;
t=n*T;
x3=A*exp(-1*a*n*T).*sin(2*pi*f0*n*T);
X3=fft(x3);
subplot(223);
stem(n,X3,'.');
title('fs=300hz衰减的正弦序列频谱')
A=50;a=100;f0=62.5;
T=1/1000;
n=1:
50;
t=n*T;
x3=A*exp(-1*a*n*T).*sin(2*pi*f0*n*T);
X3=fft(x3);
subplot(224);
stem(n,X3,'.');
title('fs=100hz衰减的正弦序列频谱')
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)