北京交通大学《信号与系统》研究性学习实验报告

更新时间:2023-10-13 05:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《信号与系统》课程研究性学习手册

姓名 学号

同组成员 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曲\\Light My Fire.wav'); plot(y)

1)将原始音频信号在时域上进行延展、压缩 将原始音频信号在时域上延展3倍

[y,x,nbits]=wavread('D:\\音乐\\动画歌曲(207曲)\\灼眼的夏娜无损 17曲\\Light My Fire.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曲\\Light My Fire.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曲\\Light My Fire.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曲\\Light My Fire.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曲\\Light My Fire.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电路,若R?2?,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点的

1滑动平均系统输入输出关系为:y[k]?M

【仿真程序】 (1)零输入响应

num=[6];den=[1 3 6];R0=[2 1]; sys=tf(num,den); sys1=ss(sys); t=0:0.01:8; u=0*t;

lsim(sys1,u,t,R0); axis([0 8 -0.5 2.5])

零状态响应

num=[6];den=[1 3 6]; 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([0 8 -2 4])

(2)fs=44100;bits=16;R=100000

M?1n?0?x[k?n],同时我们将噪声设为n,函数为

n=rand(n,1);原始信号为s。通过调整M值,观察和比较去噪效果,从而得出结论。

[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([0 8 -0.5 2.5]错误: 表达式或语句不正确--可能 (、{ 或 [ 不对称。是不是想输入: >> axis([0 8 -0.5 2.5])

当开始时使用rand函数加噪时,令 d=0.01*rand(1,R)*0.3-0.5;结果提示??? Error using ==> plus Matrix dimensions must agree.意思d和x的维数没有保持一致。改用randn函数时,令d=0.01*randn(size(x))*0.3-0.5就成功地把噪声加入了进去。

【问题探究】

在对两个函数进行加法计算时要保持维数相同。

【研讨内容】

题目2:连续信号卷积的近似计算 两个连续信号的卷积定义为

? y(t)????x(?)h(t??)d?

为了进行数值计算,需对连续信号进行抽样。记x[k]=x(k?), h[k]=h(k?), ?为进行数值计算的抽样间隔。则连续信号卷积可近似的写为

y(kΔ)?Δx[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)近似表示为

?x(t)?h(t)?n?????x(nΔ)pΔ(t?0.5Δ?nΔ) h(nΔ)pΔ(t?0.5Δ?nΔ)

n????推导近似计算卷积的算法。取相同的抽样间隔,比较两种方法的计算卷积误差。

【题目分析】

(a),求出y(t)的函数表达式,并画出它的图像,便于和后面通过y(kΔ)?Δx[k]?h[k]

算出的信号作比较。

(b),Matlab中不可以直接进行连续的信号的卷积,必须得先对连续信号采样,得到离散的信号,然后求得两个离散信号的卷积,得到另外一个离散信号y[kΔ],最后再把离散的信号连续化,得到要得到的y(kΔ)。通过改变Δ的值来与(a)中所得结果进行对比。

(c),由于积分可以用求和的极限来表示,所以,当Δ足够小时,y(kΔ)?Δx[k]?h[k]成立。 (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)的波形');

clear all; 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)的波形'); clear all;

(b)用不同的?计算出卷积的数值近似值,并和?a?中的结果作比较;?

clear all;

c1=[0.01,0.1,0.25,0.3,0.5]; for n=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)近似表示为

x(t)?h(t)?n?????x(nΔ)pΔ(t?0.5Δ?nΔ)

n???

推导近似计算卷积的算法。取相同的抽样间隔,比较两种方法的计算卷积误差。

clear all; dt=0.001;

c1=[0.01,0.1,0.25,0.3,0.5]; for n=1:length(c1) Dt=c1(n); N=Dt/dt;

??h(nΔ)pΔ(t?0.5Δ?nΔ)

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; for m=1:n2 for n=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?中的结果作比较;?

增大抽样间隔T的抽样信号Sa(t)的频谱

【结果分析】

可以看出,当增大采样间隔T到一定值后,信号频谱将发生混叠,时域波形也发生较大失真。频域混叠后的幅度值为原来不混叠时的两倍,可知是相邻周期间的频谱发生了叠加。经过我们试验,得到当采样间隔约为1/pi时,为临界采样,及临界采样频率为pi。

另外,我们发现Sa(t)函数的频域波形有非常明显的关于稳定值的震荡,可知其为吉伯斯现象。增大取样点数N后,函数在跳变点处仍然有震荡,即吉伯斯现象不消失。 (2)

【题目分析】

由Nyquist抽样定理,将正弦信号以大于其频率二倍的抽样频率抽样时,信号可以被较好还原,而当抽样频率小于正弦频率二倍抽样时,信号将发生失真。

【仿真程序】

%产生指定频率的正弦声音信号并按固定的抽样频率播放

f0=[2000 2200 2400 2600 7200 7400 7600 7800]; fs=8000;N=2*fs;n=(0:N-1);t=n/fs; for i=1:8

y=sin(2*pi*f0(i)*t);%定义声音信号

XA=abs(fftshift(fft(y,N)))/N;%计算幅度频谱 f=n*fs/N;f=f-max(f)/2; sound(y,fs);

subplot(211);plot(t,y);%画出时域波形 xlabel('t');ylabel('x(t)');grid on;

title(['频率f=',num2str(f0(i)),'Hz时域波形']) xlim([0 0.02]);

subplot(212);plot(f,XA);%画出幅度频谱 xlabel('f');ylabel('X(jw)');grid on;

title(['频率f=',num2str(f0(i)),'Hz频域波形']) pause(1); end

【仿真结果】

我们选取2000Hz和7200Hz的两个正弦信号以抽样频率fs=8000Hz抽样后的时域波形和频谱进行对比,仿真后画出的图形如下所示:

【结果分析】

如我们所料,7200Hz的正弦信号在以抽样频率fs=8000Hz抽样后,发生了严重的失真,由于其周期性而使得频率变为800Hz。这说明,抽样频率低于正弦信号最大频率的两倍抽样时,信号会发生失真。

这种声音信号实际频率随正弦信号频率与抽样频率关系而变化的现象引起了我们的兴趣,于是我们进行了以下仿真来探索这一现象。

%用来生成一个抽样频率固定,频率随时间变化的正弦声音信号 fs=8000;N=0.5*fs;n=0:N-1;t=n/fs; y=sin(2*pi*0*t);

for f=50:50:8000 %频率从50Hz到8000Hz间隔50Hz变化 y=[y sin(2*pi*f*t)]; end sound(y,fs)

运行以上仿真程序,我们听到实际声音的频率,首先随定义的正弦信号的频率升高而升高,到4000Hz时不可闻,此时时域波形的幅度全为零。之后,实际声音的频率,随定义的正弦信号的频率升高而降低,到接近8000Hz时,音高最低。 (3)

【题目分析】

对于许多具有带通特性的信号,其带宽远小于2fH,一般处理带通信号时常遵循带通信号采样定理,即采样频率fs>2(fH-fL)即可。(其中,fH为信号的最大频率,fL为信号的最大频率)

经讨论,我们决定用matlab生成一个有一定频谱特点的带限声音信号,然后对这个信号进行抽样。通过观察抽样前后的频谱变化,来验证以上分析的正确性。

【仿真程序】 fs=44100; N=0.5*fs; n=0:N-1; t=n/fs;

y=sin(2*pi*1950*t); for f=2002:2:2100; y=[y sin(2*pi*f*t)]; end

for f=2150:2:2250; y=[y sin(2*pi*f*t)]; end

wavwrite(y,fs,'C:\\Users\\i\\Desktop\\信号研讨图片文件\\钉宫理惠.wav'); clear

[y,fs]=wavread('C:\\Users\\i\\Desktop\\信号研讨图片文件\\钉宫理惠.wav'); y=y(:,1);N=length(y);n=0:N-1;f=n*fs/N; Xabs=abs(fft(y,N))/N;Xabs=Xabs/max(Xabs); subplot(211);plot(f(1:N/2),Xabs(1:N/2)); xlabel('f/Hz');ylabel('X(jw)'); grid on;axis([0 3000 0 1.1]); fsc=646;Nc=length(y)/fs*fsc;B=N/Nc; for i=1:Nc

yc(i,:)=y(round(i*B),:); end

Nc=length(yc);nc=0:Nc-1;fc=nc*fsc/Nc;

Xabsc=abs(fft(yc,Nc))/Nc;Xabsc=Xabsc/max(Xabsc); subplot(212);plot(fc(1:Nc/2),Xabsc(1:Nc/2)); xlabel('f/Hz');ylabel('X(jw)'); grid on;axis([0 800 0 1.1]); 【仿真结果】

【结果分析】

我们生成的信号的频率从1950Hz到2250Hz之间变化,按我们学过的低通信号的Nyquist抽样定理,此时采样频率fsc必须至少大于2250*2=4500Hz,才能保证信号失真较小。

但是,我们发现,当我们取采样频率为646Hz时,画出的抽样后声音信号频域波形,在形状上与原信号频域波形相差不大,这说明,我们我们可以从646Hz抽样后的信号中重构得到我们需要的原始信息中的大部分,并且失真较小。

这样,便验证了带通信号采样定理的正确性。 【自主学习内容】 连续信号的采样及重构

傅里叶快速算法fft的功能及使用方法 带通信号采样定理

【阅读文献】

【发现问题】

若连续时间信号x(t)的最高频率未知,该如何确定对信号进行抽样的最大间隔?

一般通过查询资料,确定自己所处理类型的信号的最大频率fm,然后,让信号通过一个截止频率为fm的低通滤波器,再依据抽样定理进行抽样。 【问题探究】

带通信号抽样频率确定的理论分析。

用不同的?计算出卷积:??

(e)若将x(t)和h(t)近似表示为

?x(t)?n????x(nΔ)pΔ(t?0.5Δ?nΔ)

h(nΔ)pΔ(t?0.5Δ?nΔ)

h(t)?n?????推导近似计算卷积的算法。取相同的抽样间隔,比较两种方法的计算卷积误差。

【结果分析】

(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)卷积可以通过以下程序实现: syms t x ;

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)以(C02?2?n?1Cn)/P?0.90定义信号的有效带宽,试确定下图所示信号的有效带宽N?0,

N2取A=1,T=2。

(2)画出有效带宽内有限项谐波合成的近似波形,并对结果加以讨论和比较。 (3)增加谐波的项数,观察其合成的近似波形,并对结果加以讨论和比较。

x(t)A/2tAx(t)?T0?T0/2?A/2T0/2T0?T0T0/2T0t(a) 周期矩形信号 (b) 周期三角波信号

【知识点】

连续周期信号的频域分析,有效带宽,吉伯斯现象

【信号频谱及有效带宽计算】 (a)周期矩形信号:

由于此周期矩形信号的周期T=2,所以 w0?周期信号在区间[-1,1]的表达式为

2??? T?1?,?1?t?0??2x(t)???1,0?t?1??2

由于x(t)是奇对称信号,因此有 C0=0

Cn?根据傅里叶系数计算公式,有

11(?)e?2?120?jn?tdt?11(?)e?2021?jn?tdt

计算可得周期矩形信号的频谱Cn为

Cn??j(1?cos(n?))sin(n?t)(n?0) 2n?,

T022由功率计算公式:

P?lim1T0??T0??xdt得:P=1/4。

T02根据有效带宽的定义:

(C0?2?Cn)2N2n?1P?0.90,解得

N?3。

(b)周期三角波信号的频谱及有效带宽的计算:

由于此周期矩形信号的周期T=2,所以 W0=2π/T=π 周期信号在区间[0,2]的表达式为

?t,0?t?1x(t)???2?t,1?t?2

由于这个周期三角波信号的偶对称信号,所以

1sC0??x(t)dt??0.52022

n?0根据傅里叶系数的计算 公式,在

时有

11?jn?t?jn?tCn??tedt??(2?t)edt2021计算可得周期矩形信号的频谱为

12

Cn?cos(n?)(1?cos(n?))2(n?)

T01P?limT0??T0由功率计算公式

P=1/3

根据有效带宽的定义

?0xdt得

2(C0?2?Cnn)n?12N2P?0.90,得

N?1

【仿真程序】

(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); Grid on;

周期三角波信号:

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] 北京:北京交通大学出版社 【发现问题】

信号的频谱不会用简单的函数表示,如Sa(t)函数的表示,使得其在matlab中的实现显得简单,

容易解得,这样程序也不会显得繁琐。 【问题探究】

在一些信号的出来中要尽量的利用简单函数的线性组合来表示,然后利用一些频移性质,来简单的处理这些信号。 【研讨内容】——中等题 题目2:分析音阶的频谱

(1) 录制你所喜欢乐器(如钢琴、小提琴等)演奏的音阶,并存为wav格式(可以从网上下载)。 (2) 画出各音阶的时域波形,并进行比较。

(3) 对所采集的音阶信号进行频谱分析,比较各音阶的频谱。 【知识点】

连续时间信号的频域分析 【温馨提示】

利用MATLAB提供的函数fft计算频谱。 【题目分析】

【仿真程序】

[y,fs,bits]=wavread('D:/qin.wav'); sound(y,fs,bits); m=length(y); Y=fft(y,m); subplot(2,1,1); plot(y) title('y')

subplot(2,1,2); plot(abs(Y)); title('abs'); 【仿真结果】

本文来源:https://www.bwwdw.com/article/n7ef.html

Top