离散时间信号通过线性时不变系统实验报告教材Word格式文档下载.docx
《离散时间信号通过线性时不变系统实验报告教材Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《离散时间信号通过线性时不变系统实验报告教材Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
其中f为数字频率,w为数字角频率。
产生两个信号:
N取大于500.
设两个离散时间线性时不变系统分别为:
系统1:
系统2:
其中:
2、实验内容
(1)令
分别通过1、2(注意:
通过系统1可以用线性卷积求解,通过系统2必须用差分方程求解),注意系统1、2输出信号的区别和共性。
#include<
stdio.h>
#include<
graphics.h>
math.h>
#definepi3.1415926
voidconv(floatu[],floatv[],floatw[],intm,intn);
//voidplot(intxlenth,float*y,char*name,intgain,char*xlabel,char*ylabel);
voidmain()
{
inti,j;
intm,n;
intgain=1;
inty11,y22;
charname='
f'
;
charxlabel='
X'
ylabel='
Y'
floatxa[650]={0.0},xb[650]={0.0},h[650]={0.0},y1[650]={0.0},y2[650]={0.0};
for(i=0;
i<
600;
i++)
xa[i]=sin(2*pi/55.0*i);
xb[i]=sin(2*pi/55.0*i)+sin(2*pi*20.0/55.0*i);
for(j=0;
j<
=49;
j++)
h[j]=1.0;
m=sizeof(xa)/sizeof(xa[0]);
n=sizeof(xb)/sizeof(xb[0]);
//a=sizeof(h)/sizeof(h[0]);
y11=sizeof(y1)/sizeof(y1[0]);
y22=sizeof(y2)/sizeof(y2[0]);
conv(xa,h,y1,m,n);
conv(xb,h,y2,m,n);
//plot(y11,y1,s,gain,xlabel,ylabel);
initgraph(1000,500);
initgraph(960,480,SHOWCONSOLE);
//初始化图像
setbkcolor(WHITE);
//用背景色清空屏幕
cleardevice();
setcolor(BLACK);
outtextxy(480,10,name);
//图像名
outtextxy(900,220,xlabel);
//
outtextxy(5,10,ylabel);
line(0,240,960,240);
//画横坐标轴
line(30,0,30,480);
//画纵坐标轴
setlinestyle(PS_DASHDOT);
setlinestyle(PS_SOLID);
setlinecolor(BLUE);
650;
line(100+i,50,100+i,xa[i]*25+50);
line(100+i,150,100+i,xb[i]*25+150);
line(100+i,280,100+i,y1[i]*5+280);
line(100+i,400,100+i,y2[i]*5+400);
getchar();
closegraph;
//卷积子程序
}
voidconv(floatu[],floatv[],floatw[],intm,intn)
{
intk=m+n-1;
k;
for(j=max(0,i+1-n);
=min(i,m-1);
j++)
{
w[i]+=u[j]*v[i-j];
}
//画图函数参数xlength:
序列长度y:
序列幅度s:
图像名gain:
y坐标轴增益,用来显示y坐标xlabel:
x轴坐标标识符ylabel:
y轴坐标标识符
voidplot(intxlenth,float*y,char*name,intgain,char*xlabel,char*ylabel)
inti=0;
intj=0;
charss[6];
xlenth;
i++){
if(!
(i%50)){
sprintf(ss,"
%d"
i);
outtextxy(i+30,460,ss);
line(i+30,0,i+30,480);
}
}
480;
(i%40)){
line(0,i,960,i);
setorigin(30,240);
setaspectratio(1,-1);
//并未将outtextxy进行反转,outtextxy用的原来的坐标
line(i,y[i]*gain,i+1,y[i+1]*gain);
运行结果:
结论:
单频信号通过系统1和系统2输出结果的频率相同。
系
统1存在过冲,系统2效果更好。
(2)令
分别通过1、2,注意系统1、2输出信号的区别和共性与
(1)有何不同之处。
{inti,j,m;
floatxa[650]={0.0},xb[650]={0.0},y1[650]={0.0},y2[650]={0.0},a[650]={0.0},b[650]={0.0};
for(i=0;
xa[i]=sin(2*pi/55.0*i);
xb[i]=sin(2*pi/55.0*i)+sin(2*pi*20.0/55.0*i);
b[0]=0.0223,b[1]=0.01,b[2]=0.0223,a[1]=-1.7007;
a[2]=0.7613;
y1[0]=b[0]*xa[0];
for(m=1;
m<
m++)
{for(j=1;
((m-j+1)>
0)&
&
3;
{y1[m]=y1[m]+b[j]*xa[m-i];
for(i=1;
((m-i)>
{y1[m]=y1[m]-a[i]*y1[m-i];
y2[0]=b[0]*xb[0];
{y2[m]=y2[m]+b[j]*xb[m-i];
{y2[m]=y2[m]-a[i]*y2[m-i];
initgraph(1000,800);
运行结果:
结论:
信号有两个频率分量f1和f2,f1与
频率相同,过系统1和系统2后,输出结果与
过系统1和系统2类似,但
过系统后有毛刺,曲线不光滑,且过系统2曲线比过系统1曲线光滑。
说明,这两个系统相当于一个低通滤波器。
1.4实验总结
通过本次实验对离散时间信号通过线性时不变系统的原理有了更深的了解。
掌握了使用C语言求解线性卷积的方法。
对于单频率信号和双频信号通过相同系统后输出的波形的不同也有了更好的认识。