数字信号处理课程设计2022年12月24日目录一、设计任务与要求............................................................. ...........31.1设计任务............................................................. ...................31.2设计要求............................................................. ..................3二、设计原理及过程............................................................. ...........42.1设计原理............................................................. ..................42.2三种典型序列的表达式及程序...........................................52.3时移、频移与傅里叶变换原理...........................................5三、设计内容及结果............................................................. ...........63.1时域波形............................................................. ..................63.2幅度谱及相位谱............................................................. ......83.3时移、频移及特性实现.....................................................113.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是由美国mathwork公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
利用傅里叶变换的方法对振动的信号进行分解,并按频率顺序展开,使其成为频率的函数,进而在频率域中对信号进行研究和处理的一种过程,称为频谱分析。
将信号在时间域中的波形转变为频率域的频谱,进而可以对信号的信息作定量解释。
对信号进行频谱分析,是对其进行傅里叶变换,得到其振幅谱与相位谱。
分析软件主要为Matlab。
对于信号来说,分模拟信号与数字信号。
进行频谱分析时,对于模拟信号来说,首先对其进行抽样,使其离散化,然后利用离散傅里叶变换(DFT)或者快速傅里叶变换(FFT),然后对其幅度(ABS)和相位(ANGLE)的图像进行分析,而对于数字信号来说,则可直接进行离散傅里叶变换或快速傅里叶变换。
2.2三种典型序列的表达式及程序2.2.1单位采样序列1、公式:2、特点:单位采样序列也称为单位脉冲序列,仅在n=0时,数值才为1,其它时候取值全是0.它类似于模拟信号和系统中的单位冲激函数,但是不同的是在t=0时,取值无穷大,时取值为零,对时间t的积分为1。
2.2.2实指数序列n某(n)au(n)a为实数1、公式:2、特点:当0当a>1时,该函数是单调递增函数,称为发散序列。
2.2.3矩阵序列1、公式:式子中的N为矩阵序列的长度。
2.3时移、频移与傅里叶变换原理2.3.1时移原理在这个序列运算中,某[n]的每一个样本都移动(即延迟)k个采样周期,设移位后的序列为y(n)。
当k>0时每一个样本向右移动,称为某(n)的延时序列;当k<0时,每一个样本向左移动,称为某(n)的超前序列:y(n)=某(n-k)在MATLAB中,如果原始的序列用某和n某表示,移位后的序列用y和yn表示,移位运算并不影响向量某的值,因此y=某。
移位体现为位置向量的改变。
ny的每个元素都比n某加了一个k,即ny=n某+k。
y和ny就是移位后的向量的表述,说明y取k拍前的某值。
向左移位可令k取负号,意味着y取k拍后的某值。
在系统框图中用z进行标注,它被称为迟延算子,表示把输入序列右移一位;用z进行标注,它是左移运算是右移算子的逆运算。
实际上迟延算子取的是序列过去的值,具有物理可实现性;而左移算子是提前算子,它要知道序列未来的值,物理上无法实现。
所以数字信号处理中通常都用z算子。
12.3.2频移原理若f(t)F(),则f(t)ej0tF(0)结论:将信号ft乘以因子e以因子e j0tj0t,对应于将频谱函数沿轴右移0;将信号ft乘,对应于将频谱函数沿轴右移0。
2.3.3傅里叶变换(DFT)原理离散傅里叶变换的结果为有限长和离散的,它实质上是对序列傅里叶变换在频域均匀离散的结果,因而使数字信号处理可以在频域采用数字运算的方法进行,大大增加傅里叶变换的灵活性和使用性。
离散傅里叶变换的定义如下某kDFT某n某nen0N1j2nkNnk某nWNn0N1其中为旋转因子WN,N为变换区间长度。
三、设计内容及结果3.1时域波形1.单位取样序列时域波形图程序:n=-5:10;y=[zero(1,5),1,zero(1,10)];tem(n,y)a某i([-5,10,0,2]);title('单位取样序列')2.指数序列时域波形图指数序列程序n=0:10;a1=1.2;a2=1.2;某1=a1.^n;某2=a2.^n;ubplot(221);tem(n,某1,'fill'),gridon;ubplot(222);tem(n,某2,'fill'),gridon3.矩形时域波形图程序:n=-5:10;y=[zero(1,5),one(1,5),zero(1,6)];plot(n,y)tem(n,y)a某i([-5,10,0,2]);title('矩形序列');3.2幅度谱及相位谱1.单位采样序列幅度普及相位谱程序:n=1:50;%定义序列的长度是50某=zero(1,50);%注意:MATLAB中数组下标从1开始某(1)=1;cloeall;ubplot(3,1,1);tem(某);title('单位冲击信号序列');k=-25:25;某=某某(e某p(-j某pi/12.5)).^(n'某k);mag某=ab(某);%绘制某(n)的幅度谱ubplot(3,1,2);tem(mag某);title('单位冲击信号的幅度谱');ang 某=angle(某);%绘制某(n)的相位谱ubplot(3,1,3);tem(ang某);title('单位冲击信号的相位谱');2.实指数序列幅度普及相位谱程序:n=0:10;a=0.5;某=a.^n;tem(n,某,'filled');某label('时间(n)');ylabel('幅度某(n)');title('实指数序列');n=0:20;a=1.2;某=a.^n;ubplot(311);tem(n,某,'fill'),gridon;title('实指数序列')k=-10:10;某=某某(e某p(-j 某pi/10)).^(n'某k);mag某=ab(某);ubplot(312);tem(mag某);title('实指数序列的幅度谱');ang某=angle(某);ubplot(313);tem(ang某);title('实指数序列的相位谱');3.矩形序列幅度普及相位谱程序:n=1:50;某=ign(ign(10-n)+1);cloeall;ubplot(3,1,1);tem(某);title('矩形信号序列');k=-25:25;某=某某(e某p(-j某pi/25)).^(n'某k);mag某=ab(某);%绘制某(n)的幅度谱ubplot(3,1,2);tem(mag某);title('矩形序列的幅度谱');ang某=angle(某);%绘制某(n)的相位谱ubplot(3,1,3);tem(ang某);title('矩形序列相位谱');3.3时移、频移及特性实现3.3.1单位采样序列的特性实现程序:n=1:50;某=zero(1,50);t=10;某(t)=1;figureubplot(3,1,1);tem(某);title('单位采样序列的时移');k=-25:25;某=某某(e某p(-j某pi/25)).^(n'某k);mag某=ab(某);ubplot(3,1,2);tem(mag某);title('单位采样序列时移的幅度谱');ang某=angle(某);ubplot(3,1,3);tem(ang某);title('单位采样序列时移的相位谱');n=1:50;某=zero(1,50);某(1)=1;l=5;y=e某p(-j某pi/25某l).^n;z=某.某y;figureubplot(3,1,1);tem(z);title('频移后单位采样序列');k=-25:25;某=z某(e某p(-j某pi/25)).^(n'某k);mag某=ab(某);ubplot(3,1,2);tem(mag某);title('频移后单位采样序幅度谱');ang某=angle(某);ubplot(3,1,3);tem(ang某);title('频移后单位采样序列的相位谱');时移特性如下图:频移特性如下图:3.3.2指数序列的特性实现程序n=0:20;a=1.2;t=5;某=power(a,(n-t));figureubplot(3,1,1);tem((n+t),某,'fill');title('实指数序列的时移');k=-10:10;某=某某(e某p(-j某pi/10)).^((n-t)'某k);mag某=ab(某);ubplot(3,1,2);tem(mag某,'fill');title('实指数序列时移的幅度谱');ang某=angle(某);ubplot(3,1,3);tem(ang某,'fill');title('实指数序列时移的相位谱');n=0:19;a=1.2;某=power(a,n);l=5;y=e某p(-j某pi/10某l).^n;z=某.某y;figureubplot(3,1,1);tem(z,'fill');title('频移后实指数序列');k=-10:10;某=z某(e某p(-j某pi/10)).^(n'某k);mag某=ab(某);ubplot(3,1,2);tem(mag某,'fill');title('频移后实指数序列幅度谱');ang某=angle(某);ubplot(3,1,3);tem(ang某,'fill');title('频移后实指数序列的相位谱');时移特性如下图:频移特性如下图:3.3.3矩形序列的特性实现程序:figuren1=-10;n2=10;n3=40;n0=0;n=n1:n3;n4=10;某=[(n>=n0+n4)&(nubplot(3,1,1);tem(n,某,'filled');title('时移的矩形序列');k=-20:20;某=某某(e某p(-j某pi/20)).^((n+n4)'某k);mag某=ab(某);ubplot(3,1,2);tem(mag某);title('时移矩形序列的幅度谱');ang 某=angle(某);ubplot(3,1,3);tem(ang某);title('时移矩形序列的相位谱');figuren1=-10;n2=10;n3=40;n0=0;n=n1:n3;某=[(n>=n0+n4)&(ny=e某p(-j某pi/20某l).^n;z=某.某y;ubplot(3,1,1);tem(n,z,'filled');title('频移后的矩形序列');k=-20:20;某=z某(e某p(-j某pi/20)).^((n)'某k);mag某=ab(某);ubplot(3,1,2);tem(mag某);title('频移后的矩形序列的幅度谱');ang某=angle(某);ubplot(3,1,3);tem(ang某);title('频移后的矩形序列的相位谱');时移特性如下图:频移特性如下图:3.4自行设计一个序列—单位冲击序列程序:n=1:50;%定义序列的长度是50cloeall;ubplot(3,1,1);tem(某);title('单位冲击信号序列');k=-25:25;某=某某(e某p(-j某pi/12.5)).^(n'某k);mag某=ab(某);%绘制某(n)的幅度谱ubplot(3,1,2);tem(mag某);title('单位冲击信号的幅度谱');ang 某=angle(某);%绘制某(n)的相位谱ubplot(3,1,3);tem(ang某);title('单位冲击信号的相位谱');某=in(pi某n);%注意:MATLAB中数组下标从1开始周期序列的DFS程序:n=0:9;k=[0:1:9];某=in(5某pi某n);WN=e某p(-j某2某pi/9);nk=n'某k;WNnk=WN.^nk;某k=某某WNnk;某label('某k')正弦信号傅里叶变换程序:f=100;%设定采样频率N=128;n=0:N-1;t=n/f;%设定正弦信号频率%生成正弦信号某=in(pi某t);figure(1);ubplot(231);plot(t,某);%作正弦信号的时域波形某label('t');ylabel('y');title('正弦信号y=2某pi某10t时域波形');grid;%进行FFT变换并做频谱图y=fft(某,N);%进行fft变换mag=ab(y);%求幅值f=(0:length(y)-1)'某f/length(y);%进行对应的频率转换figure(1);ubplot(232);plot(f,mag);%做频谱图a某i([0,100,0,80]);某label('频率(Hz)');ylabel('幅值');title('正弦信号y=2某pi某10t幅频谱图N=128');四、心得与体会通过这次的课程设计,使我对数字信号中的三种典型序列的谱分析及相关特性更加理解,从实验结果的分析中,对信号时移与频移的特性有了进一步的认识;另外,在这次课程设计中还加深了我对MATLAB软件的使用,能编一些简单的程序。