您的当前位置:首页数字信号处理课程设计 ——指数衰减正弦信号的采样与恢复

数字信号处理课程设计 ——指数衰减正弦信号的采样与恢复

2021-07-19 来源:乌哈旅游
.

数字信号处理课程设计

——指数衰减正弦信号的采样与恢复

1理论分析 1.1 连续时间信号

连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点以外,信号都有确定的值与之对应。严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。

在一定条件下,一个连续时间信号完全可以用该信号在等时间间隔上的瞬时值来表示,并且可以用这些样本值把信号完全恢复过来。这样,抽样定理为连续时间信号与离散时间信号的相互转换提供了理论依据。通过观察采样信号的频谱,发现它只是原信号频谱的线性重复搬移,只要给它乘以一个门函数,就可以在频域恢复原信号的频谱,在时域是否也能恢复原信号时,利用频域时域的对称关系,得到了信号。

1.2采样定理

模拟信号经过 (A/D) 变换转换为数字信号的过程称为采样,信号采样后其频谱产生了周期延拓,每隔一个采样频率 fs,重复出现一次。为保证采样后信号的频谱形状不失真,采样频率必须大于信号中最高频率成分的两倍,这称之为采样定理。

时域采样定理从采样信号 (1)

恢复原信号

必需满足两个条件: >

各处为零;(对信号的要

必须是带限信号,其频谱函数在

求,即只有带限信号才能适用采样定理。) (2) 取样频率不能过低,必须

>2 (或>2)。(对取样频率的要

求,即取样频率要足够大,采得的样值要足够多,才能恢复原信号。) 如图1.1所示,给出了信号采样原理图

..

.

图1.1 信号采样原理图

e(t)由图1可见,fs(t)f(t)Ts(t),其中,冲激采样信号Ts(t)的表达式为:Ts(t)其傅立叶变换为s(ns),其中

nn(tnT)

ss2 Tss设F(j),Fs(j)分别为f(t),f(t)的傅立叶变换,由傅立叶变换的频域卷积定理,可得

11Fs(j)F(j)*s(ns)2Tsn

nF[j(n)]

s若设f(t)是带限信号,带宽为m, f(t)经过采样后的频谱Fs(j)就是将F(j)在频率轴上搬移至0,s,2s,,ns,处(幅度为原频谱的1Ts倍)。因此,当

2时,频谱不发生混叠;而当2时,频谱发生混叠。

smsm 一个理想采样器可以看成是一个载波为理想单位脉冲序列T(t)的幅值调制器,即理想采样器的输出信号e*(t),是连续输入信号e(t)调制在载波T(t)上的结果,如图2所示。

图1.2 信号的采样

用数学表达式描述上述调制过程,则有e*(t)e(t)T(t)理想单位脉冲序列T(t)可以表示为T(t)(tnT)

其中(tnT)是出现在时刻tnT,强度为1的单位脉冲。由于 的数值仅在采样瞬时才有意义,同时,假设

e(t)0t0

e(t)n0*e所以(t)又可表示为 e*(t)e(nT)(tnT)n01.3 信号重构

..

.

设信号f(t)被采样后形成的采样信号为f(t),信号的重构是指由f(t)经过

ss插处理后,恢复出原来信号f(t)的过程,又称为信号恢复。

若设f(t)是带限信号,带宽为m,经采样后的频谱为Fs(j)。设采样频率

2,则由式(9)知F(j)是以为周期的谱线。现选取一个频率特性

smssTsH(j)0c(其中截止频率c满足mcsc2)

的理想低通滤波器与Fs(j)相乘,得到的频谱即为原信号的频谱F(j)。

F(j)Fs(j)H(j)与之对应的时域表达式为 f(t)h(t)*fs(t) 而 fs(t)f(t)(tnTs)f(nTs)(tnTs)

nnh(t)F1[H(j)]TsSa(t)

cc将h(t)及fs(t)代入得

Tf(t)f(t)*TSa(t)f(nT)Sa[(tnT)] cscsscnscs 此式即为用f(nTs)求解f(t)的表达式,是利用MATLAB实现信号重构的基本关系式,抽样函数Sa(ct)在此起着内插函数的作用。

sint 例:设f(t)Sa(t),其F(j)为:

t1F(j)01

即f(t)的带宽为m1,为了由f(t)的采样信号fs(t)不失真地重构f(t),由时域采样定理知采样间隔

Ts,取T0.7(过采样) sm利用MATLAB的抽样函数

Sinc(t)sin(t)t

来表示Sa(t),有Sa(t)Sinc(t/)。据此可知:

cTsccf(t)fs(t)*TsSa(ct)f(nT)Sinc[(tnTs)] sn 通过以上分析,得到如下的时域采样定理:一个带宽为wm的带限信号f(t),可唯一地由它的均匀取样信号fs(nTs)确定,其中,取样间隔Ts<π/wm, 该取样间隔又称为奈奎斯特间隔。

..

.

3.设计思路

连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点以外,信号都有确定的值与之对应。严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。时域对连续时间信号进行采样,是给它乘以一个采样脉冲序列,就可以得到采样点上的样本值,信号被采样前后的频域变化,可以通过时域频域的对应关系求得采样信号的频谱。 在一定条件下,一个连续时间信号完全可以用该信号在等时间间隔上的瞬时值来表示,并且可以用这些样本值把信号完全恢复过来。这样,抽样定理为连续时间信号与离散时间信号的相互转换提供了理论依据。通过观察采样信号的频谱,发现它只是原信号频谱的线性重复搬移,只要给它乘以一个门函数,就可以在频域恢复原信号的频谱,在时域是否也能恢复原信号时,利用频域时域的对称关系,得到了信号。

