信号的矩形脉冲抽样与恢复
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四实验报告
实验名称:信号的矩形脉冲抽样与恢复
一、实验目的:
1、加深对抽样定理的原理、物理意义以及抽样过程和信号恢复的
频谱变换特性的理解。
2、掌握借助计算机对信号抽样进行频域分析的方法。
二、实验原理:
图4.1为连续信号 f()t 的抽样与恢复的示意图
设输入信号 f()t 为带限信号(),如图4.2所示。
对 f(t) 进行矩形脉冲抽样。假设矩形抽样脉冲 p(t)的脉冲幅度为E,脉宽为τ,周期为Ts (抽样频率),则其频谱为P(w) ,即
图4.3给出了抽样脉冲 p (t)的时域波形及其频谱。
对 f(t)进行矩形脉冲抽样后得到信号 fs(t) ,其对应的频谱为
当 fs(t) 通过如图4.5所示的理想低通滤波器H(w)时,可从f(t)中恢复出原信号,所得恢复信号记作 f(t) 。
其中理想低通滤波器H(w) 的频谱特性为
三、实验内容
给定带限信号 f(t),其频谱为
1 画出此信号的频谱图(ω的取值:-0.5π <ω <0.5π,精度取0.01rad )。
2 对此频域信号进行傅里叶逆变换,得到相应的时域信号,画出此信号的时域波形 f(t)(t 的取值:-20st<<20s;精度取0.1s)。
3 分别用三种不同抽样频率 f =0.2Hz,0.5 Hz,1.0 Hz的周期矩形脉冲信号(矩形脉冲的幅度E取1,宽度τ取0.01s)对 f(t) 进行抽样,画出抽样后的信号的频谱图(ω的取值:-10rad <ω<10 rad,精度取0.01rad )。
4 针对 3 中抽样所得的矩形抽样信号,用滤波器对所得信
号进行滤波,所得恢复信号 f(t)的频谱记为F ‘(w),与原信号的频谱F(w)进行比较(ω的取值:-2rad <ω<2rad ,精度取0.01rad )。
四、实验程序、流程图和相关图像及对结果的分析
1、画出f(t)的频谱图即F(W)的图像
程序代码如下:
#include
#include
main()
{
double w,f;
int i;
FILE *fp;
fp=fopen("H:\\实验四第一步.txt","w");
printf("系统频谱为\n");
fprintf(fp,"系统频谱为\n");
fprintf(fp,"w\tf(w)\n");
for(i=1,w=-1.57;w<=1.57;w+=0.01,i++)
{
f=cos(w);
printf("f(%5.2f)=%6.3f\n",w,f);
fprintf(fp,"%5.2f\t%6.3f\n",w,f);
if(i%63==0) fprintf(fp,"\n\n");
}
}
F(W)的图像为
2、对此频域信号进行傅里叶逆变换,得到相应的时域信号,画出此信号的时域波形 f(t)
流程图为
程序代码如下:
#include
#include
#define pi 3.1415926
double ft(double t) //求f(t)的函数
{
double w=-pi/2,f=0;
for(;w<=pi/2;w+=0.001)
f+=cos(w)*cos(w*t)*0.001;
f=f/pi/2;
return(f);
}
main()
{
double t,xinhao;
unsigned int i;
FILE *fp;
fp=fopen("H:\\实验四第二步.txt","w");
fprintf(fp,"时域信号为\n");
fprintf(fp,"t\tf(t)\n");
for(t=-20,i=1;t<=20.1;t+=0.1,i++)
{
xinhao=ft(t);
printf("f(%4.1f)=%6.3f\t\t",t,xinhao);
if(i%3==0)
printf("\n");
fprintf(fp,"%4.1f\t%6.3f\n",t,xinhao);
//if(i%34==0)
// fprintf(fp,"\n\n");
}
}
f(t)的图像如下:
3、分别用三种不同抽样频率 f =0.2Hz,0.5 Hz,1.0 Hz的周期矩形脉冲信号(矩形脉冲的幅度E取1,宽度τ取0.01s)对 f(t) 进行抽样,画出抽样后的信号的频谱图
流程图为:
程序代码如下:
#include
#include
#define pi 3.1415926
#define WS 1*2*3.1415926
#define E 1
#define m 0.01
double xinhao(double w) //信号频谱{
double f;
if(w>=-1.57&&w<=1.57)
f=cos(w);
else
f=0;
return(f);
}
double cyang(double w) //抽样信号的频谱{
double fs,a;