一、 实验目的
1.熟悉常见信号的傅里叶变换,了解傅里叶变换的MATLAB 实现方法;
2.理解调制定理,理解傅里叶变换的频移特性;
3. 理解频分多路复用的原理;
三、 实验内容
1.给定调制信号f (t) = Sa(pt) ,载波为cos(10πt),用matlab 画出调制信号和已调信号在时域和频域的图形,(提示:用直接调用专用函数法如例1,保存两张实验波形图。采用同步解调方法解调,既用已调信号和相干载波相乘,实现解调,如图3.1.3。再通过低通滤波器取出有用的低频分量,如图3.1.4所示。
程序:
t=-10:0.01:10;
f=sin(pi*t)./(pi*t);
subplot(2,1,1);
plot(t,f);grid;
axis([-10 10 -0.5 1.5])
title('f(t)=sin(πt)/πt');
syms t w;
f=sin(pi*t)./(pi*t);
Fw=fourier(f,t,w);
FFP=abs(Fw);
subplot(2,1,2)
ezplot(FFP,[-30*pi 30*pi]);grid;
axis([-30*pi 30*pi 0 1.5]);
figure(2);
t=-10:0.1:10;
y=(sin(pi*t)./(pi*t)).*cos(10*pi*t);
subplot(2,1,1);
plot(t,y);grid;
axis([-10 10 -1 1]);
title('y(t)=sin(πt)/(πt)*cos(10*π*t)');
syms t w
y=(sin(pi*t)./(pi*t)).*cos(10*pi*t);
Fw=fourier(y,t,w);
FFP=abs(Fw);
subplot(2,1,2);
ezplot(FFP,[-30*pi 30*pi]);grid;
axis([-30*pi 30*pi 0 1])
figure(3);
t=-10:0.1:10;
y1=(sin(pi*t)./(pi*t)).*cos(10*pi*t).*cos(10*pi*t);
subplot(2,1,1);
plot(t,y1);grid;
axis([-10 10 -1 1]);
title('y1(t)=sin(πt)/(πt)*cos(10*π*t)*cos(10*π*t)');
syms t w
y1=(sin(pi*t)./(pi*t)).*cos(10*pi*t).*cos(10*pi*t);
Fw=fourier(y1,t,w);
FFP=abs(Fw);
subplot(2,1,2);
ezplot(FFP,[-30*pi 30*pi]);grid;
axis([-30*pi 30*pi 0 1])
figure(4);
t=-10:0.01:10;
f1=sin(pi*t)./(pi*t);
subplot(2,1,1);
plot(t,f1);grid;
axis([-10 10 -1 1])
title('f(t)=sin(πt)/πt');
syms t w;
f=sin(pi*t)./(pi*t);
Fw=fourier(f,t,w);
FFP=abs(Fw);
subplot(2,1,2);
ezplot(FFP,[-30*pi 30*pi]);grid;
axis([-30*pi 30*pi 0 1.5])
运行结果:
2.给定调制信号 f 1 (t) = Sa 2 (pt) ,载波为cos(20πt),用matlab 画出调制信号和已调信号在时域和频域的图形,保存两张实验波形图。( 图3.2.1图3.2.2) 。采用同步解调方法解调,既用已调信号有用的低频分量。和相干载波相乘,实现解调,(频谱搬移 ) 。再通过低通滤波器取出
程序:
t=-10:0.1:10;
f1=(sin(pi*t)./(pi*t)).*(sin(pi*t)./(pi*t));
subplot(2,1,1);
plot(t,f1);
grid;
title('f1(t)=sin(πt)/(πt)*sin(πt)/(πt)');
axis([-10 10 -0.5 1.5]);
syms t w;
f1=(sin(pi*t)./(pi*t)).*(sin(pi*t)./(pi*t));
Fw=fourier(f1,t,w);
FFP=abs(Fw);
subplot(2,1,2);
ezplot(FFP,[-30*pi 30*pi]);grid;
axis([-30*pi 30*pi 0 1.5]);
figure(2);
t=-10:0.01:10;
y1=(sin(pi*t)./(pi*t)).*(sin(pi*t)./(pi*t)).*cos(20*pi*t);
subplot(2,1,1);
plot(t,y1);
grid;
title('y1(t)=sin(πt)/(πt)*sin(πt)/(πt)*cos(20*π*t)');
axis([-8 8 -1 1]);
syms t w;
y1=(sin(pi*t)./(pi*t)).*(sin(pi*t)./(pi*t)).*cos(20*pi*t);
Fw=fourier(y1,t,w);
FFP=abs(Fw);
subplot(2,1,2);
ezplot(FFP,[-30*pi 30*pi]);grid;
axis([-30*pi 30*pi 0 1]);
figure(3);
t=-10:0.09501:10;
y2=(sin(pi*t)./(pi*t)).*(sin(pi*t)./(pi*t)).*cos(20*pi*t).*cos(20*pi*t);
subplot(2,1,1);
plot(t,y2);grid;
title('y2(t)=sin(πt)/(πt)*sin(πt)/(πt)*cos(20*π*t)*cos(20*π*t)');
axis([-10 10 -0.5 1.5])
syms t w;
y2=(sin(pi*t)./(pi*t)).*(sin(pi*t)./(pi*t)).*cos(20*pi*t).*cos(20*pi*t);
Fw=fourier(y2,t,w);
FFP=abs(Fw);
subplot(2,1,2);
ezplot(FFP,[-60*pi 60*pi]);grid;
axis([-60*pi 60*pi 0 1]);
figure(4);
t=-10:0.1:10;
f1=(sin(pi*t)./(pi*t)).*(sin(pi*t)./(pi*t));
subplot(2,1,1);
plot(t,f1);
grid;
title('f1(t)=sin(πt)/(πt)*sin(πt)/(πt)');
axis([-10 10 -0.5 1.5]);
syms t w;
f1=(sin(pi*t)./(pi*t)).*(sin(pi*t)./(pi*t));
Fw=fourier(f1,t,w);
FFP=abs(Fw);
subplot(2,1,2);
ezplot(FFP,[-30*pi 30*pi]);grid;
axis([-30*pi 30*pi 0 1.5]);
运行结果:
3.上述两路信号合并组成一路复合信号f 2 (t) = f (t) cos(10pt) +f 1(t) cos(20pt) , 用matlab 画出此复合信号的时域频域图 3.3.1 。设计带通滤波器把信号f 1(t) = Sa2 (t) 的 已调信号的频谱滤出来,如图 3.3.2 所示,然后对此信号进行解调,解调后时域和频域图3.3.3, 滤出低频分量。
程序:
syms t w;
f1=sym('sin(pi*t)/(pi*t)*(sin(pi*t)/(pi*t))*cos(20*pi*t)');
f2=sym('sin(pi*t)/(pi*t)*cos(10*pi*t)');
f=f1+f2;
subplot(2,1,1);
ezplot(f,[-6 6]);grid;
axis([-10 10 -1 1]);
Fw1=fourier(f1,t,w);
Fw2=fourier(f2,t,w);
Fw=Fw1+Fw2;
FFP=abs(Fw);
subplot(2,1,2);
ezplot(FFP,[-90 90]);grid;
axis([-90 90 0 1]);
figure(2);
f3=sym('sin(pi*t)/(pi*t)*(sin(pi*t)/(pi*t))*cos(20*pi*t)');
subplot(2,1,1);
ezplot(f3,[-6 6]);grid;
axis([-10 10 -1 1]);
F=FFP*(heaviside(w+70)-heaviside(w+50)+heaviside(w-50));
subplot(2,1,2);
ezplot(F,[-90 90]);grid;
axis([-90 90 0 1.5]);
figure(3);
f4=f3*cos(20*pi*t);
subplot(2,1,1);
ezplot(f4,[-6 6]);grid;
axis([-10 10 -1 1]);
Fw3=fourier(f4,t,w);
FFP2=abs(Fw3);
subplot(2,1,2);
ezplot(FFP2,[-150 150]);grid;
axis([-140 140 0 1]);
figure(4);
f5=sym('sin(pi*t)/(pi*t)*(sin(pi*t)/(pi*t))');
subplot(2,1,1);
ezplot(f5,[-10 10]);grid;
axis([-10 10 -0.5 1.5]);
F2=FFP2*(heaviside(w+10)-heaviside(w-10))*2;
subplot(2,1,2);
ezplot(F2,[-90 90]);grid;
axis([-90 90 0 1.5]);
运行结果:
四.思考题:
1、多路复用中,多路信号是如何实现频率的不重叠?在接收端,如何分开多路
信号的?
答:频分复用在发送端利用不同频率的载波将多路信号的频率调至到不同的频段,以实现多路复用。频分复用的多路信号在频率上不会重叠,合并在一起通过一条信道传输,到达接收端后可以通过中心频率不同的带通滤波器彼此分离开来。
思考题2:用傅里叶变换的数值计算实现实验内容 1.
程序:
R=0.02;
t=-10:R:10;
ft=sinc(t);
W1=28*pi;
M=500;k=-M:M;w=k*W1/M;
Fw=ft*exp(-j*t'*w)*R;
FRw=abs(Fw);
subplot(2,1,1);plot(t,ft);grid;
axis([-10 10 -0.5 1.5]);
xlabel('t');ylabel('f(t)');
title('sin(πt)/(πt)');
subplot(2,1,2);plot(w,FRw);grid;
axis([-90 90 0 1.5]);
xlabel('w');ylabel('F(w)');
title('f(t)的振幅频谱图');
figure(2);
ft1=ft.*cos(10*pi*t);
Fw1=ft1*exp(-j*t'*w)*R;
FRw1=abs(Fw1);
subplot(2,1,1);plot(t,ft1);grid;
axis([-10 10 -1 1]);
xlabel('t');ylabel('f(t)');
title('(sin(πt)/(πt))*cos(10πt)');
subplot(2,1,2);plot(w,FRw1);grid;
axis([-90 90 0 1]);
xlabel('w');ylabel('F(w)');
title('已调信号的振幅频谱图');
figure(3)
ft2=ft1.*cos(10*pi*t);
Fw2=ft2*exp(-j*t'*w)*R;
FRw2=abs(Fw2);
subplot(2,1,1);plot(t,ft2);grid;
axis([-10 10 -1 1]);
xlabel('t');ylabel('f(t)');
title('(sin(πt)/(πt))*cos(10πt)*cos(10πt)');
subplot(2,1,2);plot(w,FRw2);grid;
axis([-90 90 0 1]);
xlabel('w');ylabel('F(w)');
title('解调信号的振幅频谱图');
figure(4);
F=FRw2.*(heaviside(w+5)-heaviside(w-5))*2;
subplot(2,1,1);plot(t,ft);grid;
axis([-10 10 -0.5 1.5]);
xlabel('t');ylabel('f(t)');
title('sin(πt)/(πt)');
subplot(2,1,2);plot(w,F);grid;
axis([-90 90 0 1.5]);
xlabel('w');ylabel('F(w)');
title('通过低通滤波后恢复的原信号的振幅频谱图');
信号与系统
课程设计报告
学院电气与电子工程学院
班级电气1010
学号
姓名
目录
一设计概述
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 验算循环卷积
4.2 验算离散卷积
阵列方法:
1 2 3
3 2 1
3 2 1
6 4
9
3 8 14
验算结果与编程计算结果一致。
四 体会与感想
本次课设花了不少心思,主要在细节问题上不能够做到一步到位,所以在检查过程中耗费了不少时间。同时对于C语言的学习,没有做到稳固。所以导致以前学的很多知识都已经忘记,不得不又拾起以前的课本。但至少这一次课设让我温习了以前的知识也懂得了知识需要时时刻刻去温习。免得以前的知识白学了,当然,在成功后还是蛮有成就感的。又是一个自己做的成果,很满足。
五 参考书目
1.Fundamentals of Signals and Systems -Using the Web and MATLAB
Edward W.Kamen Bonnie S.Heck著 科学出版社
2. 中文版office2003实用教程 徐贤军 著 清华大学出版社
3.《c程序设计(第三版)》 谭浩强 著 清华大学出版社
信号与系统实验课程实验报告20xx20xx学年第一学期实验名称专业学生姓名班级学号指导教师指导单位日期信号与系统实验一实验目的1了…
实验三线性系统的频域分析一实验目的1掌握傅立叶级数FT学会分析连续时间周期信号的频谱及MATLAB实现2掌握傅立叶变换Fjw了解傅…
重庆大学学生实验报告实验课程名称信号与系统双语开课实验室DS1407学院光电年级12级专业班电科02班学生姓名艾渝学号开课时间二学…
信号与系统B硬件实验报告姓名学号20xx0312920xx实验项目三连续系统的幅频特性一实验项目名称连续系统的幅频特性测量二实验目…
信号与系统实验报告实验名称信号的卷积实验时间周一第68节实验日期20xx1215姓名吕葛梁学号13081119姓名沈俊学号1308…
信号与系统实验心得体会为期四周的信号与系统测试实验结束了,细细品味起来每一次在顺利完成实验任务的同时,又都伴随着开心与愉快的心情,…
信号与系统实践分析班级:电子11姓名:王氏准考证号:05491122XXXX《信号与系统》实践分析信号与系统是电子信息类学生重要的…
实验一连续时间信号的频域分析一实验目的1掌握连续时间周期信号的傅里叶级数的物理意义和分析方法2观察截短傅里叶级数产生的Gibbs现…
信号与系统试验报告第1页实验一熟悉MATLAB环境和基本信号的产生与运算一实验目的1熟悉MATLAB的运行环境及基本操作命令2掌握…
重庆大学学生实验报告实验课程名称信号与系统双语开课实验室DS1407学院光电年级12级专业班电科02班学生姓名艾渝学号开课时间二学…
信号与系统实验总结论文本学期共有4次信号与系统实验,分别是:信号的分类与观察、非正弦周期信号的频谱分析、信号的抽样与恢复(PAM)…