信号临界采样、过采样、欠采样实验报告
时间:2020-11-05 13:04:32 来源:勤学考试网 本文已影响 人
抽样定理及应用
课程设计的目的
1. 掌握利用MATLAB分析系统频率响应的方法,增加对仿真软件MATLAB的感性认识,学会该软件的操作和使用方法。
2. 掌握利用MATLAB实现连续信号采用与重构的方法,加深理解采样与重构的概念。
3. 学习MATLAB中信号表示的基本方法及绘图函数的调用,实现对常用连续时间信号的可视化表示,加深对各种电信号的理解。
4. 加深理解采样对信号的时域和频域特性的影响;验证信号与系统的基本概念、基本理论,掌握信号与系统的分析方法。
5. 加深对采样定理的理解和掌握,以及对信号恢复的必要性;掌握对连续信号在时域的采样与重构的方法。
二. 课程设计的内容及要求
1.课程设计的内容
离散正弦序列的MATLAB表示与连续信号类似,只不过是用stem函数而不是用plot函数来画出序列波形。
由于函数不是严格的带限信号,其带宽可根据一定的精度要求做一近似。根据以下三种情况用MATLAB实现采样信号及重构并求出两者误差,分析三种情况下的结果。
(1)的临界采样及重构:,,;
(2)的过采样及重构:,,;
(3)的欠采样及重构:,,。
2.课程设计的方案
2.1课程设计的原理
2.1.1连续信号的采样定理
模拟信号经过 (A/D) 变换转换为数字信号的过程称为采样,信号采样后其频谱产生了周期延拓,每隔一个采样频率 fs,重复出现一次。为保证采样后信号的频谱形状不失真,采样频率必须大于信号中最高频率成分的两倍,这称之为采样定理。时域采样定理从采样信号恢复原信号必需满足两个条件:
(1) 必须是带限信号,其频谱函数在 > 各处为零;(对信号的要求,即只有带限信号才能适用采样定理。)
?(2) 取样频率不能过低,必须 >2 (或 >2)。(对取样频率的要求,即取样频率要足够大,采得的样值要足够多,才能恢复原信号)如果采样频率大于或等于,即(为连续信号的有限频谱),则采样离散信号能无失真地恢复到原来的连续信号 。
2.1.2信号重构
设信号被采样后形成的采样信号为,信号的重构是指由经过内插处理后,恢复出原来信号的过程。又称为信号恢复。
2.2设计的思路
连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点以外,信号都有确定的值与之对应。严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。时域对连续时间信号进行采样,是给它乘以一个采样脉冲序列,就可以得到采样点上的样本值,信号被采样前后在频域的变化,可以通过时域频域的对应关系分别求得了采样信号的频谱。
在一定条件下,一个连续时间信号完全可以用该信号在等时间间隔上的瞬时值来表示,并且可以用这些样本值把信号完全恢复过来。这样,采样定理为连续时间信号与离散时间信号的相互转换提供了理论依据。通过观察采样信号的频谱,发现它只是原信号频谱的线性重复搬移,只要给它乘以一个门函数,就可以在频域恢复原信号的频谱,在时域是否也能恢复原信号时,利用频域时域的对称关系,得到了信号。
2.3详细设计过程
2.3.1的临界采样及重构
1.实现程序代码
当采样频率小于一个连续的同信号最大频率的2倍,即时,称为临界采样. 修改门信号宽度、采样周期等参数,重新运行程序,观察得到的采样信号时域和频域特性,以及重构信号与误差信号的变化。
Sa(t)的临界采样及重构程序代码;
wm=1; %升余弦脉冲信号带宽
wc=wm; %频率
Ts=pi/wm; %周期
ws=2*pi/Ts;
n=-100:100; %定义序列的长度是201
nTs=n*Ts %采样点
f=sinc(nTs/pi); %抽样信号
Dt=0.005;t=-20:Dt:20;
fa=f*Ts*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t)))); %信号重建
t1=-20:0.5:20;
f1=sinc(t1/pi);
subplot(211);
stem(t1,f1);
xlabel('kTs');
ylabel('f(kTs)');
title('sa(t)=sinc(t/pi)的临界采样信号');
subplot(212);
plot(t,fa)
xlabel('t');
ylabel('fa(t)');
title('由sa(t)=sinc(t/pi)的临界采样信号重构sa(t)');
grid;
2程序运行运行结果图与分析
2.3.2的过采样及重构
1.实现程序代码
当采样频率大于一个连续的同信号最大频率的2倍,即时,称为过采样.
在不同采样频率的条件下,观察对应采样信号的时域和频域特性,以及重构信号与误差信号的变化。我设定ws=4wm
Sa(t)的过采样及重构程序代码;
wm=1;
wc=wm;
Ts=0.5*pi/wm;
ws=2*pi/Ts;
n=-100:100;
nTs=n*Ts
f=sinc(nTs/pi);
Dt=0.005;t=-10:Dt:10;
fa=f*Ts*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));
error=abs(fa-sinc(t/pi));
t1=-10:0.5:10;
f1=sinc(t1/pi);
subplot(311);
stem(t1,f1);
xlabel('kTs');
ylabel('f(kTs)');
title('sa(t)=sinc(t/pi)的采样信号');
subplot(312);
plot(t,fa)
xlabel('t');
ylabel('fa(t)');
title('由sa(t)=sinc(t/pi)的过采样信号重构sa(t)');
grid;
subplot(313);
plot(t,error);
xlabel('t');
ylabel('error(t)');
title('过采样信号与原信号的误差error(t)');
2.程序运行运行结果图与分析。
2.3.3Sa(t)的欠采样及重构
1.实现程序代码
当采样频率小于一个连续的同信号最大频率的2倍,即时,称为过采样。利用频域滤波的方法修改实验中的部分程序,完成对采样信号的重构。我选定ws=wm
Sa(t)的欠采样及重构程序代码;
wm=1;
wc=wm;
Ts=2 *pi/wm;
ws=2*pi/Ts;
n=-100:100;
nTs=n*Ts
f=sinc(nTs/pi);
Dt=0.005;t=-20:Dt:20;
fa=f*Ts*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));
error=abs(fa-sinc(t/pi));
t1=-20:0.5:20
f1=sinc(t1/pi);
subplot(311);
stem(t1,f1);
xlabel('kTs');
ylabel('f(kTs)');
title('sa(t)=sinc(t/pi)的采样信号sa(t)');
subplot(312);
plot(t,fa)
xlabel('t');
ylabel('fa(t)');
title('由sa(t)=sinc(t/pi)的欠采样信号重构sa(t)');
grid;
subplot(313);
plot(t,error);
xlabel('t');
ylabel('error(t)');
title('欠采样信号与原信号的误差error(t)');
2.程序运行运行结果图与分析
误差分析:因采样信号的频谱混叠,使得在区域内的频谱相互“干扰”所致。
三.收获和体会
该课程设计使我对采样定理和信号重构的一些基本公式有了一些了解。在整个实验过程中,我查阅了很多相关知识,从这些书籍中我受益良多。也使我上机操作顺利完成。虽然刚开始对采样过程和恢复过程认识不深,但是通过这次实验对采样过程和恢复过程有了进一步掌握。
通过实验的设计使我对采样定理和信号的重构有了深一步的掌握。虽然在实验过程中出现很多错误,但是在同学的帮助下,不断的修正错误,同时也学会了MATLAB中信号表示的基本方法及绘图函数的调用。虽然刚开始我对MATLAB的基本使用方法没有太深刻的认识。但是该实验使我对MATLAB函数程序的基本结构有所了解,也提高了我独立完成实验的能力和理论联系实际的应用能力。进而了解了采样和重构的方法。