实验九信号的自然采样与恢复

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验九信号的自然采样与恢复

一、实验目的:

1、理解信号的采样及采样定理以及自然采样信号的频谱特征。

2、掌握和理解信号自然采样以及信号重建的原理,并能用MATLAB实现。

二、实验原理及方法:

本实验主要涉及采样定理的相关内容以及低通滤波器恢复原连续信号的相关知识。信号的抽样与恢复示意图如图7-1所示。

图7-1 信号的抽样与恢复示意图

信号抽样与恢复的原理框图如图7-2所示。

图 7-2 信号抽样与恢复的原理框图

由原理框图不难看出,A/D 转换环节实现抽样、量化、编码过程;数字信号处理环节对得到的数字信号进行必要的处理;D/A 转换环节实现数/模转换,得到连续时间信号;低通滤波器的作用是滤除截止频率以外的信号,恢复出与原信号相比无失真的信号。

原信号得以恢复的条件是B f s 2≥,其中s f 为采样频率,B 为原信号占有的频带宽度。B f 2min =为最低采样频率,当B f s 2<时,采样信号的频率会发生混迭,所以无法用低通滤波器获得原信号频谱的全部内容。

三、实验内容及步骤:

给定带限信号 f(t),其频谱为

1、画出此信号的频谱图(ω的取值:-0.5π <ω <0.5π ,精度取0.01rad )。 答:画出f(t)的频谱图即F(W)的图像 程序代码如下: #include #include #define PI 3.14 double f(double w) {

if (w>=-0.5*PI && w<=0.5*PI)

return cos(w);

else return 0;

}

main()

{

double w,F;

FILE *fp;

for (w=-0.5*PI;w<=0.5*PI;w+=0.01) {

F=f(w);

printf("w=%.2f, F(w)=%f\n",w,F);

fp=fopen("d:\\2.txt","w");

fprintf(fp,"%f\t",F);

}

system("pause");

}

③F(W)的图像

2、对此频域信号进行傅里叶逆变换,得到相应的时域信号,画出此信号的时域波形f(t)(t的取值:-20s

答:对此频域信号进行傅里叶逆变换,得到相应的时域信号,画出此信号的时域波形f(t)

程序代码如下:

#include

#include

#define PI 3.14

double f(double t)

{

double w=-0.5*PI,f=0;

double ans;

while(w<=0.5*PI)

{

f=f+cos(w)*cos(w*t)*0.01;

w=w+0.01;

}

ans=f/(2*PI);

return ans;

}

main()

{

double t,ans=0;

for(t=-20;t<20;t+=0.1)

{

ans=f(t);

printf("t=%.1f, f(t)=%f\n",t,ans);

}

system("pause");

}

将实验数据导入matlab,对数据进行仿真绘图。

3 分别用三种不同抽样频率f =0.2Hz,0.5 Hz,1.0 Hz的周期矩形脉冲信号(矩形脉冲的幅度E取1,宽度τ取0.01s)对f(t) 进行抽样,画出抽样后的信号的频谱图(ω的取值:-10rad <ω<10 rad,精度取0.01rad )。

答:三种不同频率的抽样

分别用三种不同抽样频率f =0.2Hz,0.5 Hz,1.0 Hz的周期矩形脉冲信号(矩形脉冲的幅度E取1,宽度τ取0.01s)对f(t)进行抽样,画出抽样后的信号的频谱图

程序代码如下:

#include

#include

#define PI 3.14

#define INF 2000

double sa(double x)

if (x==0) return 1;

else return sin(x)/x;

}

double f1(double w)

{

if (w>=-0.5*PI && w<=0.5*PI)

return cos(w);

else return 0;

}

double f2(double w,double f)

{

double s=0,ans;

int n;

for (n=-INF;n<=INF;n+=1)

{

s=s+f1(w-n*2*PI*f)*sa(n*2*PI*f*0.01/2); }

ans=s*0.01*f;

return ans;

}

main()

double w,fs=0,f;

f=0.25; /*0.2,0.5,1*/

for (w=-10;w<=10;w+=0.1)

{

fs=f2(w,f);

printf("w=%.2f, Fs(w)=%f\n",w,fs);

}

system("pause");

}

③不同抽样频率下的频谱图:

f=0.2Hz

f=0.5Hz

相关文档
最新文档