北京交通大学《信号与系统》研究性学习实验报告要点.docx
《北京交通大学《信号与系统》研究性学习实验报告要点.docx》由会员分享,可在线阅读,更多相关《北京交通大学《信号与系统》研究性学习实验报告要点.docx(81页珍藏版)》请在冰点文库上搜索。
北京交通大学《信号与系统》研究性学习实验报告要点
《信号与系统》课程研究性学习手册
姓名
学号
同组成员14******
14******
14******
指导教师
时间
1.
信号的时域分析专题研讨
【目的】
(1)掌握基本信号及其特性,了解实际信号的建模。
(2)掌握基本信号的运算,加深对信号时域分析基本原理和方法的理解,并建立时频之间的感性认识。
(3)学会仿真软件MATLAB的初步使用方法,掌握利用MATLAB进行信号表示和信号运算。
【研讨内容】
题目1:
基本信号的产生,语音的读取与播放
1)生成一个正弦信号,改变正弦信号的角频率和初始相位,观察波形变化,并听其声音的变化。
2)生成一个幅度为1、基频为2Hz、占空比为50%的周期方波。
3)观察一定时期内的股票上证指数变化,生成模拟其变化的指数信号。
4)分别录制一段男声、女声信号,进行音频信号的读取与播放,画出其时域波形。
【温馨提示】
(1)利用MATLAB函数wavread(file)读取.wav格式文件。
(2)利用MATLAB函数sound(x,fs)播放正弦信号和声音信号。
【题目分析】
【仿真程序】
1)生成一个正弦信号
t=[0:
0.001:
8];
y=sin(2*pi*t+pi/6);
plot(t,y)
改变其角频率和初始相位
t=[0:
0.001:
8];
y=sin(pi*t+pi/2);
plot(t,y)
2)生成一个幅度为1、基频为2Hz、占空比为50%的周期方波
t=[0:
0.001:
10];
y=square(2*t,50);
plot(t,y);
axis([0,10,-1.2,1.2])
3)观察一定时期内的股票上证指数变化,生成模拟其变化的指数信号。
x1=[0:
0.0015];
y1=2630+1.75*exp(x1);
x2=[5:
0.001:
10];
y2=2895-1.54*exp(0.8*x2);
x3=[10:
0.001:
15];
y3=2811+152*exp(-0.08*x3);
x4=[15:
0.001:
20];
y4=2600-151*exp(-0.08*x4);
x=[x1,x2,x3,x4];
y=[y1,y2,y3,y4];
plot(x,y);
4)分别录制一段男声、女声信号,进行音频信号的读取与播放,画出其时域波形。
[y,x,nbits]=wavread('C:
\Users\i\Desktop\信号研讨图片文件\日野聪.wav');
sound(y,x);
plot(y)
[y,x,nbits]=wavread('C:
\Users\i\Desktop\信号研讨图片文件\钉宫理惠.wav');
sound(y,x);
plot(y)
【仿真结果】
1)生成一个正弦信号
改变其角频率和初始相位
2)生成一个幅度为1、基频为2Hz、占空比为50%的周期方波
3)观察一定时期内的股票上证指数变化,生成模拟其变化的指数信号。
4)分别录制一段男声、女声信号,进行音频信号的读取与播放,画出其时域波形。
【结果分析】
(1)随着正弦信号角频率的变化,其波形变得更紧密,声音逐渐变得尖细而高。
(2)男声多低沉粗犷,主要是因为男声中低频分量更多;女声多高亢清脆,主要是因为女声中高频分量更多。
【自主学习内容】
wavread的读取与sound函数的使用,音频文件的放置。
【阅读文献】
《MATLAB语言与实践教程(第2版)》、《信号与系统》
【发现问题】(专题研讨或相关知识点学习中发现的问题):
根据声音信号的什么特征能有效区分出男声和女声?
【问题探究】
高频低频成分的多少,以及声音的尖细程度
【研讨内容】
题目2:
信号的基本运算(语音信号的翻转、展缩)
1)将原始音频信号在时域上进行延展、压缩,
2)将原始音频信号在时域上进行幅度放大与缩小,
3)将原始音频信号在时域上进行翻转,
【题目分析】
【仿真程序】
原始音频信号
[y,x,nbits]=wavread('D:
\音乐\动画歌曲(207曲)\灼眼的夏娜无损17曲\LightMyFire.wav');
plot(y)
1)将原始音频信号在时域上进行延展、压缩
将原始音频信号在时域上延展3倍
[y,x,nbits]=wavread('D:
\音乐\动画歌曲(207曲)\灼眼的夏娜无损17曲\LightMyFire.wav');
sigLength=length(y);
t=3*(0:
sigLength-1)/x;
figure;
plot(t,y);
xlabel('Time(s)');
将原始音频信号在时域上压缩为1/5
[y,x,nbits]=wavread('D:
\音乐\动画歌曲(207曲)\灼眼的夏娜无损17曲\LightMyFire.wav');
sigLength=length(y);
t=1/5*(0:
sigLength-1)/x;
figure;
plot(t,y);
xlabel('Time(s)');
2)将原始音频信号在时域上进行幅度放大与缩小
将原始音频信号的幅度扩大为2倍
[y,x,nbits]=wavread('D:
\音乐\动画歌曲(207曲)\灼眼的夏娜无损17曲\LightMyFire.wav');
sigLength=length(y);
m=fft(y,sigLength);
Pyy=m.*conj(m)/sigLength;
halflength=floor(sigLength/2);
f=x*(0:
halflength)/sigLength;
t=(0:
sigLength-1)/x;
figure;
plot(t,2*y);
xlabel('Time(s)');
将原始音频信号的幅度缩小为1/2
[y,x,nbits]=wavread('D:
\音乐\动画歌曲(207曲)\灼眼的夏娜无损17曲\LightMyFire.wav');
sigLength=length(y);
m=fft(y,sigLength);
Pyy=m.*conj(m)/sigLength;
halflength=floor(sigLength/2);
f=x*(0:
halflength)/sigLength;
t=(0:
sigLength-1)/x;
figure;
plot(t,1/2*y);
xlabel('Time(s)');
3)将原始音频信号在时域上进行翻转
[y,x,nbits]=wavread('D:
\音乐\动画歌曲(207曲)\灼眼的夏娜无损17曲\LightMyFire.wav');
sigLength=length(y);
t=-1*(0:
sigLength-1)/x;
figure;
plot(t,y);
xlabel('Time(s)');
【仿真结果】
原始音频信号
1)将原始音频信号在时域上进行延展、压缩
将原始音频信号在时域上延展3倍
将原始音频信号在时域上压缩为1/5
2)将原始音频信号在时域上进行幅度放大与缩小
将原始音频信号的幅度扩大为2倍
将原始音频信号的幅度缩小为1/2
3)将原始音频信号在时域上进行翻转
【结果分析】
以时间为横轴的图比以频率为横轴的图看起来复杂得多,时域上的分析在现阶段很困难。
对于原始音频信号,时域上的分析太复杂,而如果在频域上分析,则简化很多。
【自主学习内容】
信号的获取以及如何使用;MATLAB的一些基本语法;如何根据MATLAB语法来编写自己想表达的语句。
【阅读文献】
《MATLAB语言与实践教程(第2版)》、《信号与系统》
【发现问题】(专题研讨或相关知识点学习中发现的问题):
在查找资料时,发现音频单声道和双声道的编写此程序会有不同,同时语音信号的录入需要我们的注意。
【问题探究】
2.系统的时域分析专题研讨
【目的】
(1)掌握系统响应的时域求解,加深对系统时域分析基本原理和方法的理解。
(2)掌握连续系统零状态响应(卷积积分)数值计算的方法。
(3)学会仿真软件MATLAB的初步使用方法,掌握利用MATLAB求解连续系统和离散系统的零状态响应。
(4)培养学生发现问题、分析问题和解决问题的能力。
【研讨内容】
题目1:
系统响应时域求解
1)求一个RLC电路的零输入响应和零状态响应,
2)将原始音频信号中混入噪声,然后用M点滑动平均系统对受噪声干扰的信号去噪,改变M点数,比较不同点数下的去噪效果,
【题目分析】
(1)一个RLC电路,若
L=1H,C=1F,电容上的初始储能为Vc=2V,电感初始储能为i=1A,试求输入激励为X(t)时的零输入响应和零状态响应。
(2)题目要求采用M点滑动平均系统进行去噪。
M点滑动平均系统可以看成是N=0的差分方程。
调用filter函数时,调用参数a-1=1,b为有M个元素的向量,b中每个元素的值为1/M。
即M点的滑动平均系统输入输出关系为:
,同时我们将噪声设为n,函数为n=rand(n,1);原始信号为s。
通过调整M值,观察和比较去噪效果,从而得出结论。
【仿真程序】
(1)零输入响应
num=[6];den=[136];R0=[21];
sys=tf(num,den);
sys1=ss(sys);
t=0:
0.01:
8;
u=0*t;
lsim(sys1,u,t,R0);
axis([08-0.52.5])
零状态响应
num=[6];den=[136];
sys=tf(num,den);
t=0:
0.01:
8;
xt=10*sin(2*pi*t);
yt=lsim(sys,xt,t);
plot(t,yt,’r’);
axis([08-24])
(2)fs=44100;bits=16;R=100000
[y,fs,bits]=wavread('yuyin.wav',R);
k=0:
R-1;
wavplay(y,fs);
d=(rand(R,2)-0.5)*0.3;
x=y+d;
wavplay(x,fs);
figure
(1);plot(k,d,'r-.',k,s,'b--',k,x,'g-');xlabel('k');legend('d[k]','s[k]','x[k]');
M=1;b=ones(M,1)/M;a=1;
y=filter(b,a,x);
wavplay(y,fs);
figure
(2);plot(k,s,'b--',k,y,'r-');xlabel('k');legend('s[k]','y[k]');
【仿真结果】
零输入响应
零状态响应
M=1时
M=10时
【结果分析】
1.首先,我们取了M=5,去噪后的信号与原信号相比有一定的相近,即去噪功能相等。
2.其次,我们取了M=200,此时的操作已经不能称之为去噪,信号有一定的失真。
3.最后,我们取了M=1,去噪后的信号加上噪音的信号基本无区别。
可得结论:
M太大时,信号会失去失真度;M太小,平均值范围太小与加噪信号区别不大。
【自主学习内容】
Lsim函数的运用,filter函数的运用,对正常信号的加噪处理(即randn函数的运用)还有运用M点滑动平均系统对噪声信号进行去噪
【阅读文献】
MATLAB释义与实现(第二版)
【发现问题】(专题研讨或相关知识点学习中发现的问题):
axis([08-0.52.5]错误:
表达式或语句不正确--可能(、{或[不对称。
是不是想输入:
>>axis([08-0.52.5])
当开始时使用rand函数加噪时,令d=0.01*rand(1,R)*0.3-0.5;结果提示?
?
?
Errorusing==>plus
Matrixdimensionsmustagree.意思d和x的维数没有保持一致。
改用randn函数时,令d=0.01*randn(size(x))*0.3-0.5就成功地把噪声加入了进去。
【问题探究】
在对两个函数进行加法计算时要保持维数相同。
【研讨内容】
题目2:
连续信号卷积的近似计算
两个连续信号的卷积定义为
为了进行数值计算,需对连续信号进行抽样。
记x[k]=x(k∆),h[k]=h(k∆),∆为进行数值计算的抽样间隔。
则连续信号卷积可近似的写为
(1)
这就可以利用conv函数可近似计算连续信号的卷积。
设x(t)=u(t)-u(t-1),h(t)=x(t)*x(t),
(a)为了与近似计算的结果作比较,用解析法求出y(t)=x(t)*h(t);
(b)用不同的∆计算出卷积的数值近似值,并和(a)中的结果作比较;
(c)证明
(1)式成立;
(d)若x(t)和h(t)不是时限信号,则用上面的方法进行近似计算会遇到什么问题?
给出一种解决问题的方案;
(e)若将x(t)和h(t)近似表示为
推导近似计算卷积的算法。
取相同的抽样间隔,比较两种方法的计算卷积误差。
【题目分析】
(a),求出y(t)的函数表达式,并画出它的图像,便于和后面通过
算出的信号作比较。
(b),Matlab中不可以直接进行连续的信号的卷积,必须得先对连续信号采样,得到离散的信号,然后求得两个离散信号的卷积,得到另外一个离散信号y[kΔ],最后再把离散的信号连续化,得到要得到的y(kΔ)。
通过改变Δ的值来与(a)中所得结果进行对比。
(c),由于积分可以用求和的极限来表示,所以,当
足够小时,
成立。
(d),Matlab不能表示出非时限信号。
我们可以用符号运算或者
(e),两个相同的宽度的矩形波的卷积为一个三角波。
根据卷积性质,推导出卷积的
近似算法。
【仿真程序】
(a)为了与近似计算的结果作比较,用解析法求出y(t)=x(t)*h(t);
dt=0.000001;
t=-1:
dt:
4;
y=(0.5*t.^2).*[t>0&t<=1]+(-t.^2+3*t-1.5).*[t>1&t<=2]+(0.5*t.^2-3*t+4.5).*[t>2&t<=3];
plot(t,y,'r');
title('解析法求出y(t)的波形');
clearall;
dt=0.00001;
t=-1:
dt:
4;
x=rectpuls(t-0.5,1);
axis([-1,3,-2,2]);
hold;
plot(t,x,'b');
title('x(t)的波形');
h=tripuls(t-1,2);
plot(t,h,'g');
title('h(t)的波形');
clearall;
(b)用不同的∆计算出卷积的数值近似值,并和(a)中的结果作比较;
clearall;
c1=[0.01,0.1,0.25,0.3,0.5];
forn=1:
length(c1)
dt=c1(n);
t=-0.5:
dt:
2;
x=rectpuls(t-0.5,1);
h=tripuls(t-1,2);
y=conv(x,h)*dt;
t1=-1:
dt:
4;
plot(t1,y)
str2=num2str(dt);
str3=strcat('当dt=',str2);
str1=strcat(str3,'的波形');
title(str1);
pause;
end;
(e)若将x(t)和h(t)近似表示为
推导近似计算卷积的算法。
取相同的抽样间隔,比较两种方法的计算卷积误差。
clearall;
dt=0.001;
c1=[0.01,0.1,0.25,0.3,0.5];
forn=1:
length(c1)
Dt=c1(n);
N=Dt/dt;
t=0:
dt:
4;
m=length(t);
n1=1/Dt;
n2=2/Dt;
x=rectpuls(t-0.5,1);
x1=x(1:
N:
m);
h=tripuls(t-1,2,0);
h1=h(1:
N:
m);
sum=0;
form=1:
n2
forn=1:
n1
y=[t>(m+n)*Dt&t<(m+n+1)*Dt].*(t-(m+n)*Dt)+[t>(m+n+1)*Dt&t<(m+n+2)*Dt].*((m+n+2)*Dt-t);
sum=sum+x1(n)*h1(m)*y;
end;
end;
sum=sum(find(sum~=0))
y=sum;
t=linspace(0,3,length(y));
plot(t,y,'r');
str2=num2str(Dt);
str3=strcat('当Dt=',str2);
str1=strcat(str3,'的波形');
title(str1);
pause;
end;
【仿真结果】
'解析法求出y(t)的波形'
x(t)波形:
h(t)波形:
(b)用不同的∆计算出卷积的数值近似值,并和(a)中的结果作比较;
用不同的∆计算出卷积:
(e)若将x(t)和h(t)近似表示为
推导近似计算卷积的算法。
取相同的抽样间隔,比较两种方法的计算卷积误差。
【结果分析】
(a)为了与近似计算的结果作比较,用解析法求出y(t)=x(t)*h(t);
x(t)=u(t)-u(t-1),
y(t)=x(t)*h(t)=[u(t)-u(t-1)]*[r(t)-2r(t-1)+r(t-2)]
当dt越小的时候,图像越平滑,越接近于利用解析法求得的结果。
dt越大是,误差越大。
(d)若x(t)和h(t)不是时限信号:
方法一:
matlab软件不能取到无穷大,函数值在到达某一值时会变成0。
解决办法是我们可以根据自己的需要,设定x(t)和h(t)在某一范围内的函数值,其他值均为0。
方法二:
我们可以采用matlab中的符号运算。
比如:
x1(t)=exp(-abs(t));x2(t)=sin(t);
那么x1(t)与x2(t)卷积可以通过以下程序实现:
symstx;
x1(t)=exp(-abs(t));
x2(t)=sin(t);
%c=x1(t)*x2(t-x);
c=exp(-abs(x))*(sin(t-x));
y=int(c,x,-inf,inf)
求得;x1(t)与x2(t)的卷积为y=sin(t)
(e)经过取值从0.01,0.1,0.25,0.3,0.5两种算法的不同波形比较,我们可以得到(b)的方法比较好,更接近于理论值。
【自主学习内容】
卷积函数conv的调用格式
【阅读文献】
[1]陈后金胡健薛健信号与系统.[M]北京:
高等教育出版社
[2]肖燕彩邱成齐红元MATLAB语言及实践教程.[M]北京:
北京交通大学出版社
【发现问题】(专题研讨或相关知识点学习中发现的问题):
暂无。
3.信号的频域分析专题研讨
【目的】
(1)建立工程应用中有效带宽的概念,了解有限次谐波合成信号及吉伯斯现象。
(2)掌握带限信号,带通信号、未知信号等不同特性的连续时间信号的抽样,以及抽样过程中的参数选择与确定。
认识混叠误差,以及减小混叠误差的措施。
(3)加深对信号频域分析基本原理和方法的理解。
(4)锻炼学生综合利用所学理论和技术,分析与解决实际问题的能力。
【研讨内容】——基础题
题目1:
吉伯斯现象
(1)以
定义信号的有效带宽,试确定下图所示信号的有效带宽
,取A=1,T=2。
(2)画出有效带宽内有限项谐波合成的近似波形,并对结果加以讨论和比较。
(3)增加谐波的项数,观察其合成的近似波形,并对结果加以讨论和比较。
(a)周期矩形信号(b)周期三角波信号
【知识点】
连续周期信号的频域分析,有效带宽,吉伯斯现象
【信号频谱及有效带宽计算】
(a)周期矩形信号:
由于此周期矩形信号的周期T=2,所以
周期信号在区间[-1,1]的表达式为
由于x(t)是奇对称信号,因此有 C0=0
根据傅里叶系数计算公式,有
计算可得周期矩形信号的频谱Cn为
,
由功率计算公式:
得:
P=1/4。
根据有效带宽的定义:
,解得
。
(b)周期三角波信号的频谱及有效带宽的计算:
由于此周期矩形信号的周期T=2,所以 W0=2π/T=π
周期信号在区间[0,2]的表达式为
由于这个周期三角波信号的偶对称信号,所以
根据傅里叶系数的计算 公式,在
时有
计算可得周期矩形信号的频谱为
由功率计算公式
得
P=1/3
根据有效带宽的定义
,得
【仿真程序】
(1)周期矩形信号:
t=-2:
0.001:
2;
N=input('N=');
c0=0;
xN=c0*ones(1,length(t));
for n=1:
2:
N
xN=xN+sin(n*pi*t)/(n*pi)-cos(n*pi)*sin(n*pi*t)/(n*pi);
end
plot(t,xN);
Gridon;
周期三角波信号:
t=-2:
0.001:
2;
N=input('N=');
c0=0.5;
xN=c0*ones(1,length(t));
for n=1:
2:
N
xN=xN+2*cos(n*pi)*(1-cos(n*pi))*cos(n*pi*t)/(n*n*pi*pi);
end
plot(t,xN);
grid on
【仿真结果】
(a) 周期矩形信号的仿真结果是:
N=3时
N=7时
N=31时
(b) 周期三角波的信号的仿真结果:
N=3时
N=7时
N=31时
【结果分析】
提示:
应从以下几方面对结果进行分析:
(1)随着N值的增加,图(a) 和图(b)信号有效带宽内有限项谐波合成波形与原波形越来越接近。
到一定的程度,两个图形基本达到一致。
(2)时域特性与有效带宽内谐波次数的关系。
谐波会随着其次数的增加,而减弱其对信号时域的影响。
(3)谐波次数增加,(a)在不连续点附近部分和 x(t)所呈现的起伏,这个起伏的峰值大小似乎不随N 增大而下降,(b)图中也是一样。
也就是说,一个不连续信号x(t)的傅里叶级数的截断近似xN(t),一般来说,在接近不连续点处将呈现高频起伏和超量,而且,若在实际情况下利用这样一个近似式的话,就应该选择足够大的N ,以保证这些起伏拥有的总能量可以忽略.当然,在极限情况下,近似误差的能量是零,而且一个不连续的信号(如方波)的傅里叶级数表示是收敛的。
【自主学习内容】
吉伯斯现象与傅里叶级数的联系,matlab中信号的合成,连续时间周期信号的傅里叶级数的物理意义和分析方法。
【阅读文献】
[1]陈后金胡健薛健信号与系统.[M]北京:
高等教育出版社
[2]肖燕彩邱成齐红元MATLAB语言及实践教程.[M]北京:
北京交通大