您好,欢迎来到六九路网。
搜索
您的当前位置:首页信号与系统课设 回音消除

信号与系统课设 回音消除

来源:六九路网


信号与系统课程设计

系 别____电子信息工程系______ 专 业____电子信息工程________ 班级/学号__ 电信09

学生姓名 ____

实验日期 2011年6月 成 绩 _______________________

指导教师 罗倩老师

信号与系统课程设计

课程设计目的

“信号与系统”是一门重要的专业基础课,MATLAB作为信号处理强有力的计算和分析工具是电子信息工程技术人员常用的重要工具之一。本课程设计基于MATLAB完成信号与系统综合设计实验,以提高学生的综合应用知识能力为目标,是“信号与系统”课程在实践教学环节上的必要补充。通过课设综合设计实验,激发学生理论课程学习兴趣,提高分析问题和解决问题的能力。

一、 课程设计时间

第十五、十六周。上机时间安排见附件一。第十六周周五提交课程设计报告并答辩。

二、 参考书目

1、 谷源涛、应启珩、郑君里著,信号与系统——MATLAB综合实验,北京:高等教育出

版社,2008年1月。

2、 郑君里、应启珩 、杨为理,信号与系统引论,北京:高等教育出版社,2009年3月。 3、 梁虹等,信号与系统分析及Matlab实现,北京:电子工业出版社,2002年2月。

三、 注意事项

1、 基本部分,共三道题,每人都需要全部完成,要求十五周周五做完。 2、 提高部分,共八道题,每人按照学号分配(见附件二)只做其中的一题。 3、 第十六周周五所提交的课程设计报告如有雷同,一律退回重写。

四、 课程设计内容及学时安排

(一)课程设计动员

讲解课程设计内容及要求,解释相关题目(2学时)。 具体时间安排见附件一。

(二)基本部分

一、傅里叶变换分析:(自行设计:2学时,上机:4学时)

1、周期信号的谱分析,要求任意给定单频周期信号,能够准确计算出其幅度谱和相位谱,并画出图形,要求正确显示频率。

clc;clear;close all; f=110;

fs=10*f;%抽样频率大于等于2f N=fs/f;

n=-(N-1):N-1; subplot(3,1,1);

x=cos(2*pi*f*n/fs);%cos(wt)的原型 plot(n,x); x=fft(x);

x=fftshift(x); subplot(3,1,2);

stem(n,abs(x));ylabel('Cn的幅度'); subplot(3,1,3); stem(n,angle(x)); ylabel('Cn的相位');

xlabel('\\omega/\\omega0');

图1-1-1 原函数

图1-1-2 幅谱

图1-1-3 相谱

2、 非周期信号的频谱分析,要求分析语音信号的幅度谱和相位谱,并画出图形。 clear;clc;close all; fs=100;

[ss,fs,bits]=wavread('E:\\xc.wav');%读取音频,存取为ss函数 sound(ss,fs,bits);%播放取样后的音频 X=fft(ss);

subplot(3,1,1); plot(ss);

subplot(3,1,2); plot(abs(X)); ylabel('幅度谱') subplot(3,1,3); plot(angle(X)); ylabel('相位谱');

图1-2-1 非周期信号

图1-2-2幅谱

图1-2-3相谱

3、对于方波,设计程序计算其傅里叶级数系数,仿真吉伯斯现象。 t=-2:0.001:2; T=1;

ft1=rectpuls(t-2*T,T); ft2=rectpuls(t+2*T,T); ft3=rectpuls(t*T,T); ft=ft1+ft2+ft3;

N=input('Number of harmonics= ');%傅里叶级数的项数 c0=0.5;

xN=c0*ones(1,length(t)); %dc component for n=1:N hold on;

plot(t,xN);

xN=xN+cos(pi*n*t)*sinc(n/2); %正弦分量为零

end

plot(t,ft,t,xN);

1.210.80.60.40.20-0.2-2-1.5-1-0.500.511.52

图1-3-1 吉布斯现象

二、连续时间系统分析:(自行设计:2学时,上机:4学时)

1、自行设计一个有初始条件的微分方程,至少二阶。

2、解出其零输入解,并画出图形,与手工计算相比较。 3、解出其单位冲激响应,并画出图形,与手工计算相比较。

4、设定某一激励信号,用卷积方法解出其零状态响应,并画出图形,与手工计算相比较。

5、计算系统的幅频响应和相频响应,并画出图形。 实验程序:

%基本题2:解微分方程,习题2-6,b=[1,3],a=[1 3 2],初始状态r(0-)=1,r'(0-)=2 %先由系统函数转成状态方程及输出方程 clear all, close all, clc; A = [0,1;-2,-3]; B = [0;1]; C = [3 1]; D = [0];

b=[1,3];a=[1 3 2];

sys = ss(A,B,C,D);%状态方程及输出方程四个矩阵(建立系统描述)

x0 = [-1,4]; %状态变量初始值,要从初始状态r(0-)=1,r'(0-)=2 计算而得 t = [0:0.01:10]';

e = 1*(t>=0); %单位阶跃信号 ezi = 0*(t>=0); %零输入信号

