信号的采样与恢复采样定理的仿真.docx
《信号的采样与恢复采样定理的仿真.docx》由会员分享,可在线阅读,更多相关《信号的采样与恢复采样定理的仿真.docx(16页珍藏版)》请在冰豆网上搜索。
信号的采样与恢复采样定理的仿真
山东建筑大学
课程设计说明书
题目:
信号的采样与恢复、采样定理的仿真
课程:
数字信号处理课程设计
院(部):
信息与电气工程学院
专业:
通信工程
班级:
学生姓名:
学号:
指导教师:
魏莉
完成日期:
2017年1月
摘要
运用数字信号处理知识实现对信号的采样、恢复以及采样定理的仿真,可借助于MATLAB强大的运算和图形显示功能,首先生成一个连续时间信号并生成其频谱,然后对该连续信号抽样,并对采样后的频谱进行分析,最后通过设计低通滤波器滤出抽样所得频谱中多个周期中的一个周期频谱,并显示恢复后的时域连续信号。
在MATLAB中连续信号的频谱由于无法实现真正的连续,所以通过对信号扩大采样点数的方法实现近似连续,取样过程中,通过控制采样频率实现大于或小于二倍连续信号的最高频率,依此来验证采样定理。
信号恢复时,滤波器的参数需要很好的设置,以实现将抽样后的信号进行滤波恢复原连续信号。
1、设计目的与要求
1.掌握利用MATLAB在数字信号处理中的基本应用,并会对结果用所学知识进行分析。
2.对连续信号进行采样,在满足采样定理和不满足采用定理两种情况下对连续信号和采样信号进行FFT频谱分析。
3.从采样信号中恢复原信号,对不同采样频率下的恢复信号进行比较分析。
4.基本要求:
每组一台电脑,电脑安装MATLAB6.5版本以上软件。
2、设计原理
将连续信号采样并进行频谱分析,其频谱产生了周期延拓,每隔一个采样频率fs,重复出现一次。
为保证采样后信号的频谱形状不失真,采样频率必须大于信号中最高频率成分的两倍,这称之为采样定理。
时域采样定理从采样信号
恢复原信号
必需满足两个条件:
(1)
必须是带限信号,其频谱函数在
>
各处为零;(对信号的要求,即只有带限信号才能适用采样定理。
)
(2)取样频率不能过低,必须满足
>2
。
(对取样频率的要求,即取样频率要足够大,采得的样值要足够多,才能恢复原信号。
)如果采样频率
大于或等于
,即
(
为连续信号
的有限频谱),则采样离散信号
能无失真地恢复到原来的连续信号
。
综合以上,得采样定理:
(1)对连续信号进行等间隔采样形成采样信号,采样信号的频谱是原连续信号的频谱一采样频率为周期进行周期延拓得到的;
(2)设连续信号是带限信号,如果采样角频率大于等于2倍的最高截止频率,则采样信号通过理想低通滤波器可唯一恢复出原连续信号,否则会造成采样信号中的频谱混叠现象,不可无失真的恢复原连续信号。
以采样定理为依据设计本次实验,产生一个连续时间信号,并进行频谱分析,根据采样定理要求对所产生的连续时间信号进行采样和频谱分析,并将此频谱与连续信号的频谱进行比较。
验证采样定理,改变采样频率,重复以上过程。
设计低通滤波器,恢复原连续信号。
3、设计内容与步骤
3.1用MATLAB产生连续信号及其对应的频谱
生成一个频率为200的连续信号。
MATLAB程序源代码如下:
f1=200;t=(1:
100)/3000;
w=linspace(0,100,length(t));
x1=sin(2*pi*f1*t);
n=0:
(length(x1)-1);
figure
(1);subplot(2,1,1);plot(x1,'k');
gridon;
axis([0100-1.21.2]);%横纵坐标的范围
line([0,100],[0,0]);%画横坐标轴线
xlabel('t');ylabel('x1(t)');title('连续信号');
subplot(2,1,2);
plot(w,abs(fft1(t,x1,n)),'k');%其对应频域信号
xlabel('w');ylabel('x(w)');
title('其对应频域信号');
gridon;
结果如下:
图3.1.1
在对其进行频谱分析的时候,需要调用以下子函数fft1:
functionresult=fft1(w,hanshu,n)
fori=1:
length(w);
m=hanshu.*((exp(-1i*(i-1)*pi/100)).^n);
a{i}=sum(m);
end
fori=1:
length(w)
result(i)=a{i};
end
虽然运用FFT函数也可以对信号进行频谱分析,但只能看到一个周期的频谱,无法分析抽样后的信号频谱是否是原信号频谱以抽样频率为周期进行周期延拓形成的,也无法观测是否出现频谱混叠。
所以直接运用离散傅里叶变换的公式来定义子函数fft1,方便后续采样及恢复步骤中的频谱分析过程。
3.2对连续信号进行抽样并产生其频谱
首先要以不同的城阳频率fs对连续信号进行抽样,然后调用3.1中的子函数fft1产生其频谱。
源代码如下;
n=1:
100;fs=60;T=1/fs;f1=200;t=(1:
100)/3000;
w=1:
200;
x1n=sin(2*pi*f1*n*T);
X1=fft1(w,x1n,n)
M=length(X1);
k=0:
M-1;wk=2*k/M;%产生M点DFT对应的采样点频率(关于π归一化值)
figure
(2);subplot(2,1,1);stem(n,x1n,'.','k');
gridon;
axis([0102-1.21.2]);
xlabel('n');ylabel('x1(n)');title('(e)采样后x1(n)的波形');
figure
(2);subplot(2,1,2);plot(wk,abs(X1),'k');
axis([01.1056]);
line([0,1.1],[0,0])
gridon;
xlabel('ω/π');ylabel('幅度');title('(f)FT[x1(n)]的幅频特性图');
不同采样频率所产生的采样信号以及频谱如下:
当采样频率fs=45时:
图3.2.1
采样频率fs=330时:
图3.2.2
采样频率fs=1700时:
图3.2.3
采样频率fs=2300时:
图3.2.4
由抽样定理可知,抽样后的信号频谱是原信号频谱以抽样频率为周期进行周期延拓形成的,图3.2.1和图3.2.2的频谱出现了明显的频谱混叠而并非原信号频谱的周期延拓。
这是因为采样频率没有满足
>2
的条件,因此经周期延拓出现了频谱混叠。
图3.2.3和图3.2.4的采样频率
>>2
,因此其抽样信号的频谱是原信号频谱以抽样频率为周期进行周期延拓,没有发生混叠现象。
3.3通过低通滤波恢复原连续信号
要恢复原连续信号,通过设计低通滤波器滤出抽样所得频谱中多个周期中的一个周期频谱,才可以恢复原时域连续信号。
由原连续信号和采样频率可以得到巴特沃斯滤波器的参数。
MATLAB源程序如下:
wp=0.1;ws=0.7;Rp=2;As=30;
[N,wc]=buttord(wp,ws,Rp,As);
[B,A]=butter(N,wc);
[H,w]=freqz(B,A,512,1000);
figure;
plot(w*1000/(2*pi),abs(H));
xlabel('Hz');ylabel('频率响应幅度');
title('低通滤波器');
grid;
滤波器图像如图3.3.1
图3.3.1
通过filter函数将不同采样频率的采样信号恢复为原连续信号,源程序如下:
n=1:
100;fs=45;T=1/fs;f1=200;t=(1:
100)/1000;
x1n=sin(2*pi*f1*n*T);
y=filter(B,A,x1n);
subplot(2,1,1);
plot(y,'k');%恢复后的连续信号
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)]),'k');%绘制频谱图
xlabel('Hz');ylabel('频率响应幅度');
title('频谱图');
grid;
采样频率fs=45时:
图3.3.2
采样频率fs=330时:
图3.3.3
采样频率fs=1700时:
图3.3.4
采样频率fs=2300时:
图3.3.5
采样频率fs=4000时:
图3.3.5
前两个图可以看出,因为采样频率没有满足
>2
的条件,因此经周期延拓出现了频谱混叠,所以在信号还原时失真比较严重。
而随着采样频率的增加,采样点数增多,后3图的采样频率远远大于2倍的信号最好频率,满足要求,恢复波形也非常的接近原连续信号。
但是由于滤波器设计的比较草率,参数准确度不够,所以波形显示的不太圆滑,但是已经可以基本完成将原输入连续信号取样并恢复的实验目的。
4、总结
本次课程设计,收获确实很多,不仅用到了课上学习的知识,而且对不太擅长的MATLAB有了很大的进步。
本实验用到的理论知识并不是很多,也很容易理解,理论知识是基础,学以致用才是关键。
因为我们专业没有开设MATLAB这门课,只有在信号与系统和数字信号处理课程中接触了一些简单的函数,对于一些基本的函数理解还有欠缺,本次课程设计让我它有了更深的理解。
学会了如何调用、查询MATLAB函数库中的函数。
对课本知识采样频率的理解更加透彻。
另外,要学会用自己掌握的理论知识对结果进行分析,然后根据实验结果与理想的偏差分析程序的错误,以此来一步步改进程序。
因此对知识的掌握不仅仅是课本知识的理解,还要学会运用和实践,理论与实践的结合才能真正掌握知识。
5、致谢
本课程设计说明书已经基本完成,特别感谢我的指导老师魏莉老师、张君捧老师和高诺老师对我的帮助和指导,尤其是在MATLAB源程序上的指导,以此我才能顺利的通过MATLAB程序实现采样定理。
借此机会我也对MATLAB程序更加了解。
得到了几位老师悉心细致的讲解和无私的帮助,在此表示真诚地感谢和深深的谢意。
在课程设计过程中,也得到了许多同学的帮助和宝贵建议,大家一起查阅资料分析程序在大家的共同努力下,我们才顺利完成本次设计。
在此一并致以诚挚的谢意。
6、参考文献
[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.