电子科技大学
信号与系统
实 验 报 告
学生姓名:邢锦涛
学号:2014050201018
指导教师:唐普英
一、 实验室名称:
信号与系统实验室科A306
二、 实验项目名称:
信号与系统硬件实验:
实验一:连续系统的幅频特性
实验二:连续信号的采样和回复
三、 实验原理:
实验一:
正弦波信号输入连续LTI系统,输出仍为正弦波信号。
图中
)
通过测量输入、输出的正弦波信号幅度,计算输入、输出的正弦波信号幅度比值,可以得到系统的幅频特性在处的测量值。改变可以测出不同频率处的系统幅频特性。
实验二:
实际采样和恢复系统如图3.4-1所示。可以证明,奈奎斯特采样定理仍然成立。
实际采样和恢复系统
采样脉冲:
其中,,,。
采样后的信号:
当采样频率大于信号最高频率两倍,可以用低通滤波器由采样后的信号恢复原始信号。
四、实验目的:
(1) 使学生对系统的频率特性有深入了解。
(2) 使学生通过采样保持电路理解采样原理。
(3) 使学生理解采样信号的恢复。
四、 实验内容:
实验一:
打开PC机端软件SSP.EXE,在下拉菜单“实验选择”中选择“实验三”;使用串口电缆连接计算机串口和实验箱串口,打开实验箱电源。
实验二:
打开PC机端软件SSP.EXE,在下拉菜单“实验选择”中选择“实验六”;使用串口电缆连接计算机串口和实验箱串口,打开实验箱电源。
五、 实验器材(设备、元器件):
a) 信号与系统实验板
b) 数字信号处理实验箱
c) PC机端信号与系统实验软件SSP.exe
d) +5V电源和计算机串口连接线
六、 实验步骤:
实验一:
实验内容(一)、低通滤波器的幅频特性测量
实验步骤:
1、信号选择:按实验箱键盘“3”选择“正弦波”,再按“+”或“-”依次选择表3.1中一个频率。
2、连接接口区的“输入信号1”和“输出信号”,如图3.3-2所示。点击SSP软件界面上的“接收输入数据”按钮,观察输入正弦波。将正弦波频率值和幅度值(Vpp/2, Vpp为峰-峰值)记录于表3.3-1。
图3.3-2 观察输入正弦波的连线示意图
3、按图3.3-3的模块连线示意图连接各模块。
图3.3-3 实验三实验内容(一)模块连线示意图
4、 点击SSP软件界面上的“接收输出数据”按钮,观察输入正弦波通过连续系统的响应波形;适当调整X、Y轴的分辨率可得到实验结果。将输出正弦波的幅度值(Vpp/2, Vpp为峰-峰值)记录于表3.3-1。
5、重复步骤1~4,依次改变正弦波的频率,记录输入正弦波的幅度值和响应波形的幅度值
实验内容(二)、带通滤波器的幅频特性测量
实验步骤:
重复实验内容(一)的实验步骤1~5。注意在第3步按图3.3-5的模块连线示意图连接各模块。
图3.3-5 实验三实验内容(二)模块连线示意图
将输入正弦波频率值、幅度值和响应波形的幅度值记录。
实验二:
1、连接接口区的“输入信号1”和“输出信号”,如图所示。
观察原始信号的连线示意图
2、信号选择:按“3”选择“正弦波”,再按“+”或“-”设置正弦波频率为“2.6kHz”。 按“F4”键把采样脉冲设为10kHz。
3、点击SSP软件界面上的“原始波形”按钮,观察原始正弦波
4、按图的模块连线示意图连接各模块。
观察采样波形的模块连线示意图
5、点击SSP软件界面上的“采样后波形”按钮,观察采样后的波形
6、用截止频率为3kHz的低通滤波器U11恢复采样后的信号。按图的模块连线示意图连接各模块。
观察恢复波形的模块连线示意图
7、点击SSP软件界面上的“恢复波形”按钮,观察恢复后的波形
实验内容(二)、采样产生频谱交迭的验证
实验步骤:
重复实验内容(一)的实验步骤1~7;注意在第2步中正弦波的频率仍设为“2.6kHz”后,按“F4”键把采样脉冲频率设为“5kHz”;在第6步中用3kHz的恢复滤波器(U1)
七、 实验数据及结果分析:
实验一:
表一:低通滤波器幅频特性记录表
表二:带通滤波器幅频特性记录表
根据表一中的数据,可以算出低通滤波器的截止频率约为2.6kHz。
实验一幅频特性曲线与实验二波形曲线为手绘。
八、 实验结论:
(1) 低通滤波器在高频区域出现输出信号明显的衰减
(2) 带通滤波器在低频与高频区域均出现了信号的明显衰减
(3) 使用10kHz的采样频率,可以将采样信号恢复成原始信号
(4) 使用5kHz的采样频率,则不能将采样信号恢复成原始信号
九、 总结及心得体会:
通过本次实验,我加深了对课本中内容的理解与掌握,便于将书中内容进行联结,加深了整体印象;并且对系统的幅频特性及滤波器的工作原理有了更清楚的认识。
在本次实验过程中,我也发现了书本学习的一些问题。例如实际系统的幅频特性与理想的数据差异较大,导致截止频率与计算值有较大误差;等等。这使我更清楚地认识到:工科类课程不能死读书,必须辅以一定的教学实验,有些内容仅凭书本知识实在难以理解,但做过实验后便能较好地掌握。
十、 对本实验过程及方法、手段的改进建议:
实验前最好告知学生实验内容,以便学生在课前对实验过程有一定了解,能够让学生在做实验时心中有数,加深印象。
此外,可以稍微提高实验的难度,检查学生的掌握情况并提升学生的动手实 验能力。
另外,希望增加实验课的课时,或对学生在某些时间段开放实验室,使学生在无法理解课本时能通过实验来解决疑惑
报告评分:
指导教师签字:
第二篇:信号与系统课程设计报告--循环卷积和离散卷积的计算机计算
信号与系统
课程设计报告
学院电气与电子工程学院
班级电气1010
学号 U201012067
姓名周超尘
目录
一设计概述
1 设计题目………………………………………………3
2 设计目的………………………………………………3
3 具体步骤………………………………………………3
4 实现方法………………………………………………4
二设计目标…………………………………………………4
三设计内容
1 原理学习………………………………………………4
1.1循环卷积…………………………………………..5
1.2离散卷积…………………………………………..5
2 程序流程图……………………………………………6
3 c语言编程与计算
3.1 c语言程序………………………………………...7
3.2计算结果…………………………………………..8
4 验证计算结果
4.1 验算循环卷积……………………………………9
4.2 验算离散卷积……………………………………9
四体会与感想……………………………………………..10
五参考文献………………………………………………..10
一 设计概述
设计题目: 循环卷积和离散卷积的计算机计算
设计目的:1、自学C语言以及巩固信号与系统离散卷积与循环卷积的内容;
2、培养独立思考以及灵活应用所学知识的能力;
3、培养和掌握正确的设计思想和认真负责的设计态度;
4、自行检验与调试出精确、简便、实用、可靠的设计方法。
具体步骤:①仔细分析设计题目、目的及内容;
②分析离散卷积与循环卷积的特点与异同;
③分析计算步骤并画出流程图;
④用C语言进行编程并用VC6.0进行演算;
⑤自行计算进行验算;
⑥分析结果并分享体会
运用软件:office word2003 VC6.0
实现方法: 通过学习课本及参阅相关书籍以及网络,从理论上分析离散卷积和循环卷积的特点;学习用Word设计程序流程图,C语言编程进行计算,并验证计算结果。
二 设计目标
设有两离散序列和,则两序列的循环卷积和离散卷积分别为:
画出计算此两卷积的程序框图,并用C语言编写计算程序,计算出结果。
学生用C语言编程,分析计算结果。
三 设计内容
离散卷积和循环卷积的计算机计算
1 原理学习
卷积关系最重要的一种情况,就是在信号与线性系统或数字信号处理中的卷积定理。利用该定理,可以将时间域或空间域中的卷积运算等价为频率域的相乘运算,从而利用FFT等快速算法,实现有效的计算,节省运算代价。
1.1 循环卷积
循环卷积比起线性卷积,在运算速度上有很大的优越性,它可以采用快速傅里叶变换(FFT)技术,若能利用循环卷积求线性卷积,会带来很大的方便。一般情况下,n≧N时x[n]*v[n]并不等于零,x[n]*v[n]的N点DFT和这些值不一致。因此,有必要定义一种卷积运算,使得n=0,1,…,N-1之外的卷积信号x[n]*v[n]等于零,这就引出循环卷积的概念。离散卷积和循环卷积之间的唯一区别是:用折叠位移(模N)信号代替了离散卷积式中的折叠位移信号。
对于循环卷积来说,不仅要知道这两组数而且要确定N值。
1.2离散卷积
信号与线性系统中,定义x[n],v[n],其卷积为 计算离散卷积时,首先将x[n],v[n]中的离散时间序号n改为i,得到信号x[i],v[i],下一步确定v[n-i]和乘积x[i]v[n-i]。信号v[n-i]是信号v[i]的反折和平移,通过对x[i]v[n-i]中的i求和即可计算出来,式中i取一定范围的的整数。
计算离散卷积时需要用户输入x[n]和v[m]的值,这样便可以得到所要求的离散卷积的值
3 c语言编程与计算
3.1 c语言程序
#include<stdio.h>
#include<stdlib.h>
void discreat();
void circle();
void main()
{int i;
printf("欢迎使用卷积计算程序\n");
printf("请进行选择,输入1进行循环卷积计算,输入2进行离散卷积计算:");
scanf("%d",&i);
printf("\n");
while(i!=1&&i!=2)
{printf("输入错误,请重新选择:");
scanf("%d",&i);
}
if(i=1)
circle();
else
discreat(),i--;
if(i=1)
discreat();
else
circle();
printf("感谢使用\n");
system("pause");
}
void circle()
{
int i,j;
i=j=0;
int t;
float a[100],b[100],c[200];
printf("现在计算循环卷积y\n");
printf("请输入N的值\n");
scanf("%d",&t);
printf("请输入x[n]\n");
for(i=0;i<=t-1;i++)
scanf("%f",&a[i]);
printf("请输入v[m]\n");
for(i=0;i<=t-1;i++)
scanf("%f",&b[i]);
for(j=0;j<=t-1;j++)c[j]=0;
for(j=0;j<=t-1;j++)
for(i=0;i<=t-1;i++)
if((j-i)>=0)
c[j]+=a[i]*b[j-i];
else if((j-i)<0)
c[j]+=a[i]*b[j-i+t];
printf("循环卷积y[n]为\n");
for(j=0;j<=t-1;j++)
printf("y[%d]=%f\n",j,c[j]);
}
void discreat()
{int n,m,k,q;
n=m=k=q=0;gg
static float x[100],y[100],z[200];
printf("计算离散卷积y\n");
printf("请输入x[n]的长度\n");
scanf("%d",&n);
printf("请输入v[m]的长度\n");
scanf("%d",&m);
printf("请输入x[n]\n");
for(k=0;k<=n-1;k++)
scanf("%f",&x[k]);
printf("请输入v[m]\n");
for(k=0;k<=m-1;k++)
scanf("%f",&y[k]);
for(q=0;q<=m+n-2;q++)
for(k=0;k<=n-1;k++)
if((q-k)>=0)
z[q]+=x[k]*y[q-k];
printf("离散卷积y[n]为\n");
for(q=0;q<=m+n-2;q++)
printf("y[%d]=%f\n",q,z[q]);
printf("其余值均为0\n");
}
3.2计算结果
4 验证计算结果
4.1 验算循环卷积
=x[0]v[0]+x[1]v[2]+x[2]v[1]=11, n=0
y[n]=x[n] ③v[m] =x[0]v[1]+x[1]v[0]+x[2]v[2]=11, n=1
=x[0]v[2]+x[1]v[1]+x[2]v[0]=14, n=2
4.2 验算离散卷积
阵列方法:
1 2 3
3 2 1
3 2 1
6 4
9
3 8 14
y[0]=3,n=0
y[1]=8, n=1
y[n]=x[n]*v[n]= y[2]=14, n=2
y[3]=8,n=3
y[4]=3,n=4
其他为0
验算结果与编程计算结果一致。
四 体会与感想
本次课设花了不少心思,主要在细节问题上不能够做到一步到位,所以在检查过程中耗费了不少时间。同时对于C语言的学习,没有做到稳固。所以导致以前学的很多知识都已经忘记,不得不又拾起以前的课本。但至少这一次课设让我温习了以前的知识也懂得了知识需要时时刻刻去温习。免得以前的知识白学了,当然,在成功后还是蛮有成就感的。又是一个自己做的成果,很满足。
五 参考书目
1.Fundamentals of Signals and Systems -Using the Web and MATLAB
Edward W.Kamen Bonnie S.Heck著 科学出版社
2. 中文版office2003实用教程 徐贤军 著 清华大学出版社
3.《c程序设计(第三版)》 谭浩强 著 清华大学出版社