rzs = lsim(sys1,e,t); %零状态响应 rzi = lsim(sys1,ezi,t); %零输入响应 rf = lsim(sys1,e,t); %完全响应 h=impulse(sys1,t); %冲击响应 [H,w]=freqs(b,a); %频率响应 figure(2); subplot(121);

plot(w/pi,abs(H)); ylabel('幅频') subplot(122);

plot(w/pi,angle(H)); ylabel('相频') figure(3); y=conv(a,b);

plot(y);ylabel('卷积') %画图

figure(1);

hold on, box on;

set(gca,'FontSize',10);

plot(t,e,'b','linewidth',3); plot(t,rzs,'r:','linewidth',3); plot(t,rzi,'g-.','linewidth',3); plot(t,rf,'k','linewidth',3); plot(t,h,'y','linewidth',3);

legend('input','rzs','rzi','rf','h'); xlabel('time');axis([-0 10 -1 4]);

手算检验:

4input3.532.52rzsrzirfh1.510.50-0.5-1012345time6710

图2-1 输出信号叠加

1110987卷积632111.522.533.

图2-2 卷积

1.50-0.2-0.41-0.6幅频相频0.5001234-0.8-1-1.2-1.4-1.601234图2-3 幅谱 图2-4频谱

三、离散时间系统分析:(自行设计:2学时,上机:4学时)

1、自行设计某离散时间系统函数,至少是二阶的系统,画出零极点图,判断系统的稳定性。

2、求出单位样值响应,并画出图形。

3、求出系统的幅频响应和相频响应,并画出图形。 clc;close;clear all; num=[1];den=[1 2 2 1]; subplot(4,1,1);

zplane(num,den); %零级点分布图 poles=roots(den);%求出零点 t=0:0.02:10;

h=impulse(num,den,t);%冲激响应 title('零极点图'); subplot(4,1,2); plot(t,h)

title('冲击响应')

[H,w]=freqs(num,den);%频谱函数 subplot(4,1,3); plot(w,abs(H)); title('幅频响应') subplot(414); plot(w,angle(H)); xlabel('\\omega');

title('相频响应');

图3-1 零极点

图3-2 冲激响应

图3-3幅谱

图3-4 频谱

(三)提高部分

—— 回音消除

实验原理:

回音现象是指:在一个原始声音脉冲之后会跟着一串衰减的原声脉冲,这一现象常使用的模型是LTI系统,在离散时间情况下,其单位抽样响应可表示为

h(n)ak(nkN),0ak1

k0其中,N为回音发生的间隔。设原声信号为x(n),则实际听到的声音为

y(n)x(n)*h(n)

为了从回音信号中恢复原声(即消除回音引入的失真),需要设计一个逆系统,使其单位脉

冲响应g(n)满足

x(n)y(n)*g(n)

所要求的g(n)可表示为

g(n)bk(nkN)

k0实验要求:

1、对语音信号,给定h(n)的系数,模拟回音效果,画出h(n)的图形。

2、设计逆系统的单位抽样响应g(n),从回音信号中恢复原音,画出g(n)的图形。 3、若上面得出的g(n)为持续期无限的脉冲响应,为便于实现,需把g(n)截断变成有限脉冲响应,观察并分析g(n)的长度不同时恢复原声所引入的误差情况。 实验程序:

clear all,close all,clc

fs=100; %抽样频率

[ss,fs]=wavread('E:\\li.wav'); %读取音频,存在ss中

s=ss(1:100000); %取音频的前100000个点,抽样音频 h=[1,zeros(1,7999),0.32,zeros(1,15999),0.2];

y=conv(h,s); %利用音频与H(z)卷积加上回音 sound(y,fs); figure(1); plot(y);

b=[1]; %分子多项式 a=[1,zeros(1,7999),0.32,zeros(1,15999),0.2] ;%分母多项式

n=[0:100000]'; %n是一个向量,它代表单位抽样响应输

出序列的取值范围

K=impz(b,a,n); %离散时间系统单位脉冲响应 A=conv(y,K);%利用脉冲函数与加回音的音频函数卷积去掉滤波 figure(2); plot(A); sound(A,fs);

实验结果:

图1 回声信号 图2 消回音信号

实验总结:

两周的课设很快就过去了,这次课设让我学到了很多新知识也加深了对有关信号的一些知识的了解。

刚开始使用matlab软件的时候连最基本的编程环境都不知道在哪,根本就不知道怎么编程,在做第一到基础题目时完全不会,不知道怎么实现傅里叶的频谱和相谱的输出,还是在老师的细心指导下知道了频谱、相谱函数的调用及stem 和plot区别;在做下一道小题时知道了非周期信号的频谱和相谱,知道了周期与非周期的频谱和相谱的区别;在做最后一道小题时涉及到了傅里叶级数的吉布斯现象让我注意到了平时上课时没注意到了细节。

第二道基础大题是关于微分方程的各种状态输出,加深了我对零状态、零输入的了解,并且接触到了卷积的计算我发现原来手工计算很麻烦的事情,只需要调用一个函数可以很简单的解决,第三道基础大题是关于零极点图的,求离散时间系统的幅谱相谱,零极点图在这题中我发现title的只能放在图的输出函数的下方才能在正确的位置;我的提高题是关于回音消除的,题目中需要通过卷积在原始音频中加入回音然后通过回音音频与冲击函数卷积消去回音,得到滤过的音频。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务