优点:MATLAB在绘图方面提供了相当高级的函数序及程序界面,即使用户没有丰富的程序设计经验,也能够快速地得到自己想要的结果,熟练的使用MATLAB的程序员或研究人员能缩短研究开发时间,从而提高竞争力,MATLAB和其他高级语言有良好的接口,可以方便地实现与其他语言的混合编程,从而进一步扩宽MATLAB的应用潜力。

缺点:MATLAB占用内存空间很大,并且会因硬盘分区是NTFS格式还是FAT格式而有差异。

4程序设计 4.1步骤框图

..

.

4.2程序代码

4.2.1.连续时间信号x(t)

clc

clear all close all

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

A=input('请入A的值A:') % 设置信号的有关参数 a=input('请入a的值a:') w0=input('请入w0的值w0:') T1=0.005 T2=0.0025 T3=0.001 T0=0.001

x=A*exp(-a*n*T0).*sin(w0*n*T0) y1=A*exp(-a*n*T1).*sin(w0*n*T1) y2=A*exp(-a*n*T2).*sin(w0*n*T2) y3=A*exp(-a*n*T3).*sin(w0*n*T3) close all

subplot(2,1,1)

stem(n,x,'.') % 绘制x(n)的图形 grid on

title('离散时间信号') subplot(2,1,2) plot(n,x) grid on

title('连续时间信号')

4.2.2 200Hz/400Hz/1000Hz频率抽样信号函数x(n)

..

.

figure(2)

subplot(3,1,1) stem(n,y1,'.') grid on

title('200Hz连续采样信号序列') subplot(3,1,2) stem(n,y2,'.') grid on

title('400Hz连续时间信号') subplot(3,1,3) stem(n,y3,'.') grid on

title('1000Hz连续时间信号')

4.2.3由采样序列x(n)恢复出连续时间信号x(t)

clc clear all close all

A=input('please input the A:') a=input('please input the a:') W0=input('please input the W0:') fs=input('please input the fs:') n=0:49 T=1/fs t0=10/a Dt=1/(5*a) t=0:Dt:t0

xa=A*exp(-a*t).*sin(W0*t) K1=50 k1=0:1:K1 W1max=2*pi*500 W1=W1max*k1/K1 w1=W1/pi

Xa=xa*exp(-j*t'*W1)

..

.

x=A*exp(-a*n*T).*sin(W0*n*T) figure (1) subplot(3,1,1) plot(t*1000,xa)

title('连续时间信号x(t)') axis([0 50 -200 400]) grid

subplot(3,1,2) stem(x,'.') grid xlabel('n') ylabel('x(n)') title('采样序列x(n)') axis([0 50 -200 400]) x1=spline(n*T,x,t) grid

xlabel('t:毫秒') ylabel('x(t)') subplot(3,1,3) plot(t*1000,x1) axis([0 50 -200 400]) title('由x(n)恢复x1(t)') grid

xlabel('t:毫秒') ylabel('x1(t)') axis([0 50 -200 400]) error=max(abs(x1-xa))

5运行结果与分析

1.连续时间信号x(t)图形

..

.

图5.1连续时间信号图形

2.200Hz/400Hz/1000Hz频率抽样信号函数x(n)图形

图5.2 抽样信号图形

3.由采样序列x(n)恢复出连续时间信号x(t)及误差

..

.

图5.3误差结果

图5.4 200Hz恢复信号

图5.5 200Hz恢复信号

..

.

图5.6 1000Hz恢复信号

分析:恢复曲线与原信号曲线相同,说明恢复误差很小,如果采样频率减小,误差增大,采样频率增大,则恢复误差更小。采样频率就遵循乃奎斯特定理。

6心得体会

本次课程设计使我们对采样定理的一些基本公式得到了进一步巩固。在整个实验过程中,我们查阅了很多相关知识,从这些书籍中我们受益良多。也使我们上机操作顺利完成。虽然刚开始对采样过程和恢复过程认识不深,但是通过这次实验对采样过程和恢复过程有了进一步掌握。而且我们学习到了很多新的知识新的理念,但是对于MATLAB,我们只会进行基本操作,所以在这个过程中我们也遇到了很多的困难。在开始做课程设计的初期,我们先是对线形系统、模拟信号、抽样定理、仿真重构等一系列概念做了一个全面的了解与回顾。本次课程设计,我们分工明确,符淑云主要负责信号的采样与恢复的程序设计,总结报告以及讲PPT,刘佳慧主要负责信号的恢复的程序设计,总结报告以及制作PPT等。 MATLAB的编程是一个难题,通过查阅资料、问同学以及去图书馆借书,研究了

..

.

一点MATLAB软件的数组和数组运算、输出图形、基本语言、程序设计等内容,终于完成了程序的设计。最后理论与时间结合,得出了设计的程序与期望的输出结果。

在今后的学习生活中,我们定会更加的努力,努力的培养自己各方面,尤其是独立思考的能力,争取更好的成绩!

7参考文献

[1]董长虹. Matlab信号处理与应用[M].北京:国防工业出版社,2005.01:28-47. [2]路林吉,袁华.信号与系统[M].北京:机械工业出版社,2007.01:124-127. [3]甘俊英,胡异丁.基于MATLAB的信号与系统实验指导[M].北京:清华大学出版社,2007.08:64-72.

[4]吴大正. 信号与线性系统分析[M].北京:高等教育出版社,2005.08:182-188. [5]楼顺天,刘小东,李博菡.基于MATLAB7.X的系统分析与设计——信号处理[M].西安:西安电子科技大学出版社,2005.05:268-273.

..

因篇幅问题不能全部显示,请点此查看更多更全内容