信号与系统研究性学习报告.docx
《信号与系统研究性学习报告.docx》由会员分享,可在线阅读,更多相关《信号与系统研究性学习报告.docx(23页珍藏版)》请在冰豆网上搜索。
信号与系统研究性学习报告
《信号与系统》课程研究性学习手册
姓名
学号
同组成员
指导教师胡健
时间2011年11月9日
信号的时域分析专题研讨
【目的】
(1)掌握基本信号及其特性,了解实际信号的建模。
(2)掌握基本信号的运算,加深对信号时域分析基本原理和方法的理解,并建立时频之间的感性认识。
(3)学会仿真软件MATLAB的初步使用方法,掌握利用MATLAB进行信号表示和信号运算。
【研讨内容】
题目1:
基本信号的产生,语音的读取与播放
1)生成一个正弦信号,改变正弦信号的角频率和初始相位,观察波形变化,并听其声音的变化。
2)生成一个幅度为1、基频为2Hz、占空比为50%的周期方波。
3)观察一定时期内的股票上证指数变化,生成模拟其变化的指数信号。
4)分别录制一段男声、女声信号,进行音频信号的读取与播放,画出其时域波形。
【温馨提示】
(1)利用MATLAB函数wavread(file)读取.wav格式文件。
(2)利用MATLAB函数sound(x,fs)播放正弦信号和声音信号。
(1)
【题目分析】
正弦信号的形式为
和
,分别用MATLAB的内部函数
和
表示,其调用形式为
、
。
【仿真程序】
A=1;w=3*pi;phi=pi/4;
t=0:
0.01:
4;
ft=A*sin(w*t+phi);
plot(t,ft)
sound(ft)
【仿真结果】
改变角频率的大小:
w=5*pirad/s时,图像为
w=pirad/s时,图像为
改变出相位的大小:
phi=pi/2,图像为
phi=pi/6,图像为
【结果分析】
当正弦信号角频率增大时,周期减小,声音音调变高,反之;
当正弦信号初相位改变时,仅初始值改变,周期不变,声音音调不变。
(2)
【题目分析】
周期方波信号在matlab中用square函数表示,其调用形式为x=square(w*t,duty_cycle);用以产生一个幅度是+1和-1,基波频率为w的矩形脉冲信号。
【仿真程序】
t=-3:
0.0001:
3;
A=1;T=pi;;w0=2*pi/T;
ft=(1/2)*A*square(w0*t,50)+1/2;
plot(t,ft)
axis([-3,3,-1,2])
【仿真结果】
(3)
【题目分析】
观察一段时期的股市变化(从1990年到2008年用1到19代替),记录同一个月的开盘值,用matlab的离散函数做出其变化图象,并且用指数函数模拟其变化趋势。
【仿真程序】
实际离散变化
k=1:
19;
xk=[96.5,127.61,239.74,784.13,837.7,637.72,550.26,914.06,1200.94,1144.88,1368.69,2077.07,1643.48,1347.43,1492.72,1260.78,1163.88,2728.19,5265];
stem(k,xk)
指数模拟变化
A=203.8;a=0.1497;
t=0:
0.001:
20;
xt=A*exp(a*t);
plot(t,xt)
【仿真结果】
【结果分析】
这段时期的股市开盘值呈指数增长。
拟合函数见上面。
(4)
【题目分析】
利用MATLAB函数wavread(file)读取.wav格式文件。
(音频信号见附件)
【仿真程序】
Fs=44100;bits=32;
[y,Fs,nbits]=wavread('声音片段07.wav');
wavplay(y,Fs)
plot(y)
Fs=44100;bits=32;
[y,Fs,nbits]=wavread('声音片段06.wav');
wavplay(y,Fs)
plot(y)
【仿真结果】
男声时域波形
女声时域波形
【结果分析】
根据时域波形无法区分男声和女声。
【自主学习内容】
函数调用语句;模拟函数;音频信号读取与播放函数;
【阅读文献】
[1]陈后金.信号与系统.[M].人民教育出版社;
[2]陈华丽.信号与系统实验教程.[M].机械工业出版社;
[3]敬照亮.matlab教程与运用.[M].清华大学出版社。
【发现问题】
根据声音信号的频域特征能有效区分出男声和女声而时域不能。
【问题探究】
编写语句时要细心,避免一些马虎错误,要及时发现并改正。
【研讨内容】
题目2:
信号的基本运算(语音信号的翻转、展缩)
1)将原始音频信号在时域上进行延展、压缩,
2)将原始音频信号在时域上进行幅度放大与缩小,
3)将原始音频信号在时域上进行翻转,
(1)
【题目分析】
掌握信号的基本运算,学会用matlab进行信号的运算。
【仿真程序】
原始声音信号:
Fs=44100;bits=32;
[y,Fs,nbits]=wavread('声音片段07.wav');
wavplay(y,Fs)
plot(y)
原信号的3倍延展:
fs=44100;bits=32;
[x,fs,nbits]=wavread('声音片段07.wav');
x1=x(1:
2:
end);wavplay(x1,fs);
plot(x1)
原信号的0.5倍压缩
fs=44100;bits=32;
[x,fs,bits]=wavread('声音片段07.wav');
x1=x(1:
1/2:
end);wavplay(x1,fs);
plot(x1)
【仿真结果】
原始声音信号:
原信号的3倍延展:
原信号的0.5倍压缩
【结果分析】
由上面的图示可以看出,信号进行0.5倍压缩和3.0倍延展后,信号的波形分别变得疏散和密集,同时由存储的处理后的信号音频,可以感觉出0.5倍压缩后的信号的音色变得粗了,而3.0倍延展后的信号音频的音色变得尖了。
对0.5压缩而言,原本应该在X=2处播放的部分,被放到了X=4处播放,所以音频听起来变得音色粗了,波形变得疏散了;对3.0延展而言,原本在X=3处播放的部分在X=1处播放了,因此音频听起来音色变得尖了,波形变得密集了。
(2)
【题目分析】
掌握信号的基本运算,学会用matlab进行信号的运算。
【仿真程序】
原信号的幅度放大到2倍
fs=44100;bits=32;
[x,fs,bits]=wavread('声音片段07.wav');
x1=x(1:
1:
end);wavplay(2*x1,fs);
plot(x1)
原信号的幅度缩小到0.5倍
fs=44100;bits=32;
[x,fs,bits]=wavread('声音片段07.wav');
x1=x(1:
1:
end);wavplay(0.5*x1,fs);
plot(x1)
【仿真结果】
幅度放大到2倍
幅度缩小到0.5倍
【结果分析】
对于对信号幅度的2倍和0.5倍的改变,音频上可以听出来音量大小发生了改变。
2倍变化时,音量变大,0.5倍时音量变小。
(3)
【题目分析】
掌握信号的基本运算,学会用matlab进行信号的运算。
【仿真程序】
fs=44100;bits=32;
[x,fs,bits]=wavread('声音片段07.wav');
x1=flipud(x);wavplay(x1,fs);
plot(x1)
【仿真结果】
【结果分析】
翻转信号时,图示上可以看出图形的翻转变化。
音频上,音乐的播放发生了倒置。
【自主学习内容】
如何使用相应的MATLAB函数将音频信号录入播放,以及如何将其音质改变。
信号压缩、延展、增减幅和翻转的相应技术。
【阅读文献】
[1]苏金明·王永利·MATLAB7.0使用指南[M]·北京:
电子工业出版社,2001.10;
[2]黄文梅·熊桂林·杨勇·信号分析与处理-MATLAB语言及应用[M]·长沙:
国防科技大学出版社;
[3]敬照亮.matlab教程与运用.[M].清华大学出版社。
【发现问题】
在进行信号的0.5倍压缩时,运行程序后,会出现一下这句话:
Warning:
Integeroperandsarerequiredforcolonoperatorwhenusedasindex不过不影响最终信号的输出。
【问题探究】
这句话是说,整数运算所需要的冒号运算符时,作为参考指标。
一开始并不知道这句话的作用,后来知道进行的0.5倍压缩非整数运算,在这样的情况下,冒号运算符要作为参考指标。
系统的时域分析专题研讨
【目的】
(1)掌握系统响应的时域求解,加深对系统时域分析基本原理和方法的理解。
(2)掌握连续系统零状态响应(卷积积分)数值计算的方法。
(3)学会仿真软件MATLAB的初步使用方法,掌握利用MATLAB求解连续系统和离散系统的零状态响应。
(4)培养学生发现问题、分析问题和解决问题的能力。
【研讨内容】
题目3:
系统响应时域求解
1)求一个RLC电路的零输入响应和零状态响应,
2)将原始音频信号中混入噪声,然后用M点滑动平均系统对受噪声干扰的信号去噪,改变M点数,比较不同点数下的去噪效果,
题目分析:
题目要求采用M点滑动平均系统进行去噪。
M点滑动平均系统可以看成是N=0的差分方程。
调用filter函数时,调用参数a-1=1,b为有M个元素的向量,b中每个元素的值为1/M。
即M点的滑动平均系统输入输出关系为:
,同时我们将噪声设为n,函数为n=rand(n,1);原始信号为s。
通过调整M值,观察和比较去噪效果,从而得出结论。
仿真程序:
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=5;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=5时:
M=10时:
M=1时:
题目4:
连续信号卷积的近似计算
两个连续信号的卷积定义为
为了进行数值计算,需对连续信号进行抽样。
记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)计算过程:
h(t)=x(t)x(t)=u(t)*u(t)+u(t-1)*u(t-1)+2u(t)*u(t-1)=r(t)-2r(t-1)+r(t-2)
则y(t)=x(t)h(t)=
即
b)T=0.1;
k=-1:
T:
4;
f1=1*((k>=0)&(k<=1));
f2=tripuls(k-1,2);
y=T*conv(f1,f2);
tmin=-2;tmax=8;
t1=tmin:
0.1:
tmax;
plot(t1,y)
gridon
c)如果x(t)和h(t)不是时限信号时,则会有无穷多个抽样点,程序将无法处理,进行计算。
d)
这样的表达相当于把x(t)和h(t)分为无穷多个宽度为
的信号的和,但推导过程不会。
仿真结果:
b)
T=0.001
T=0.01
T=0.1
结果分析:
在数值计算卷积时,对于不同的抽样间隔,卷积结果纵坐标会有不同。
自主学习内容:
卷积函数conv的调用格式
阅读文献:
[1]陈华丽.信号与系统实验教程.[M].机械工业出版社
[2]陈后金,胡健,薛健.信号与系统(第二版)[M].北京:
清华大学出版社,北京交通大学出版社,2005.