信号与系统实验报告信号采样与重构 声音的延时与混响.docx
《信号与系统实验报告信号采样与重构 声音的延时与混响.docx》由会员分享,可在线阅读,更多相关《信号与系统实验报告信号采样与重构 声音的延时与混响.docx(9页珍藏版)》请在冰豆网上搜索。
![信号与系统实验报告信号采样与重构 声音的延时与混响.docx](https://file1.bdocx.com/fileroot1/2022-10/26/68ba0456-3a49-449a-b658-9c49c12ea802/68ba0456-3a49-449a-b658-9c49c12ea8021.gif)
信号与系统实验报告信号采样与重构声音的延时与混响
《信号与系统》
——课程设计
实验一信号的采样与重构
一、实验内容:
1.应用MATLAB实现连续信号的采样与重构仿真,了解MATLAB软件,学习应用MATLAB软件的仿真技术。
2.加深理解采样与重构的概念,掌握利用MATLAB分析系统频率响应的方法和掌握利用MATLAB实现连续信号采用与重构的方法。
计算在临界采样、过采样、欠采样三种不同条件下重构信号的误差。
3.加深对采样定理的理解和掌握,以及对信号恢复的必要性;掌握对连续信号在时域的采样与重构的方法。
二、实验原理
(1)连续时间信号
连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点以外,信号都有确定的值与之对应。
严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。
当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。
(2)采样定理
模拟信号经过(A/D)变换转换为数字信号的过程称为采样,信号采样后其频谱产生了周期延拓,每隔一个采样频率fs,重复出现一次。
为保证采样后信号的频谱形状不失真,采样频率必须大于信号中最高频率成分的两倍,这称之为采样定理。
时域采样定理从采样信号恢复原信号必需满足两个条件:
a、必须是带限信号,其频谱函数在>各处为零;(对信号的要求,即只有带限信号才能适用采样定理。
)
b、取样频率不能过低,必须>2(或>2)。
一个理想采样器可以看成是一个载波为理想单位脉冲序列的幅值调制器。
图2信号的采样
(4)信号重构
设信号被采样后形成的采样信号为,信号的重构是指由经过内插处理后,恢复出原来信号的过程,又称为信号恢复。
三、实验步骤及代码
(一).%%%%%%%%%%%产生一个连续sin()信号%%%%%%%%%%%%%%%%%%
f=100;
t=(1:
50)/2000;%时间轴步距
x=sin(2*pi*t*f);
figure
subplot(211);
plot(x);%绘制x(t)的图形图片号加底框
xlabel('t');ylabel('x(t)');
title('连续时间信号sin()的波形');%图片命名
grid;
n=0:
255;%长度
N=256;%设采样点的N值
Xk=abs(fft(x,N));
subplot(212);%频域波形
plot(n,Xk);
axis([0N1.2*min(Xk)1.2*max(Xk)]);
%可用axis函数来调整图轴的范围
xlabel('时域频谱波形图');
ylabel('|Xk|');
title('信号sin()的频谱波形');
(二)%%%%%%%%%%%%对原始信号进行采样并滤波重构%%%%%%%%%%%%
t1=3*t;
f1=sin(2*pi*t1*f);
figure
subplot(211);
stem(t1,f1);
xlabel('kTs');
ylabel('f(kTs)');
title('欠采样的信号波形');
[B,A]=butter(2,450/500);%设置低通滤波器参数
[H,w]=freqz(B,A,512,2000);
fa=filter(B,A,f1);
subplot(212);
plot(fa)
xlabel('t');
ylabel('fa(t)');
title('欠采样信号重构后的波形');
t2=0.5*t;f2=sin(2*pi*t2*f);
Figure,subplot(211);stem(t2,f2);xlabel('kTs');
ylabel('f(kTs)');title('临界采样的信号波形');
[B,A]=butter(2,450/500);%设置低通滤波器参数
[H,w]=freqz(B,A,512,2000);
fb=filter(B,A,f2);subplot(212);
plot(fb),xlabel('t'),ylabel('fb(t)');title('临界采样信号重构后的波形');
t3=0.2*t;
f3=sin(2*pi*t3*f);
figure
subplot(211);stem(t3,f3);xlabel('kTs');
ylabel('f(kTs)');title('过采样的信号波形');
[B,A]=butter(2,450/500);
[H,w]=freqz(B,A,512,2000);
fc=filter(B,A,f3);
subplot(212);plot(fc)
xlabel('t');ylabel('fc(t)');title('过采样信号重构后波形');
四、实验总结
经过此次MATLAB课程设计我学到了很多知识和学习方法。
仅凭我在信号与系统课上所学的那点知识是不够的。
所以为了做好这次的课程设计,我上网搜索了许多与此有关的知识,这个过程中我也学会了好多。
在这次设计中,我学到了对信号的采样定理的应用,以及信号的重构,并通过观察MATLAB所生成的频谱图,进一步了解了有关信号的采样与重构,对信号的采样程度进行比较其误差,了解不同采样程度的重构信号和原信号所产生的差异。
网上有很多类似的程序而且很多都是对sinc()函数做的,我就想能不能换个连续函数试试,不过在换的过程中我也发现了不少的问题,调试也一直出错让人很头疼。
不过功夫不负有心人,就算是一点一点的扣,程序我也完全看懂了,很是欣慰。
实验二语音信号的处理——延时和混响
一、实验目的:
1.加深对线性时不变系统的理解
2.加深对滤波器滤波特性的理解
3.掌握信号混响原理,并利用matlab实现。
二、实验内容:
选择语音信号作为分析的对象,对其进行频谱分析,在时域将信号加入混响,再分析其频谱,并对原始信号频谱进行比较
三、实验原理
1.混响效果主要是用于增加音源的融合感。
自然音源的延时声阵列非常密集、复杂,所以模拟混响效果的程序也复杂多变。
常见参数有以下几种:
(1)混响时间:
(2)高频滚降:
(3)扩散度:
(4)预延时:
(5)声阵密度:
(6)频率调制:
(7)调治深度:
2.延时就是将音源延迟一段时间后,再欲播放的效果处理。
依其延迟时间的不同,可分别产生合唱、镶边、回音等效果。
3.设计集中混响器(滤波器),实现混响。
(1)单回声滤波器,系统函数为:
(2)单重回声滤波器:
(3)无限个回声滤波器:
(4)全通结构混响器,
四、实验步骤
1获取一段语音信号
[x1,fs,bits]=wavread('F:
\applause.wav');
2进行频谱分析及延时处理
x1=x1(:
1);
subplot(221);plot(x1);%做原始语音信号的时域图形
title('原始语音信号');gridon;
xlabel('时间n');ylabel('音量n');
y1=fft(x1);%做length(x1)点的FFT
y1=fftshift(y1);%平移,是频率中心为0
derta_fs=fs/length(x1);%设置频谱的间隔,分辨率
Subplot(222)
plot([-fs/2:
derta_fs:
fs/2-derta_fs],abs(y1));%画出原始语音信号的频谱图
title('原始语音信号的频谱');gridon;
3.用设计的混响器对信号进行处理并分析比较
y2=[x1;zeros(200,1)];
y3=y2+z;%混响后信号叠加(两个信号必须长度相等)
Figure,plot(y3);
title('混响的时域图');gridon;
Y3=fft(y3);%混响信号fft变换
Y4=fftshift(y3);%平移,中心为0频率
derta_Fs=Fs/length(y3);
figure,plot([-Fs/2:
derta_Fs:
Fs/2-derta_Fs],abs(Y4));
title('混响后的频域图');gridon;_
Bz=[0,0,0,0,0,0,0,0,0,0,1];
Az=[1,0,0,0,0,0,0,0,0,0,-a];
yy1=filter(Bz,Az,x1);
subplot(223);
plot(yy1);
title('无限个回声滤波器时域波形');
gridon;
YY1=fft(yy1);
YY2=fftshift(yy1);%平移至中心为0频率
derta_fs=fs/length(yy1);
subplot(224);
plot([-fs/2:
derta_fs:
fs/2-derta_fs],abs(YY2));
title('无限个回声滤波器频谱图');
gridon;___
五、实验总结:
通过本此的课程设计对信号处理有了更进一步的熟悉,实际操作加深了对课本上的知识的理解。
通过上网搜索资料,查阅课本及课外书籍,动手设计滤波器,采集语音,语音分析等工作,加强了对MATLAB程序的编写能力以及对信号处理的相关知识的理解。
平时所学的知识如果不加以实践的话等于纸上谈兵。
实验二的内容网上有现成的程序,于是我也找了一些进行比较,发现都是大同小异,关键是要能够理解实验的内涵及原理。
在读程序的过程中遇到了一些不懂的地方:
fftshift的功能FFTSHIFTisusefulforvisualizingtheFouriertransformwiththezero-frequencycomponentinthemiddleofthespectrum.对自己的以后的要求是:
因为要考信号的研究生,以后也是免不了要编程序,先学着自己去读懂程序,然后自己去试着编写这些程序。