- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
离散时间信号通过线性时不变系统实验报告
离散时间信号通过线性时不变系统
1.1 实验目的
1、通过本实验,进一步加深对离散线性时不变系统的理解。
2、掌握利用线性卷积求解离散线性时不变系统输出的方法。
3、掌握利用差分方程求解离散线性时不变系统输出的方法。
1.2 实验原理与方法
离散时间系统的输出信号与输入信号之间的关系为:
离散时间线性时不变系统的特点是系统具有线性性质和线性时不变性质。即满足线性叠加定理:
系统对输入信号的运算关系在整个过程中不随时间变化,即系统是时不变系统:
对于LTI系统,设系统的单位脉冲响应为h(n),则系统输入输出满足线性卷积关系:
还可以用一个N阶线性常系数差分方程来表示:
当a=0时,系统输入输出满足线性卷积的关系。
1.3 实验内容及步骤
1、编制信号产生、卷积、求解差分方程和显示子程序
设模拟正弦信号:,现以T为周期,对其进行采样,得到正弦序列为:
其中f为数字频率,w为数字角频率。
产生两个信号:
N取大于500.
设两个离散时间线性时不变系统分别为:
系统1:
系统2:
其中:
2、实验内容
(1)令分别通过1、2(注意:通过系统1可以用线性卷积求解,通过系统2必须用差分方程求解),注意系统1、2输出信号的区别和共性。
#includestdio.h
#includegraphics.h
#includemath.h
#define pi 3.1415926
void conv(float u[],float v[],float w[], int m, int n);
//void plot(int xlenth,float *y,char *name,int gain,char *xlabel,char *ylabel);
void main()
{
int i,j;
int m,n;
int gain=1;
int y11,y22;
char name=f;
char xlabel=X,ylabel=Y;
float xa[650]={0.0},xb[650]={0.0},h[650]={0.0},y1[650]={0.0},y2[650]={0.0};
for(i=0;i600;i++)
xa[i]=sin(2*pi/55.0*i);
for(i=0;i600;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);
y11=sizeof(y1)/sizeof(y1[0]);
y22=sizeof(y2)/sizeof(y2[0]);
//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);
for(i=0;i650;i++)
line(100+i,50,100+i,xa[i]*25+50);
for(i=0;i650;i++)
line(100+i,150,100+i,xb[i]*25+150);
for(i=0;i650;i++)
line(100+i,280,100+i,y1[i]*5+280);
for(i=0;i650;i++)
line(100+i,400
文档评论(0)