信号的采样与恢复采样定理的仿真.docx
《信号的采样与恢复采样定理的仿真.docx》由会员分享,可在线阅读,更多相关《信号的采样与恢复采样定理的仿真.docx(13页珍藏版)》请在冰豆网上搜索。
信号的采样与恢复采样定理的仿真
摘要…………………………………………………………………………………2
正文
一、设计目的与要求………………………………………………………………3
二、设计原理………………………………………………………………………4
三、设计内容和步骤………………………………………………………………5
1.用MATLAB产生连续信号y=sin(t)和其对应的频谱…………………6
2.对连续信号y=sin(t)进行抽样并产生其频谱…………………………7
3.通过低通滤波恢复原连续信号…………………………………………9
四、总结……………………………………………………………………………12
五、致谢……………………………………………………………………………13
六、参考文献………………………………………………………………………14
摘要
数字信号处理是一门理论与实践紧密结合的课程。
做大量的习题和上机实验,有助于进一步理解和巩固理论知识,还有助于提高分析和解决实际问题的能力。
过去用其他算法语言,实验程序复杂,在有限的实验课时内所做的实验内容少。
MATLAB强大的运算和图形显示功能,可使数字信号处理上机实验效率大大提高。
特别是它的频谱分析和滤波器分析与设计功能很强,使数字信号处理工作变得十分简单、直观。
本实验设计的题目是:
信号的采样与恢复、采样定理的仿真。
通过产生一个连续时间信号并生成其频谱,然后对该连续信号抽样,并对采样后的频谱进行分析,最后通过设计低通滤波器滤出抽样所得频谱中多个周期中的一个周期频谱,并显示恢复后的时域连续信号。
实验中,原连续信号的频谱由于无法实现真正的连续,所以通过扩大采样点的数目来代替,理论上当采样点数无穷多的时候即可实现连续,基于此尽可能增加采样点数并以此来产生连续信号的频谱。
信号采样过程中,通过采样点的不同控制采样频率实现大于或小于二倍最高连续信号的频率,从而可以很好的验证采样定理。
信号恢复,滤波器的参数需要很好的设置,以实现将抽样后的信号进行滤波恢复原连续信号。
一、设计目的与要求
1.设计目的和要求
1.掌握利用MATLAB在数字信号处理中的基本应用,并会对结果用所学知识进行分析。
2.对连续信号进行采样,在满足采样定理和不满足采用定理两种情况下对连续信号和采样信号进行FFT频谱分析。
3.从采样信号中恢复原信号,对不同采样频率下的恢复信号进行比较分析。
4.基本要求:
每组一台电脑,电脑安装MATLAB6.5版本以上软件。
二、设计原理
本实验主要涉及采样定理的相关内容以及低通滤波器恢复原连续信号的相关知识。
1.采样定理:
设连续信号
属带限信号,最高截止频率为
,如果采样角频率
,那么让采样性信号
通过一个增益为T、截止频率为
的理想低通滤波器,可以唯一地恢复出原连续信号
。
否则,
会造成采样信号中的频谱混叠现象,不可能无失真地恢复原连续信号。
对连续信号进行等间隔采样形成采样信号,对其进行傅里叶变换可以发现采样信号的频谱是原连续信号的频谱以采样频率
为周期进行周期性的延拓形成的。
对模拟信号进行采样可以看做一个模拟信号通过一个电子开关S,设电子开关每隔周期T和上一次,每次和上的时间为τ,在电子开关的输出端得到采样信号x^a(t)。
用公式表示如下:
(2.2.1)
图1对模拟信号进行采样
2.信号的恢复:
可用传输函数
的理想低通滤波器不失真地将原模拟信号
恢复出来,只是一种理想恢复。
因为
(2.2.2)
理想低通滤波器的输入输出
和
,
=
*
=
(2.2.3)
三、设计内容和步骤
1.用MATLAB产生连续信号y=sin(t)和其对应的频谱
%................时域连续信号和频谱......................................
x1=0:
pi/10:
(8*pi);
w=linspace(0,8*pi,length(x1));
figure
subplot(211)
plot(x1,sin(x1));%原时域连续信号y=sin(t)
xlabel('t');ylabel('x(t)');
title('原时域连续信号y=sin(t)');
grid
sin1=sin(x1);
n=0:
(length(x1)-1);
subplot(212)
plot(w,fft1(w,sin1,n));%其对应频域信号Y=FFT(sin(t))
xlabel('w');ylabel('x(w)');
title('其对应频域信号Y=FT(sin(t))');
grid
其中要用到子函数fft1,程序代码如下:
functionresult=fft1(w,hanshu,n)
a=cell(1,length(w));fori=1:
length(w)hanshu.*((exp(-j*(i-1)*pi/100)).^n);a{i}=sum(m);end
fori=1:
length(w)result(i)=a{i};end
子函数通过控制参数n的取值多少可分别计算离散和近似连续信号的频谱值并作为函数值进行返回。
产生图形如下:
2.对连续信号y=sin(t)进行抽样并产生其频谱
%................采样后的信号和频谱.......................................
n1=input('请输入采样点数n:
');
n=0:
n1;
zb=size(n);
figure
sinf=sin(8*pi*n/zb
(2));
subplot(211);
stem(n,sinf,'.');
xlabel('n');ylabel('x(n)');
title('采样后的时域信号y=x(n)’);
w=0:
(pi/100):
4*pi;
subplot(212)
plot(w,fft1(w,sinf,n));
xlabel('w');ylabel('x(w)');
title('采样后的频域信号y=FT(sin(n))');
grid
当输入n=10时,所得结果如下:
当输入n=50时,所得结果如下:
由抽样定理可知,抽样后的信号频谱是原信号频谱以抽样频率为周期进行周期延拓形成的,周期性在上面两个图中都有很好的体现。
但是从10点和50点采样后的结果以及与员连续信号频谱对比可以看出,10点对应的频谱出现了频谱混叠而并非原信号频谱的周期延拓。
这是因为N取值过小导致采样角频率
,因此经周期延拓出现了频谱混叠。
而N取50时,其采样角频率
,从而可以实现原信号频谱以抽样频率为周期进行周期延拓,并不产生混叠,从而为下一步通过低通滤波器滤出其中的一个周期(即不失真的原连续信号)打下了基础。
3.通过低通滤波恢复原连续信号
%................经低通滤波恢复原信号......................................
[B,A]=butter(8,350/500);%设置低通滤波器参数
[H,w]=freqz(B,A,512,2000);
figure;%绘制低通频谱图
plot(w*2000/(2*pi),abs(H));
xlabel('Hz');ylabel('频率响应幅度');
title('低通滤波器');
grid;
低通滤波器的频谱图
figure
y=filter(B,A,sinf);
subplot(2,1,1);plot(y);%恢复后的连续信号y=sin(t)
xlabel('t');ylabel('x(t)');
title('恢复后的连续信号y=sin(t)');
grid;
Y=fft(y,512);w=(0:
255)/256*500;
subplot(2,1,2);plot(w,abs([Y(1:
256)]));%绘制频谱图
xlabel('Hz');ylabel('频率响应幅度');
title('频谱图');
grid;
n=10时恢复后的信号和频谱
n=50时恢复后的信号和频谱
经上面的两个图可以看出,采样50点的恢复波形明显比10点的好。
但是由于滤波器设计的还有待于改进,所以波形并不是显示的很圆滑,但是已经可以基本达到实验目的,将原输入连续信号恢复。
四、总结
经过此次试验,感觉自己确实收获了很多,无论是对知识的理解和应用,还是实验过程中自我的遇到问题解决问题的信心、恒心以及同学间的相互鼓励、支持和帮助。
本实验用到的理论知识并不是很多,也很容易理解,理论知识是基础,学以致用才是关键。
实验中,MATLAB的使用很重要,一些关于矩阵的基础知识自己应该非常清楚,另外还要学会如何调用、查询MATLAB函数库中的函数,只有自己切实的懂,才会明白如何恰如其分的使用。
另外,要学会用自己掌握的理论知识对结果进行分析,以实现对程序代码进行不断改进,得出正确的结果。
经过此次实验,我认识到,知识只有会用才是真正意义上的学会,只有在不断的遭遇问题与解决问题间自己才能不断的进步,这进一步说明,自己并不能单纯的学习理论知识,应该加强实践,只有这样自己的专业能力才会有质的提高。
此次实验中,同学间的相互帮助也让自己受益颇多,同时也认识到,应该怎么与别人更好协作。
五、致谢
此次实验首先感谢老师的热心耐心指导,老师的热情帮助总能使我们的忙乱的思路得以清晰,而且还时不时对我们的进展提供建议和纠错,并时常鼓励我们,真诚感谢老师!
其次也感谢同学的热情帮助,由于自己水平所限,自己经常遇到各种各样的问题,而这些问题又不能经常麻烦老师,但在同学的帮助下也同样得以完美解决,自己才能够按时做完这次实验,也同样真诚感谢他们!
六、参考文献
[1]高西全、丁玉美编著.数字信号处理.西安:
西安电子科技大学出版社,2008.
[2]丁玉美、高西全编著.数字信号处理学习指导.西安:
西安电子科技大学出版社,2001.
[3]郑君里等编.信号与系统.北京:
高等教育出版社,2000.
[4]刘树棠译.数字信号处理——使用MATLAB.西安:
西安交通大学出版社,2002.
[5]导向科技编著.MATLAB程序设计与实例应用.北京:
中国铁道出版社,2001.
[6]罗军辉等编著.MATLAB7.0在数字信号处理中的应用.北京:
机械工业出版社,2005.
[7]陈怀琛等编著.MATLAB及在电子信息课中的应用.北京:
电子工业出版社,2002.
[8]胡广书编著.数字信号处理――理论、算法与实现.北京:
清华大学出版社,2002.
[9]梁虹等编.信号与线性系统分析――基于MATLAB的方法与实现.北京:
高等教育出版社,2006.
[10]刘卫国主编.MATLAB程序设计与应用(第二版).北京:
高等教育出版社,2006.