信号与系统matlab时域研讨.docx
《信号与系统matlab时域研讨.docx》由会员分享,可在线阅读,更多相关《信号与系统matlab时域研讨.docx(22页珍藏版)》请在冰点文库上搜索。
信号与系统matlab时域研讨
《信号与系统》课程研究性学习手册
姓名冯栋
学号10213004
同组成员张楠乔10213030
姜雨馨10213010
宁晶洁10213018
薛驰10213054
任明月10233018
指导教师陈后金杨恒李艳凤
时间2011年11月
信号的时域分析专题研讨
【目的】
(1)掌握基本信号及其特性,了解实际信号的建模。
(2)掌握基本信号的运算,加深对信号时域分析基本原理和方法的理解,并建立时频之间的感性认识。
(3)学会仿真软件MATLAB的初步使用方法,掌握利用MATLAB进行信号表示和信号运算。
【研讨内容】
题目1:
基本信号的产生,语音的读取与播放
1)生成一个正弦信号,改变正弦信号的角频率和初始相位,观察波形变化,并听其声音的变化。
2)生成一个幅度为1、基频为2Hz、占空比为50%的周期方波。
3)观察一定时期内的股票上证指数变化,生成模拟其变化的指数信号。
4)分别录制一段男声、女声信号,进行音频信号的读取与播放,画出其时域波形。
【温馨提示】
(1)利用MATLAB函数wavread(file)读取.wav格式文件。
(2)利用MATLAB函数sound(x,fs)播放正弦信号和声音信号。
【题目分析】
1)用sin函数输入正弦信号,并用sound函数将信号转成音频播放,改变角频率和初始相位的值,重复上述步骤,对比声音信号的变化
2)用square函数生成周期方波信号,并设置好幅度,基频,和占空比
3)寻找最近的一段股票上证指数变化曲线,用matlab生成分段指数信号,根据曲线模拟股票变化趋势
【仿真程序】
(1)生成一个正弦信号,改变正弦信号的角频率和初始相位,观察波形变化,并听其声音的变化。
正弦信号
(1)
A=1;w0=1/2*pi;phi=pi/3;
t=-4:
0.001:
4;
xt=A*sin(w0*t+phi);
plot(t,xt)
axis([-5,5,-1.5,1.5])
xlabel('t')
ylabel('y')
正弦信号
(2)(改变1中的的角频率)
A=1;w0=2*pi;phi=pi/3;
t=-4:
0.001:
4;
xt=A*sin(w0*t+phi);
plot(t,xt)
axis([-5,5,-1.5,1.5])
xlabel('t')
ylabel('y')
正弦信号(3)(改变1中的的初始相位)
A=1;w0=1/2*pi;phi=pi/2;
t=-4:
0.001:
4;
xt=A*sin(w0*t+phi);
plot(t,xt)
axis([-5,5,-1.5,1.5])
xlabel('t')
ylabel('y')
正弦函数(4)(改变1中的角频率及初始相位)
A=1;w0=2*pi;phi=pi/2;
t=-4:
0.001:
4;
xt=A*sin(w0*t+phi);
plot(t,xt)
axis([-5,5,-1.5,1.5])
xlabel('t')
ylabel('y')
正弦声音函数
(1)
A=1;w0=1/2*pi;phi=pi/3;
t=-4:
0.001:
4;
xt=A*sin(w0*t+phi);
plot(t,xt)
sound(xt,fs);
正弦声音函数
(2)(改变1中的角频率)
A=1;w0=2*pi;phi=pi/3;
t=-4:
0.001:
4;
xt=A*sin(w0*t+phi);
plot(t,xt)
sound(xt,fs);
(2)生成一个幅度为1、基频为2Hz、占空比为50%的周期方波。
t=-4:
0.001:
4
A=1;f=2;w=2*pi*f
y=A*square(w*t,50)
plot(t,y)
axis([-4,4,-1.5,1.5])
xlabel('t')
ylabel('y')
(3)观察一定时期内的股票上证指数变化,生成模拟其变化的指数信号。
x1=0:
0.001:
4;y1=1000+4*exp(x1)
x2=4:
0.001:
7;y2=1319-5*exp(0.7*x2)
x3=7:
0.001:
10;y3=248+11*exp(0.5*x3)
x4=10:
0.001:
14;y4=2086-4*exp(0.4*x4)
x5=14:
0.001:
25;y5=766+3*exp(0.3*x5)
x=[x1,x2,x3,x4,x5];y=[y1,y2,y3,y4,y5]
plot(x,y)
(4)分别录制一段男声、女声信号,进行音频信号的读取与播放,画出其时域波形。
(1)男声信号的读取的播放
[x,Fs,Bits]=wavread('F:
\boy.wav');
sound(x,Fs,Bits)
Fs=4410;
Bits=16;
plot(x)
title('boy');
(2)女声信号的读取的播放
[x,Fs,Bits]=wavread('F:
\girl.wav');
sound(x,Fs,Bits)
Fs=4410;
Bits=16;
plot(x)
title('girl');
【仿真结果】
1.正弦曲线
w0=1/2*piphi=pi/3w0=2*piphi=pi/3
w0=1/2*piphi=pi/2w0=2*piphi=pi/2
2.方波信号
3.股票指数模拟
4.男女声时域波形
【结果分析】
提示:
应从以下几方面对结果进行分析:
(1)随着正弦信号角频率的变化,其波形有什么变化,听到的声音又有变化?
它们之间有什么关系?
随着角频率的增加,正弦波形周期越来越小,幅度不变,输出的音频信号越来越尖锐,可见,角频率的增加能使声音的音调变高。
此外,改变相位能使波形发生平移,但对输出的声音没有影响。
(2)男声和女声信号的时域波形有什么区别?
女声信号的周期比男声信号短,频率高,说明女声音调比男声高
【自主学习内容】
基本函数语句的调用;音频信号读取与播放函数的调用。
【阅读文献】
陈后金,胡健,薛健.信号与系统(第二版)[M].北京:
清华大学出版社,北京交通大学出版社,2005.
【发现问题】(专题研讨或相关知识点学习中发现的问题):
根据声音信号的什么特征能有效区分出男声和女声?
【问题探究】
编写程序时应该尽量避免一些不必要的错误。
【研讨内容】
题目2:
信号的基本运算(语音信号的翻转、展缩)
1)将原始音频信号在时域上进行延展、压缩,
2)将原始音频信号在时域上进行幅度放大与缩小,
3)将原始音频信号在时域上进行翻转,
【题目分析】
1.把时间变为原来的a倍,即能压缩(a大于1)或延展(a小于1)为原来的a倍。
2.直接在原信号前乘以a,即能使幅度放大(a大于1)或缩小(a小于1)
3.使用flipud函数,实现信号翻转。
【仿真程序】
(1)原始信号在时域上2倍延展
[x,fs,nbits]=wavread('F:
\1.wav');
x1=x(1:
1/2:
end);
wavplay(x1,fs);
plot(x1);
xlabel('t');
ylabel('y');
title('延展2倍');
(2)原始信号时域上2倍压缩
[x,fs,nbits]=wavread('F:
\1.wav');
x1=x(1:
2:
end);
wavplay(x1,fs);
plot(x1);
xlabel('t');
ylabel('y');
title('压缩2倍');
(3)时域上幅度放大2倍
[x,fs,nbits]=wavread('F:
\1.wav');
x1=2*x(1:
end);
wavplay(x1,fs);
plot(x1);
xlabel('t');
ylabel('y');
title('幅度放大2倍');
(4)时域上幅度缩小2倍
[x,fs,nbits]=wavread('F:
\1.wav');
x1=0.5*x(1:
end);
wavplay(x1,fs);
plot(x1);
xlabel('t');
ylabel('y');
title('幅度缩小2倍');
(5)时域翻转
[x,fs,nbits]=wavread('f:
\1.wav');
x1=flipud(x);
wavplay(x1,fs);
plot(x1);
xlabel('t');
ylabel('y');
title('翻转');
【仿真结果】
【结果分析】
(1)信号进行0.5倍压缩和两倍延展后,信号的波形变得稀疏和密集,跟原始信号比,扩展两倍的信号声音变粗了,而压缩两倍的信号声音变得很尖,它们在时域上进行了扩展或压缩。
(2)幅度扩大,音量变大,幅度变小,音量变小。
(3)翻转后,音频倒放。
【自主学习内容】
(1)音频信号的输入函数wavread(file);
(2)如何压缩,延展,翻转信号;及改变信号幅度。
【阅读文献】
陈后金,胡健,薛健.信号与系统(第二版)[M].北京:
清华大学出版社,北京交通大学出版社,2005.
【发现问题】(专题研讨或相关知识点学习中发现的问题):
Matlab只能读取wav格式的音频信号,而且音频信号不能太大,否则matlab不能读取。
【问题探究】
音频信号不能太大,否则matlab不能读取。
系统的时域分析专题研讨
【目的】
(1)掌握系统响应的时域求解,加深对系统时域分析基本原理和方法的理解。
(2)掌握连续系统零状态响应(卷积积分)数值计算的方法。
(3)学会仿真软件MATLAB的初步使用方法,掌握利用MATLAB求解连续系统和离散系统的零状态响应。
(4)培养学生发现问题、分析问题和解决问题的能力。
【研讨内容】
题目1:
系统响应时域求解
1)求一个RLC电路的零输入响应和零状态响应,
2)
将原始音频信号中混入噪声,然后用M点滑动平均系统对受噪声干扰的信号去噪,改变M点数,比较不同点数下的去噪效果,
【题目分析】
(1)假设此RLC电路中R=2Ω,L=0.5H,C=0.5F,x(t)=sin(2pt)u(t)
解:
LCv(t)’’+RCv(t)’+v(t)=x(t)
带入参数值并化简得:
v(t)’’+4v(t)’+4v(t)=4x(t)
(2)题目要求采用M点滑动平均系统进行去噪。
M点滑动平均系统可以看成是N=0的差分方程。
调用filter函数时,调用参数a-1=1,b为有M个元素的向量,b中每个元素的值为1/M。
即M点的滑动平均系统输入输出关系为:
,同时我们将噪声设为d[k],函数为d[k]=rand(n,1);原始信号为s[k]。
通过调整M值,观察和比较去噪效果,从而得出结论。
【仿真程序】
[y,fs,bits]=wavread('F:
\girl.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,y,'b--',k,x,'g-');xlabel('k');legend('d[k]','y[k]','x[k]');
M=10;b=ones(M,1)/M;a=1;
y=filter(b,a,x);
wavplay(y,fs);
figure
(2);plot(k,x,'b--',k,y,'r-');xlabel('k');legend('x[k]','y[k]');
接下来就是改变m的取值来进行判断。
【仿真结果】
(1)m=10
(2)m=50
(3)m=100
【结果分析】
M越大,噪声越大,去噪后的声音越小。
【自主学习内容】
音频信号的输入函数wavread(file)和输出waveplay(file),调用filter函数;
【阅读文献】
陈后金,胡健,薛健.信号与系统(第二版)[M].北京:
清华大学出版社,北京交通大学出版社,2005.
【发现问题】(专题研讨或相关知识点学习中发现的问题):
M值的选择对滑动平均系统去噪有什么影响?
【问题探究】
经多次试验,发现在利用滑动平均系统去噪时,应选取合适的M值,既不能过大又不能过小,过大会导致信号被大大的削弱,过小会起不到很好的去噪效果。
【研讨内容】
题目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)=x(t)*h(t)如下:
h(t)=x(t)*x(t)=
x(t)=
u(t)-u(t-1)
h(t)=r(t)-2r(t-1)+r(t-2)
利用图解法得
y(t)=
(c)对公式
的证明
(d)如果x(t)和h(t)都不是限时信号,则会有无穷多个抽样点,程序将无法处理,进行计算。
(e)若将x(t)和h(t)近似表示为:
是将x(t)和h(t)分别分为无穷多个宽度为的信号的和。
【仿真程序】
(1)T=0.1
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)
(2)T=0.01
T=0.01;
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.01:
tmax;
plot(t1,y)
(3)T=0.001
T=0.001;
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.001:
tmax;
plot(t1,y)
【仿真结果】
(1)T=0.1
(2)T=0.01
(3)T=0.001
【结果分析】
(b)当D取值很小的时候,公式
的近似结果与解析法做出结果相符;当D取较大值时,公式
的近似结果与解析法做出结果相差较大。
(d)若x(t)和h(t)不是时限信号的话,由于matlab软件本身的性质,不能取到无穷大,函数值在到达某一值时会变成0。
解决办法是我们可以根据自己的需要,设定x(t)和h(t)在某一范围内的函数值,其他值均为0。
(e)和(b)相比,我们可以得到(b)的方法比较好,更接近于理论值。
【自主学习内容】
conv函数的运用方法;
对于连续的卷积在计算机中的实现可以利用离散的性质,在时域中对其抽样——转化为两个简单离散序列的卷积。
【阅读文献】
《信号与系统实验》教程
《Matlab7.0入门到精通》
【发现问题】(专题研讨或相关知识点学习中发现的问题):
开始程序运行不了
【问题探究】
通过检查,发现是信号的抽去频率和输出频率不一致,要将其改为一致。