为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

信号采样与重建的编程实现

2019-02-15 47页 doc 352KB 30阅读

用户头像

is_554469

暂无简介

举报
信号采样与重建的编程实现 学 号: 0121309341136     课程设计 课程名称 信号分析与处理课程设计 题目 信号采样与重建的编程实现 学院 信息工程学院 专业 电子信息工程 班级 电信1305班 姓名 李晓月 指导教师 祝立华     2016 年 1 月 8 日             课程设计任务书 课程设计名称:信号分析与处理课程设计 课程设计题目:信号采样与重建的编程实现 初始条件: 1. Matlab软件; 2. 课程设计辅导资料:“...
信号采样与重建的编程实现
学 号: 0121309341136     课程 课程名称 信号分析与处理课程设计 题目 信号采样与重建的编程实现 学院 信息工程学院 专业 电子信息工程 班级 电信1305班 姓名 李晓月 指导教师 祝立华     2016 年 1 月 8 日             课程设计任务书 课程设计名称:信号分析与处理课程设计 课程设计题目:信号采样与重建的编程实现 初始条件: 1. Matlab软件; 2. 课程设计辅导资料:“Matlab语言基础及使用入门”、“信号与系统”、“数字信号处理原理与实现”、“Matlab及在电子信息课程中的应用”等; 3. 先修课程:信号与系统、数字信号处理、Matlab应用实践及信号处理类课程等。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1. 课程设计时间:1周; 2. 课程设计内容:信号采样与重建的编程实现,具体包括:连续信号的时域采样、频谱混叠分析、由离散序列恢复模拟信号等; 3. 本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和,按要求进行实验演示和答辩等; 4. 课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: 1 目录; 2 与设计题目相关的理论分析、归纳和总结; 3 与设计内容相关的原理分析、建模、推导、可行性分析; 4 程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; 5 课程设计的心得体会(至少500字); 6 参考文献(不少于5篇); 7 其它必要内容等。 时间安排:1周 附——具体设计内容: 1. 已知 ,计算并图示 及其幅频特性函数 ;分别以采样频率 对 进行等间隔抽样,得到 为采样周期;计算并图示三种采样频率下的采样信号 及其幅频特性函数 。观察 的周期性、周期以及频谱混叠程度与 的关系。 2. 用时域内插公式 (其中 )模拟用理想低通滤波器恢复 的过程,观察恢复波形,计算出最大恢复误差。其中 和 同上题。采样频率 取400 及1000 两种作比较。 摘要 随着信息科学和计算机技术的日新月异,数字信号处理的理论和应用得到了飞跃式发展。作为研究数字信号与系统基本理论和方法的数字信号,已经形成一门独立的学科体系。处理数字信号是用数字序列表示的信号,数字信号处理就是通过计算机或专用处理设备,用数值计算等数字方式对数字序列进行各种处理,将信号变换成符合需要的某种形式。 本次信号分析与处理课程设计就是利用数字信号处理的理论以及Matlab软件的应用相结合来完成。课程设计题目是信号采样与重建的编程实现,具体包括:连续信号的时域采样、频谱混叠分析、由离散序列恢复模拟信号等。先产生一个连续时间信号并生成其频谱,然后对该连续时间信号进行抽样,并对采样后的频谱进行分析。原连续时间信号的频谱由于无法实现真正的连续,所以通过扩大采样点的数目来代替,理论上当采样点数无穷多的时候即可实现连续,基于此尽可能增加采样点数并以此来产生连续信号的频谱。信号采样过程中,通过采样点的不同控制采样频率实现大于或小于二倍最高连续信号的频率,从而可以很好的验证采样定理。 关键词:信号采样; 信号重建; MATLAB Abstract As information science and computer technology advances, the theory and application of digital signal processing has been leaps and bounds. Research as a digital signal and digital signal systems basic theory and method, has formed an independent disciplinary system. The analysis and design is the use of signal processing course of digital signal processing theory and Matlab software applications combine to complete. Curriculum design topic is programming signal sampling and reconstruction implementation, including: time-domain samples continuous signal, aliasing analysis and restore the analog signal by a discrete sequence and so on. To generate a continuous-time signal and its spectrum is generated, and then the sampled continuous time signal, and the spectrum after sampling for analysis. Original continuous time signal spectrum inability to achieve true continuous, so by expanding the number of sampling points to replace, in theory, an infinite number of points when the sampling time can be realized in a row, based on this increase in the number of samples as possible and in order to produce a continuous signal spectrum. Signal sampling process, by sampling points to achieve different control sampling frequency is greater than or less than twice the highest frequency of a continuous signal, which can be a good verification sampling theorem. Key Words: Signal sampling;Signalreconstruction;matlab 目录 第1章绪论    1 第2章 Matlab软件的介绍    2 第3章原理——连续时间信号的采样    4 3.1 信号的采样    5 3.2 采样定理    6 3.3 信号的恢复    8 第4章时域采样频率与频谱混叠    10 4.1建模及推导    10 4.2 Matlab程序    11 4.3 Matlab程序运行结果    13 4.3.1模拟信号及幅频特性函数    13 4.3.2采样序列及幅频特性函数    14 4.4运行结果分析    17 第5章由离散序列恢复模拟信号    18 5.1建模及推导    18 5.2 Matlab程序    20 5.3 Matlab程序运行结果    21 5.4运行结果分析    24 第6章心得体会    26 参考文献    27 附录    28 致谢辞    31 本科生课程设计成绩评定表    32 第1章 绪论 数字信号处理是一门理论与实践紧密结合的课程。做大量的习题和上机实验,有助于进一步了解和巩固理论知识,还有助于提高分析和解决实际问题的能力。过去用其他算法语言,实验程序复杂,在有限的实验课时内所做的实验课时太少。Matlab强大的运算和图形显示功能,可使数字信号处理上机实验效率大大提高。他别是它的频谱分析和滤波器分析与设计功能很强,使数字信号处理工作变得十分简单、直观。 对于Matlab在数字信号处理中的应用主要包括以下内容:数字信号处理基础、数字信号变换技术、窗函数、IIR数字滤波器的设计、FIR数字滤波器的设计、功率谱估计、小波分析在信号处理中的应用以及信号处理的图形用户界面工具。 本实验设计的题目是:信号的采样与恢复。通过产生一个连续时间信号并生成其频谱,然后对该连续信号抽样,并对采样后的频谱进行分析,实验中,原连续信号的频谱由于无法实现真正的连续,所以通过扩大采样点的数目来代替,理论上当采样点数无穷多的时候即可实现连续,基于此尽可能增加采样点数并以此来产生连续信号的频谱。信号采样过程中,通过采样点的不同控制采样频率实现大于或小于二倍最高连续信号的频率,从而可以很好的验证采样定理。 第2章 Matlab软件的介绍 MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩形计算、视化以线性动态线性系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多领域一面的解决,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。Matlab的图标如图2-1所示。 图2-1Matlab图标 MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。经过不断完善MATLAB已经发展成为适合多学科,多种工作平台的功能强大大大型软件。成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具。MATLAB的工作界面如图2-2所示。 图2-2Matlab的工作界面 MATLAB具有以下主要的语言特点: (1)语言简洁紧凑,使用方便灵活,库函数极其丰富。 (2)运算符丰富。 (3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。 (4)程序限制不严格,程序设计自由度大。 (5)MATLAB的图形功能强大。 Matlab的优势特点如下: (1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; (2)具有完备的图形处理功能,实现计算结果和编程的可视化; (3)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; (4)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。 同样的,Matlab也具有一些不可避免的劣势缺点:它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。 第3章原理——连续时间信号的采样 时域离散时间信号是指信号在时间上是离散的,即只在某些不连续的规定时刻给出信号的函数值,而在其他时间没有定义。时域离散时间信号可以从时域连续信号进行采样得到,也就是在采样瞬间保留原来连续信号的幅度值,这种信号称为采样信号或抽样信号,它的特点是在时间上是离散的,而在幅度上是具有无限精度的连续值。为了对信号进行数字化处理,必须按要求对其幅度的精度进行有限位量化,以便被数字系统所接受,这种时间上离散、幅度上被量化的信号成为数字信号。只有数字信号才能用数字系统进行各种处理,以达到分析、识别或使用的目的。 连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点以外,信号都有确定的值与之对应。严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。时域对连续时间信号进行采样,是给它乘以一个采样脉冲序列,就可以得到采样点上的样本值,信号被采样前后在频域的变化,可以通过时域频域的对应关系分别求得了采样信号的频谱。 在一定条件下,一个连续时间信号完全可以用该信号在等时间间隔上的瞬时值来表示,并且可以用这些样本值把信号完全恢复过来。这样,抽样定理为连续时间信号与离散时间信号的相互转换提供了理论依据。通过观察采样信号的频谱,发现它只是原信号频谱的线性重复搬移,只要给它乘以一个门函数,就可以在频域恢复原信号的频谱,在时域是否也能恢复原信号时,利用频域时域的对称关系,得到了信号。 3.1信号的采样 离散时间信号通常是由连续时间信号经周期采样得到的。完成采样功能的器件成为采样器,图3-1所示为采样器的示意图。图中xa(t)表示模拟信号,xa(nT)表示采样信号,T为采样周期,n=0,1,2……。一般可以把采样器视为一个每隔T秒闭合一次的电子开关S。在理想情况下,开关闭合时间τ满足τ?T。实际采样过程可视为脉冲调幅过程,xa(t)为调制信号,被调脉冲载波p(t)是周期为T、脉宽为τ的周期脉冲串,当τ→0时的理想采样情况如图3-2所示,它是实际采样的一种科学的、本质的抽象,同时可使数学推导得到简化。下面主要讨论理想采样。 取样器 xa(t)    xa(nT) 图3-1采样器示意图 一个理想采样器可以看成是一个载波为理想单位脉冲序列 的幅值调制器,即理想采样器的输出信号 ,是连续输入信号 调制在载波 上的结果,如图3-2所示。 图3-2连续时间信号的理想采样 用数学表达式描述上述调制过程,则有 (3.1) 理想单位脉冲序列 可以表示为 (3.2) 其中 是出现在时刻 ,强度为1的单位脉冲序列。由于 的数值仅在采样瞬时才有意义,同时,假设 (3.3) 所以 又可表示为 (3.4) 3.2采样定理 模拟信号经过 (A/D) 变换转换为数字信号的过程称为采样,信号采样后其频谱产生了周期延拓,每隔一个采样频率 ,重复出现一次。为保证采样后信号的频谱形状不失真,采样频率必须大于信号中最高频率成分的两倍,这称之为采样定理。时域采样定理从采样信号 恢复原信号 必需满足两个条件: (1) 必须是带限信号,其频谱函数在 > 各处为零(对信号的要求,即只有带限信号才能适用采样定理); (2)取样频率不能过低,必须 >2 (或 )(对取样频率的要求,即取样频率要足够大,采得的样值要足够多,才能恢复原信号)。 如果采样频率 大于或等于 ,即 ( 为连续信号 的有限频谱),则采样离散信号 能无失真地恢复到原来的连续信号 。一个频谱在区间(- , )以外为零的频带有限信号 ,可唯一地由其在均匀间隔 上的样点值 所确定。根据时域与频域的对称性,可以由时域采样定理直接推出频域采样定理。一个时间受限信号 ,它集中在 的时间范围内,则该信号的频谱 在频域中以间隔为 的冲激序列进行采样,采样后的频谱 可以惟一表示原信号的条件为重复周期 。采样信号 的频谱是原信号频谱 的周期性重复,它每隔 重复出现一次。当 时,不会出现混叠现象,原信号的频谱的形状不会发生变化,从而能从采样信号 中恢复原信号 。(注: 的含义是:采样频率大于等于信号最高频率的2倍;这里的“不混叠”意味着信号频谱没有被破坏,也就为后面恢复原信号提供了可能) 图3-3等抽样频率时的抽样信号及频谱(不混叠) 图3-4高抽样频率时的抽样信号及频谱(不混叠) 图3-5低抽样频率时的抽样信号及频谱(混叠) 3.3信号的恢复 用时域内插公式 (其中 )(3.5) 完成信号的重建。如下图3-6所示为采样信号的恢复示意图。 图3-6采样信号的恢复 由图3-5可以得知,如果采样信号的频谱不存在混叠,那么 ,                 (3.6) 这样,让采样信号通过一个截止频率为 的理想低通滤波器 (3.7) 下面讨论如何用采样值来恢复原来的模拟信号 ,即 通过 系统的响应。理想低通滤波器的冲激响应为 (3.8) 由 和 的卷积积分,可以求得理想低通滤波器的输出为 (3.9) 从采样信号 恢复原信号 的采样内插公式,内插函数为 (3.10) 第4章 时域采样频率与频谱混叠 已知 ,计算并图示 及其幅频特性函数 ;分别以采样频率 对 进行等间隔抽样,得到 为采样周期;计算并图示三种采样频率下的采样信号 及其幅频特性函数 。观察 的周期性、周期以及频谱混叠程度与 的关系。 4.1建模及推导 对 进行等间隔采样,得到 , 为采样周期。如果, ,则 (4.1) 由以上关系式可见,采样信号的频谱函数是原模拟信号频谱函数的周期延拓,延拓周期为 。如果以频率 为自变量( ),则以采样频率 为周期延拓。对频带限于 的模拟信号 ,只有当 时,采样后 才不会发生频谱混叠失真。这就是著名的采样定理。 严格的讲,Matlab无法计算连续函数 。但工程上认为,当 足够大时,频谱混叠可忽略不计,从而可对采样序列进行傅里叶变换,得到 。 程序分别设定4种采样频率 =10kHz,1kHz,400Hz,200Hz,对 进行采样,得到采样序列 , , , ,画出其频谱图。采样时间区间为0.1秒。为了便于比较,画出了幅度归一化的幅频曲线。 4.2 Matlab程序 1.计算并图示 及其幅频特性函数的程序代码 clear; close all; fs=10000;fs1=1000;fs2=400;fs3=200;%设置四种采样频率 t=0:1/fs:0.1;                        %采集信号长度为0.1秒 A=444.128;a=50*sqrt(2)*pi;b=a; xa=exp(-a*t).*sin(b*t); k=0:511;f=fs*k/512;                  %由wk=2 k/512=2 fT求得模拟频率f Xa=dtft(xa,2*pi*k/512);            %近似模拟信号频谱 T1=1/fs1;t1=0:T1:0.1;              %采集信号长度为0.1秒 x1=A*exp(-a.*t1).*sin(b*t1);      %1kHz采样序列x1(n) X1=dtft(x1, 2*pi*k/512);            %x1(n)的512点dtft T2=1/fs2;t2=0:T2:0.1;              %采集信号长度为0.1秒 x2=A*exp(-a.*t2).*sin(b.*t2);      %400Hz采样序列x2(n) X2=dtft(x2,2*pi*k/512);            %x2(n)的512点dtft T3=1/fs3;t3=0:T3:0.1;              %采集信号长度为0.1秒 x3=A*exp(-a.*t3).*sin(b.*t3);      %200Hz采样序列x3(n) X3=dtft(x3, 2*pi*k/512);            %x3(n)的512点dtft subplot(1,2,1);plot(t,xa);        %画出原始波形 axis([0,max(t),min(xa), max(xa)]); title('电信1305班模拟信号'); xlabel('t(s)');ylabel('Xa(a)');line([0,max(t)],[0,0]) subplot(1,2,2);plot(f,abs(Xa)/max(abs(Xa))); title('模拟信号的幅度频谱'); axis([0,500,0,1]); xlabel('f(Hz)');ylabel('|Xa(jf)|'); 2.计算并图示三种采样频率下的采样信号及其幅频特性函数的程序代码 clear; close all; fs=10000;fs1=1000;fs2=400;fs3=200;%设置四种采样频率 t=0:1/fs:0.1;                        %采集信号长度为0.1秒 A=444.128;a=50*sqrt(2)*pi;b=a; xa=exp(-a*t).*sin(b*t); k=0:511;f=fs*k/512;                  %由wk=2 k/512=2 fT求得模拟频率f Xa=dtft(xa,2*pi*k/512);            %近似模拟信号频谱 T1=1/fs1;t1=0:T1:0.1;              %采集信号长度为0.1秒 x1=A*exp(-a.*t1).*sin(b*t1);      %1kHz采样序列x1(n) X1=dtft(x1, 2*pi*k/512);            %x1(n)的512点dtft T2=1/fs2;t2=0:T2:0.1;              %采集信号长度为0.1秒 x2=A*exp(-a.*t2).*sin(b.*t2);      %400Hz采样序列x2(n) X2=dtft(x2,2*pi*k/512);            %x2(n)的512点dtft T3=1/fs3;t3=0:T3:0.1;              %采集信号长度为0.1秒 x3=A*exp(-a.*t3).*sin(b.*t3);      %200Hz采样序列x3(n) X3=dtft(x3, 2*pi*k/512);            %x3(n)的512点dtft subplot(3,2,1);plot(t1,x1);        %画出三个不同频率的模拟信号及其幅度谱 axis([0,max(t1),min(x1), max(x1)]); title('电信1305 李晓月采样序列x1(n)(fs1=1000Hz)'); xlabel('n');ylabel('x1(n)'); subplot(3,2,2);plot(f1,abs(X1)/max(abs(X1))); title('x1(n)的幅度谱 '); axis([0,1000,0,1]); xlabel('f(Hz)');ylabel('|x1(jf)|'); subplot(3,2,3);plot(t2,x2); axis([0,max(t2),min(x2), max(x2)]); title('采样序列x2(n)(fs1=400Hz)'); xlabel('n');ylabel('x2(n)'); subplot(3,2,4);plot(f2,abs(X2)/max(abs(X2))); title('x2(n)的幅度谱'); axis([0,400,0,1]); xlabel('f(Hz)');ylabel('|x2(jf)|'); subplot(3,2,5);plot(t3,x3); axis([0,max(t3),min(x3), max(x3)]); title('采样序列x3(n)(fs1=200Hz)'); xlabel('n');ylabel('x3(n)'); subplot(3,2,6);plot(f3,abs(X3)/max(abs(X3))); title('x3(n)的幅度谱 '); axis([0,200,0,1]); xlabel('f(Hz)');ylabel('|x3(jf)|'); 4.3 Matlab程序运行结果 4.3.1模拟信号及幅频特性函数 图4.1 的连续时间信号和离散时间信号 图4.2模拟信号及其幅频特性函数 4.3.2采样序列及幅频特性函数 图4.3三种采样序列及幅频特性函数 图4.4 200Hz采样序列幅度谱 图4.4 400Hz采样序列幅度谱 图4.4 1000Hz采样序列幅度谱 4.4运行结果分析 1、由程序运行结果波形图可以得知,当 500Hz时, 的值很小。所以., =1kHz的采样序列 的频谱混叠很小; =400Hz的采样序列 的频谱混叠较大; =200Hz的采样序列 的频谱混叠最严重。 可以得出随着采样频率的减小,混叠现象加大。 =1kHz时幅度谱没有失真; =400Hz 400Hz时有横线,产生轻微失真; =200Hz时横线加长,失真加大。 说明采样频率越大,失真越小,当频率小于基带信号频率的2倍时发生混叠现象,失真很大,当频率远大于基带信号频率的2倍时几乎没有失真。 2、由图形可知, , , 均以相应的采样频率(1kHz,400Hz,200Hz)为周期。 第5章 由离散序列恢复模拟信号 用时域内插公式 (其中 )模拟用理想低通滤波器恢复 的过程,观察恢复波形,计算出最大恢复误差。其中 和 同上题。采样频率 取400 及1000 两种作比较。 5.1建模及推导 所谓模拟信号恢复(或重构)就是根据离散点的采样序列 估算出采样点之间的模拟信号的值。因此, 应是一个连续时间函数。Matlab不能产生连续函数。但可以把数组 取得足够密,使在一个采样周期T中,插入m个点,也即使 ,就可以近似地将 看作连续波性。 根据上述内插公式,在做Matlab实现时,设定一个ti值求 的问题,可归结为一个行向量 和一个同长的由 构成的列向量 相乘,即 = ,这里面已包括了求和运算,和前面求频谱的算法非常相似。对于很多个ti,既可以用for循环,也可以把t作为行向量代入,利用Matlab元素群运算的规则,一次求出全部的 。在t-n’T中,t设为行向量,n’T为列向量。我们的目的是把它构成一个行数与n同长而列数与t同长的矩阵,因此,要把两项分别扩展成这样的矩阵。这只要把t右乘列向量ones(length(n),1),把n’T左乘行向量ones(1,length(t))即可。 所以,只要正确设定t向量和n向量,设t向量长M,n=1:N-1,就可以生成t-n’T矩阵,把它命名为TNM,用Matlab语句表示为: TNM=ones(length(n),1)t-n’*T*ones(1,length(t))              (5.1) 其运算结果为如下矩阵 (5.2) 因此,Matlab中内插公式可简化为 (5.3) 用sinc函数内插时 (5.4) G是一个与TNM同阶的矩阵。N为序列 的长度,M为t的点数,通常有 (5.5) 由此可以编写本题目中用 和 重构 的程序。 5.2 Matlab程序 在采样频率分别为400及1000时恢复 并计算最大恢复误差的程序代码 clear; close all; A=444.128;a=50*sqrt(2)*pi;b=a; for k=1:2 if k==1 Fs=400; elseif k==2 Fs=1000;end T=1/Fs;dt=T/3;%每个采样间隔T上g(t)取三个样点 Tp=0.03;%重构时间区间为[0,0.03s] t=0:dt:Tp;%生成序列t n=0:dt/T;%生成序列n TMN=ones(length(n),1)*t-n'*T*ones(1,length(t));%生成TNM矩阵 x=A*exp(-a*n*T).*sin(b*n*T);%生成模拟信号采样序列x(n) xa=x*sinc(Fs*TMN);%内插公式 subplot(2,1,k);plot(t,xa);hold on axis([0,max(t),min(xa)-10,max(xa)+10]); st1=sprintf('电信1305李晓月由Fs=%d',Fs);%生成标注字符串左端,含变动部分 st2='Hz的采样序列x(n)重构的信号';%生成标注字符串右端 st=[st1,st2];title(st)%拼装成一个字符串并显示在标题上 ylabel('xa(t)'); xo=A*exp(-a*t).*sin(b*t);%以插值频率对原始模拟信号采样 stem(t,xo,'.');line([0,max(t)],[0,0]) emax2=max(abs(xa-xo))%求插值结果与原数据的差 end 5.3 Matlab程序运行结果 图5.1用sinc函数内插重构信号波形 图5.2 400Hz的采样序列重构信号过程 图5.3 1000Hz的采样序列重构信号过程 5.4运行结果分析 图5.4输出最大恢复(重构)误差 由图片可知,输出最大恢复(重构)误差如下 emx2=27.7015 emx1=9.9436 内插结果如图5-1中的连续曲线所示,图中的离散序列是原始模拟信号 的采样真值。从图5-1和最大恢复误差(emx2,emx1)中容易看出, 时的采样序列 内插重构的信号误差比 时小得多。可见,误差主要由频率混叠失真引起。当然,采样序列 的样本数较少也会引起误差增大。另外, 变化愈缓慢处误差愈小。 由于内插函数 的采样间隔 为 的采样间隔T的三分之一(即T=3 ),所以,不难验证,误差数组 每隔两点就出现一次零。即在这些点上,离散序列原有值 等于插值序列 的值,与时域内插理论想吻合。 由运行结果可知,频率越大误差越小,根据奈奎斯特采样定理,当采样频率大于2倍的基带频率时不会发生混叠,信号重构误差会随着频率的增大而减小。 小于基带频率的二倍,故产生误差较大,而 时误差就变得很小,一般采样频率为基带频率的3~4倍即可。 第6章 心得体会 本次课程设计内容丰富,涉及的知识面较广。在设计前期,通过查找资料为设计准备,使我对所学专业方面的许多知识又温习了一遍,许多以前很模糊、很孤立的部分知识通过这次设计得以贯穿,而且掌握得更加地稳固了;此外,通过这次课程设计,在软件编程方面,使我了解到了自己的许多不足之处,通过查找参考资料逐渐熟悉了以前有关于MATLAB的编程知识。 在之前数字信号处理的学习以及完成实验的过程中,已经使用过MATLAB,对其有了一些基础的了解和认识。通过这次的课程设计使我进一步了解了信号的产生,采样及频谱分析的方法。以及其中产生信号和绘制信号的基本命令和一些基础编程语言。让我感受到只有在了解课本知识的前提下,才能更好的应用这个工具,并且熟练的应用MATLAB也可以很好的加深我对课程的理解,方便我的思维。这次课程设计使我了解了MATLAB的使用方法,提高了自己的分析和动手实践能力。同时我相信,进一步加强对MATLAB的学习与研究对我今后的学习将会起到很大的帮助。 但在设计过程中也出现了不少问题,设计前期在利用MATLAB软件工具对程序进行编译时,由于其中有些标点符号问题。除了这些之外,还有编程上的逻辑问题,但最终都一个模块一个模块认真分析,最终解决了问题,将模块的程序连在一起,最终结果可以成功运行并仿真出波形图。 通过这次课程设计,我不仅加深了对数字信号处理理论的理解,将理论很好地应用到实际当中去,通过分部完成程序将程序分为几个部分完成,然后再将程序整合在一起,每部分可以进行独立编程。这次设计中我也自己认真独立思考,了解了每一步的程序编程,对于数字信号处理的有关知识有了进一步认识和理解,自己之后需要多多注重锻炼自己的动手能力,讲所学到的知识运用到实际中,加深自己对于知识的理解。 学习就是一个了解疑惑,进而解惑的过程。这次课程设计就是提供了这样一个机会,发现自己知识漏洞,与同学老师探讨进行解惑的的机会。 通过这次课程设计实践,我更深刻的了解了MATLAB的运用,重新复习了相关知识,对课本上的知识有了更深的理解,使我对数字信号处理有了系统的认知。 参考文献 [1]董长虹.Matlab信号处理与应用.北京:国防工业出版社,2011 [2]路林吉.袁华.信号与系统.北京:机械工业出版社,2010 [3]甘俊英.MATLAB实验指导.北京:清华大学出版社,2012 [4]吴大正.信号与线性系统分析.北京:高等教育出版社,2011 [5]刘  泉.阙大顺.数字信号处理.北京:电子工业出版社,2009 [6]张威. Matlab基础与编程入门.西安:西安电子科技大学出版社,2010 [7]刘树棠.信号与系统(第二版)西安:西安交通大学出版社,2010 附录 1.计算并图示 及其幅频特性函数的程序代码 clear; close all; fs=10000;fs1=1000;fs2=400;fs3=200;%设置四种采样频率 t=0:1/fs:0.1;                        %采集信号长度为0.1秒 A=444.128;a=50*sqrt(2)*pi;b=a; xa=exp(-a*t).*sin(b*t); k=0:511;f=fs*k/512;                  %由wk=2 k/512=2 fT求得模拟频率f Xa=dtft(xa,2*pi*k/512);            %近似模拟信号频谱 T1=1/fs1;t1=0:T1:0.1;              %采集信号长度为0.1秒 x1=A*exp(-a.*t1).*sin(b*t1);      %1kHz采样序列x1(n) X1=dtft(x1, 2*pi*k/512);            %x1(n)的512点dtft T2=1/fs2;t2=0:T2:0.1;              %采集信号长度为0.1秒 x2=A*exp(-a.*t2).*sin(b.*t2);      %400Hz采样序列x2(n) X2=dtft(x2,2*pi*k/512);            %x2(n)的512点dtft T3=1/fs3;t3=0:T3:0.1;              %采集信号长度为0.1秒 x3=A*exp(-a.*t3).*sin(b.*t3);      %200Hz采样序列x3(n) X3=dtft(x3, 2*pi*k/512);            %x3(n)的512点dtft subplot(1,2,1);plot(t,xa);        %画出原始波形 axis([0,max(t),min(xa), max(xa)]); title('电信1305班模拟信号'); xlabel('t(s)');ylabel('Xa(a)');line([0,max(t)],[0,0]) subplot(1,2,2);plot(f,abs(Xa)/max(abs(Xa))); title('模拟信号的幅度频谱'); axis([0,500,0,1]); xlabel('f(Hz)');ylabel('|Xa(jf)|'); 2.计算并图示三种采样频率下的采样信号及其幅频特性函数的程序代码 clear; close all; fs=10000;fs1=1000;fs2=400;fs3=200;%设置四种采样频率 t=0:1/fs:0.1;                        %采集信号长度为0.1秒 A=444.128;a=50*sqrt(2)*pi;b=a; xa=exp(-a*t).*sin(b*t); k=0:511;f=fs*k/512;                  %由wk=2 k/512=2 fT求得模拟频率f Xa=dtft(xa,2*pi*k/512);            %近似模拟信号频谱 T1=1/fs1;t1=0:T1:0.1;              %采集信号长度为0.1秒 x1=A*exp(-a.*t1).*sin(b*t1);      %1kHz采样序列x1(n) X1=dtft(x1, 2*pi*k/512);            %x1(n)的512点dtft T2=1/fs2;t2=0:T2:0.1;              %采集信号长度为0.1秒 x2=A*exp(-a.*t2).*sin(b.*t2);      %400Hz采样序列x2(n) X2=dtft(x2,2*pi*k/512);            %x2(n)的512点dtft T3=1/fs3;t3=0:T3:0.1;              %采集信号长度为0.1秒 x3=A*exp(-a.*t3).*sin(b.*t3);      %200Hz采样序列x3(n) X3=dtft(x3, 2*pi*k/512);            %x3(n)的512点dtft subplot(3,2,1);plot(t1,x1);        %画出三个不同频率的模拟信号及其幅度谱 axis([0,max(t1),min(x1), max(x1)]); title('电信1305 李晓月采样序列x1(n)(fs1=1000Hz)'); xlabel('n');ylabel('x1(n)'); subplot(3,2,2);plot(f1,abs(X1)/max(abs(X1))); title('x1(n)的幅度谱 '); axis([0,1000,0,1]); xlabel('f(Hz)');ylabel('|x1(jf)|'); subplot(3,2,3);plot(t2,x2); axis([0,max(t2),min(x2), max(x2)]); title('采样序列x2(n)(fs1=400Hz)'); xlabel('n');ylabel('x2(n)'); subplot(3,2,4);plot(f2,abs(X2)/max(abs(X2))); title('x2(n)的幅度谱'); axis([0,400,0,1]); xlabel('f(Hz)');ylabel('|x2(jf)|'); subplot(3,2,5);plot(t3,x3); axis([0,max(t3),min(x3), max(x3)]); title('采样序列x3(n)(fs1=200Hz)'); xlabel('n');ylabel('x3(n)'); subplot(3,2,6);plot(f3,abs(X3)/max(abs(X3))); title('x3(n)的幅度谱 '); axis([0,200,0,1]); xlabel('f(Hz)');ylabel('|x3(jf)|'); 3.频率分别为400及1000时恢复 并计算最大恢复误差的程序代码 clear; close all; A=444.128;a=50*sqrt(2)*pi;b=a; for k=1:2 if k==1 Fs=400; elseif k==2 Fs=1000;end T=1/Fs;dt=T/3;                  %每个采样间隔T上g(t)取三个样点 Tp=0.03;                        %重构时间区间为[0,0.03s] t=0:dt:Tp;                      %生成序列t n=0:dt/T;                        %生成序列n TMN=ones(length(n),1)*t-n'*T*ones(1,length(t));%生成TNM矩阵 x=A*exp(-a*n*T).*sin(b*n*T); %生成模拟信号采样序列x(n) xa=x*sinc(Fs*TMN);            %内插公式 subplot(2,1,k);plot(t,xa);hold on axis([0,max(t),min(xa)-10,max(xa)+10]); st1=sprintf('电信 1305李晓月由Fs=%d',Fs);%生成标注字符串左端,含变动部分 st2='Hz的采样序列x(n)重构的信号';%生成标注字符串右端 st=[st1,st2];title(st)        %拼装成一个字符串并显示在标题上 ylabel('xa(t)'); xo=A*exp(-a*t).*sin(b*t);      %以插值频率对原始模拟信号采样 stem(t,xo,'.');line([0,max(t)],[0,0]) emax2=max(abs(xa-xo))          %求插值结果与原数据的差 end 致谢辞 在这次课程设计的撰写过程中,我得到了许多人的帮助。 首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次设计的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。 同时,在课程设计中,老师严谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益求精的工作态度以及侮人不倦的师者风范是我终生学习的楷模,老师们的高深精湛的造诣与严谨求实的治学精神,将永远激励着我。在此,谨向老师们致以衷心的感谢和崇高的敬意! 另外,感谢校方给予我这样一次机会,让我能够独立地完成一次课程设计,并在这个过程当中,给予我们各种方便,使我们在这学期快要结课的时候,能够将学到的知识应用到实践中,增强了我们实践操作和动手应用能力,提高了独立思考的能力。 感谢所有任课老师和所有同学在这三年来给自己的指导和帮助,是他们教会了我专业知识,教会了我如何学习,教会了我如何做人。正是由于他们,我才能在各方面取得优异的成绩,在此向他们表示我由衷的谢意。 感谢寝室里的舍友,是你们三年来对我的关照使我的拥有一个良好的学习环境是我能专心学习生活。 最后,我要向百忙之中抽时间对本文进行审阅,评议的各位老师表示感谢。 本科生课程设计成绩评定表 姓名 李晓月 性别 女 专业、班级 电信1305班 课程设计题目:信号采样与重建的编程实现 课程设计答辩或质疑记录: 成绩评定依据: 最终评定成绩(以优、良、中、及格、不及格评定)         指导教师签字:年月日
/
本文档为【信号采样与重建的编程实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索