北京交通大学信号与系统专题研讨2.docx
《北京交通大学信号与系统专题研讨2.docx》由会员分享,可在线阅读,更多相关《北京交通大学信号与系统专题研讨2.docx(35页珍藏版)》请在冰点文库上搜索。
北京交通大学信号与系统专题研讨2
姓名郭玉佼
学号********
同组成员陈潇(13213033)李书玮(13213039)
翟思民(13213007)宋晓凤(13213021)
指导教师胡健李居朋
时间2014.11
信号的时域分析专题研讨
【目的】
(1)掌握基本信号及其特性,了解实际信号的建模。
(2)掌握基本信号的运算,加深对信号时域分析基本原理和方法的理解,并建立时频之间的感性认识。
(3)学会仿真软件MATLAB的初步使用方法,掌握利用MATLAB进行信号表示和信号运算。
【研讨内容】
题目1:
基本信号的产生,语音的读取与播放
1)生成一个正弦信号,改变正弦信号的频率(可选择262,294,330,349,392,440,494,523Hz),观察波形变化,并听其声音的变化。
2)将频率为262,294,330,262,262,294,330,262,330,349,392,392,330,349,392,392Hz的正弦信号按顺序播放,听其声音的变化。
3)生成一个幅度为1、周期为2s、占空比为40%的周期矩形脉冲。
4)本组男生、女生分别朗读“信号是指消息的表现形式与传送载体”,并录音成wav格式,利用MATLAB进行音频信号的读取与播放,画出其时域波形。
【温馨提示】
(1)利用MATLAB函数wavread(file)读取.wav格式文件。
(2)利用MATLAB函数sound(x,fs)播放正弦信号和声音信号。
(1)
【题目分析】
正弦信号的形式为
和
,分别用MATLAB的内部函数
和
表示,其调用形式为
、
。
【仿真程序】
A=1;w=3*pi;phi=pi/4;
t=0:
0.01:
8;
ft=A*sin(w*t+phi);
plot(t,ft)
sound(ft)
【仿真结果】
改变频率的大小:
w=2*pi*262rad/s时,
A=1;w=2*pi*262;phi=pi/4;
t=0:
0.01:
8;
ft=A*sin(w*t+phi);
plot(t,ft)
sound(ft)
图像为
w=2*pi*294rad/s时,
A=1;w=2*pi*294;phi=pi/4;
>>t=0:
0.01:
8;
>>ft=A*sin(w*t+phi);
>>plot(t,ft)
sound(ft)
图像为
w=2*pi*330rad/s时,
A=1;w=2*pi*330;phi=pi/4;
>>t=0:
0.01:
8;
>>ft=A*sin(w*t+phi);
>>plot(t,ft)
sound(ft)
w=2*pi*349rad/s时,
A=1;w=2*pi*349;phi=pi/4;
>>t=0:
0.01:
8;
>>ft=A*sin(w*t+phi);
>>plot(t,ft)
>>sound(ft)
w=2*pi*392rad/s时,
【结果分析】
当正弦信号角频率增大时,周期减小,声音音调变高
【题目分析】
周期方波信号在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,40)+1/2;
plot(t,ft)
axis([-3,3,-1,2])
【仿真结果】
(3)
【题目分析】
利用MATLAB函数wavread(file)读取.wav格式文件。
(音频信号见附件)
【仿真程序】
fs=44100;bits=16;
[y,fs,nbits]=wavread('信号.wav');
sound(y,fs)
plot(y)
【仿真结果】
男声时域波形
fs=44100;bits=32;
[y,fs,nbits]=wavread('cricket.wav');
sound(y,fs)
plot(y)
女声时域波形
【结果分析】
根据时域波形无法区分男声和女声。
【自主学习内容】
函数调用语句;模拟函数;音频信号读取与播放函数;
【阅读文献】
[1]陈后金·胡健·薛健-信号与系统[M]·高等教育出版社,2007.12;
[2]朱衡军·肖燕彩·邱成·齐红元-MATLAB语言及实践教程[M]·清华大学出版社北京交通大学出版社,2009.9;
[3]苏新红·张海燕-信号与系统简明教程[M]·北京邮电大学出版社,2010.6
【发现问题】
根据声音信号的时域特征不能有效区分出男声和女声
【问题探究】
编写Matlab语句时要细心,一个字母的错误可能导致大的错误,需要及时发现,分析并改正
【研讨内容】
题目2:
信号的基本运算(语音信号的翻转、展缩)
1)将题目1(5)录制的男生音频信号在时域上进行延展、压缩,画出相应的时域波形,并进行播放,听声音有和什么变化。
2)将题目1(5)录制的男生音频信号在时域上进行幅度放大与缩小,画出相应的时域波形,并进行播放,听声音有和什么变化。
3)将题目1(5)录制的男生音频信号在时域上进行翻转,画出相应的时域波形,并进行播放,听声音有和什么变化。
4)画出
的波形,
的取值如下表所示。
0.5000
0.3183
0.0000
-0.1061
-0.0000
0.0637
0.0000
-0.0455
0.5000
0.2026
0.0000
0.0225
0.0000
0.0081
0.0000
0.0041
0.7500
0.2026
-0.1013
0.0225
0.0000
0.0081
-0.0113
0.0041
【题目分析】
掌握信号的基本运算,学会用matlab进行信号的运算。
【仿真程序】
原始声音信号:
fs=44100;bits=16;
[y,fs,nbits]=wavread('信号.wav');
sound(y,fs)
plot(y)
原信号的3倍延展:
fs=44100;bits=16;
[y,fs,nbits]=wavread('信号.wav');
y1=y(1:
2:
end);sound(y1,fs);
plot(y1)
原信号的0.5倍压缩
fs=44100;bits=32;
[y,fs,bits]=wavread('信号.wav');
y2=y(1:
1/2:
end);sound(y2,fs);
plot(y2)
【仿真结果】
原始声音信号:
原信号的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=16;
[y,fs,bits]=wavread('信号.wav');
y1=y(1:
1:
end);sound(2*y1,fs);
plot(y1)
原信号的幅度缩小到0.5倍
fs=44100;bits=16;
[y,fs,bits]=wavread('信号.wav');
y2=y(1:
1:
end);sound(0.5*y2,fs);
plot(y2)
【仿真结果】
幅度放大到2倍
幅度缩小到0.5倍
【结果分析】
对信号幅度的2倍和0.5倍的改变,音频上可以听出来音量大小发生了改变。
2倍变化时,音量变大,0.5倍时音量变小。
(3)
【题目分析】
掌握信号的基本运算,学会用matlab进行信号的运算。
【仿真程序】
fs=44100;bits=16;
[y,fs,bits]=wavread('信号.wav');
y1=flipud(y);sound(y1,fs);
plot(y1)
【仿真结果】
【结果分析】
翻转信号时,图示上可以看出图形的翻转变化。
音频上,音乐的播放发生了倒置。
(4)
【题目分析】
掌握信号的基本运算,学会用matlab进行信号的运算。
【仿真程序】
1、a0=0.5000
A=[0.50000.50000.7500];
B=[0.31830.20260.2026
0.00000.0000-0.1013
-0.10610.02250.0225
-0.00000.00000.0000
0.06370.00810.0081
0.00000.0000-0.0113
-0.04550.00410.0041
];
x=0;y=0;
fori=1:
1:
7
t=0:
0.0001:
10
y=y+B(i,1).*cos(i.*pi.*t)
end
x=y+A(1,1)
plot(t,x)
a0=0.5000
x=0;y=0;
fori=1:
1:
7
t=0:
0.0001:
10
y=y+B(i,2).*cos(i.*pi.*t)
end
x=y+A(1,2)
plot(t,x)
a0=0.7500
x=0;y=0;
fori=1:
1:
7
t=0:
0.0001:
10
y=y+B(i,3).*cos(i.*pi.*t)
end
x=y+A(1,3)
plot(t,x)
【仿真结果】
【自主学习内容】
如何使用相应的MATLAB函数将音频信号录入播放,以及如何将其音质改变。
信号压缩、延展、增减幅和翻转的相应技术。
【阅读文献】
[1]陈后金·胡健·薛健-信号与系统[M]·高等教育出版社,2007.12;
[2]朱衡军·肖燕彩·邱成·齐红元-MATLAB语言及实践教程[M]·清华大学出版社北京交通大学出版社,2009.9;
[3]苏新红·张海燕-信号与系统简明教程[M]·北京邮电大学出版社,2010.6
【发现问题】
(专题研讨或相关知识点学习中发现的问题):
画出
的波形,讨论
波形与
取值的关系。
在进行信号的0.5倍压缩时,运行程序后,会出现一下这句话:
Warning:
Integeroperandsarerequiredforcolonoperatorwhenusedasindex不过不影响最终信号的输出。
【问题探究】
这句话是说,整数运算所需要的冒号运算符时,作为参考指标。
0.5倍压缩非整数运算,在这样的情况下,冒号运算符要作为参考指标。
系统的时域分析专题研讨
【目的】
(1)掌握系统响应的时域求解,加深对系统时域分析基本原理和方法的理解。
(2)掌握连续系统零状态响应(卷积积分)数值计算的方法。
(3)学会仿真软件MATLAB的初步使用方法,掌握利用MATLAB求解连续系统和离散系统的零状态响应。
(4)培养学生发现问题、分析问题和解决问题的能力。
【研讨内容】
题目1:
系统响应时域求解
1)求一个RLC电路的零输入响应和零状态响应,
2)将信号与系统时域分析专题研讨1(4)录制的语音信号中混入随机噪声,然后用M点滑动平均系统对受噪声干扰的信号去噪,改变M点数,比较不同点数下的去噪效果,
【温馨提示】
利用MATLAB函数rand(M,N)产生M行N列[0,1]上均匀分布的随机噪声。
题目分析:
1)题目要求一个RLC电路的零输入响应和零状态响应:
自己用EWB软件画一个简单的RLC电路图,如图。
求零输入响应时,调用lsim函数。
其中L=2Н,C=3F,R=6Ω。
x(t)是输入信号,y(t)是输出响应。
初态:
y(0-)=1,y’(0-)=2,x(t)是振幅为10,周期为1,初相位为0的正弦信号。
由这个电路图可以写出方程:
y’’(t)+3y’(t)+6y(t)=6x(t)。
下面编写程序代码求零输入响应:
仿真程序:
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])
仿真结果:
求零状态响应时,同样的调用lsim函数。
由已知条件:
x(t)=10sin(2π*t)
仿真程序:
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)题目要求采用M点滑动平均系统进行去噪。
M点滑动平均系统可以看成是N=0的差分方程。
调用filter函数时,调用参数a-1=1,b为有M个元素的向量,b中每个元素的值为1/M。
即M点的滑动平均系统输入输出关系为:
,同时我们将噪声设为n,函数为n=rand(n,1);原始信号为s。
通过调整M值,观察和比较去噪效果,从而得出结论。
仿真程序:
fs=44100;bits=32;R=100000;
[x,fs,bits]=wavread('cricket.wav',R);
k=0:
R-1;
d=(rand(R,2)-0.5)*0.3;;
y=x+d;
wavplay(y,fs);
figure
(1);plot(k,d,'r-.',k,x,'b--',k,y,'g-');xlabel('k');legend('d[k]','x[k]','y[k]');
M=20;b=ones(M,1)/M;a=1;
s=filter(b,a,y);
wavplay(s,fs);
figure
(2);plot(k,x,'b--',k,s,'r-');xlabel('k');legend('x[k]','s[k]')
仿真结果:
M=100
M=20
M=5时:
M=10时:
M=1时:
【结果分析】
对于不同的M值,去噪的效果不同,M值越大,去噪效果越明显,反之,去噪效果越差。
【自主学习内容】
Lsim函数的运用,filter函数的运用,对正常信号的加噪处理(即randn函数的运用)还有运用M点滑动平均系统对噪声信号进行去噪。
【阅读文献】
[1]陈后金·胡健·薛健-信号与系统[M]·高等教育出版社,2007.12;
[2]朱衡军·肖燕彩·邱成·齐红元-MATLAB语言及实践教程[M]·清华大学出版社北京交通大学出版社,2009.9;
[3]苏新红·张海燕-信号与系统简明教程[M]·北京邮电大学出版社,2010.6
【发现问题】
当开始时使用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(t1),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]·高等教育出版社,2007.12;
[2]朱衡军·肖燕彩·邱成·齐红元-MATLAB语言及实践教程[M]·清华大学出版社北京交通大学出版社,2009.9;
[3]苏新红·张海燕-信号与系统简明教程[M]·北京邮电大学出版社,2010.6