信号的采集与处理Word下载.docx
- 文档编号:3215679
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:19
- 大小:675.11KB
信号的采集与处理Word下载.docx
《信号的采集与处理Word下载.docx》由会员分享,可在线阅读,更多相关《信号的采集与处理Word下载.docx(19页珍藏版)》请在冰点文库上搜索。
(3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。
(4)程序限制不严格,程序设计自由度大。
例如,在MATLAB里,用户无需对矩阵预定义就可使用。
(5)程序的可移植性很好,基本上不做修改就可在各种型号的计算机和操作系统上运行。
(6)MATLAB的图形功能强大。
在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。
MATLAB还具有较强的编辑图形界面的能力。
(7)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。
由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。
(8)功能强大的工具箱是MATLAB的另一特色。
MATLAB包含两个部分:
核心部分和各种可选的工具箱。
核心部分中有数百个核心内部函数。
其工具箱又分为两类:
功能性工具箱和学科性工具箱。
功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。
功能性工具箱用于多种学科。
而学科性工具箱是专业性比较强的。
(9)源程序的开放性。
开放性也许是MATLAB最受人们欢迎的特点。
除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。
三、内容要求
1.语音信号的采集及频谱分析
要求利用Windows下的录音机,录制一段自己的话音,时间在5s内,存为*.WAV的文件。
然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。
(五位同学、简单音乐、和弦音乐)
要求首先画出语音信号的时域波形;
然后对语音号进行快速傅里叶变换,得到信号的频谱特性,分析基频。
(1)采集信号代码:
[x,fs,Nbits]=wavread('
E:
\shendanting\沈丹婷\SDT'
)
[x,fs,Nbits]=wavread('
\shendanting\沈丹婷\JDYY'
);
\shendanting\沈丹婷\HX'
采样频率和采样点数均为
(2)频谱分析代码:
fs=22050;
t=0:
1/22050:
(length(x)-1)/22050;
sound(x,fs);
%对加载的语音信号进行回放
figure
(1)
plot(t/2,x)%做原始语音信号的时域图形
title('
原始语音信号'
);
xlabel('
timen'
ylabel('
fuzhin'
figure
(2)
freqz(x)%绘制原始语音信号的频率响应图
频率响应图'
)
n=length(x);
%求出语音信号的长度
y1=fft(x,n);
%傅里叶变换
y2=fftshift(y1);
%对频谱图进行平移
f=0:
fs/n:
fs*(n-1)/n;
%得出频点
figure(3)
subplot(2,1,1);
plot(abs(y2))%做原始语音信号的FFT频谱图
原始语音信号FFT频谱'
subplot(2,1,2);
plot(f,abs(y2));
%绘制原始语音信号的频谱图
简单音乐及和弦的频谱分析如下:
(简单音乐)
2.理解傅里叶变换的性质
(1)回放
sound(x,fs);
(2)快慢放
w=0.5;
M=w*fs;
sound(x,M);
w=2;
(M>1快放,M<1慢放)
3.信号的调制解调
代码如下:
clear;
dt=1/44100;
fs=44100;
[f1,fs,nbits]=wavread('
figure
(1);
subplot(3,2,1);
N=length(f1);
1/fs:
(N-1)/fs;
plot(t,f1);
信息信号的时域波形'
fy1=fft(f1);
w1=0:
fs/(N-1):
fs;
figure
(2);
subplot(3,2,2);
plot(w1,abs(fy1));
信息信号的频谱'
f2=cos(22000*pi*t);
figure(3);
subplot(3,2,3);
fy2=fft(f2);
N2=length(f2);
w2=fs/N*[0:
N-1];
plot(w2,abs(abs(fy2)));
f1=f1(:
1);
f3=f1'
.*f2;
figure(4);
subplot(3,2,4);
fy3=fft(f3);
plot(w1,abs(abs(fy3)));
已调信号的频谱'
sound(f3,fs,nbits);
f4=f3.*f2;
figure(5);
subplot(3,2,5);
fy4=fft(f4);
plot(w1,abs(abs(fy4)));
sound(f4,fs,nbits);
fp1=0;
fs1=5000;
As1=100;
wp1=2*pi*fp1/fs;
ws1=2*pi*fs1/fs;
BF1=ws1-wp1;
wc1=(wp1+ws1)/2;
M1=ceil((As1-7.95)/(2.286*BF1))+1;
N1=M1+1;
beta1=0.1102*(As1-8.7);
Window=(kaiser(N1,beta1));
b1=fir1(M1,wc1/pi,Window);
figure(6);
freqz(b1,1,512);
FIR低通滤波器的频率响应'
f4_low=filter(b1,1,f4);
plot(t,f4_low);
sound(f4_low,fs,nbits);
f5=fft(f4_low);
figure(7);
plot(w1,abs(f5));
4、低通滤波
[x1,Fs,bits]=wavread('
derta_Fs=Fs/length(x1);
%设置频谱的间隔,分辨率,这里保证了x轴的点数必须和y轴点数一致
fs=Fs;
fp1=1000;
fs1=1200;
%
%按凯泽窗计算滤波器阶数
%求凯泽窗窗函数
%wc1/pi为归一化,窗函数法设计函数
%[H,w]=freqz(B,A,N),
(1)中B和A分别为离散系统的系统函数分子、分母多项式的系数向量,返回量H则包含了离散系统频响在0~pi范围内N个频率等分点的值(其中N为正整数),w则包含了范围内N个频率等分点。
调用默认的N时,其值是512。
x1_low=filter(b1,1,x1);
%对信号进行低通滤波,Y=filter(B,A,X),输入X为滤波前序列,Y为滤波结果序列,B/A提供滤波器系数,B为分子,A为分母
sound(x1_low,Fs,bits);
plot(x1_low);
信号经过FIR低通滤波器(时域)'
plot([-Fs/2:
derta_Fs:
Fs/2-derta_Fs],abs(fftshift(fft(x1_low))));
信号经过FIR低通滤波器(频域)'
5.提高部分
(1)声音信号的放大和衰减
放大:
[y,fs]=wavread('
sound(2*y,fs);
缩小:
sound(0.5*y,fs);
(2)倒放
wavplay(flipud(y),fs,'
sync'
(3)混音
%##下面是将两个音频叠加在一块
closeall
clearall
G:
\jsdx\jsdx'
%打开音频文件(格式为wav的音频文件),所得y为采样数据,fs为采样率
time=(1:
length(y))/fs;
%时间轴的向量【(length(y))/fs即为音频文件播放的时间长度】
subplot(3,1,1);
plot(time,y);
%画出时间轴上的波形
郭振宇的声音'
%sound(y,fs)
[y6,fs6]=wavread('
\jsdx\cui'
time6=(1:
length(y6))/fs6;
subplot(3,1,2);
plot(time6,y6);
崔舒扬的声音'
%sound(y6,fs6)
%下面将两个音频叠加在一块
[m,n]=size(y);
%查看y的大小,【此处y是m行,n列的数据】
[m6,n6]=size(y6);
%查看y6的大小,【此处y6是m6行,n6列的数据】
z=zeros(max(m,m6)-min(m,m6),n);
%生成0矩阵,用于加在时间较短的那么音频的后面
iflength(y)<
length(y6);
y1=[y;
z];
y8=y1+y6;
sound(y8,fs)
elsey1=[y6;
y8=y1+y;
end;
%%%%wavwrite(y8,fs,'
111'
%保存合成的音频信号,文件夹在matlab--bin
(4)回声
[x,fs,bits]=wavread('
G:
\jsdx\jsdx'
[140000]);
%读取语音信号
n1=0:
2000;
b=x(:
%产生单声道信号
N=3;
yy2=filter(1,[1,zeros(1,80000/(N+1)),0.7],[b'
zeros(1,40000)]);
%IIR滤波器进行滤波
figure(3)
plot(yy2);
%三次回声滤波器时域波形
三次回声滤波器时域波形'
YY2=fft(yy2);
%对三次回声信号做FFT变换
plot(n1(1:
1000),YY2(1:
1000));
%三次回声滤波器频谱图
三次回声滤波器频谱图?
'
figure(4)
plot(abs(YY2));
%经傅里叶变换之后的信号的幅值?
幅值'
plot(angle(YY2));
%经傅里叶变换之后的信号的相位?
相位'
sound(2*yy2,fs,bits);
%经三次回声滤波器后的语音信号,乘以5是为了加强信号
(5)页面设计
心得体会
我们之前并没有接触过这门课程,可能是教学安排上有些小瑕疵,一开始会觉得根本无从下手,没有一点思路,甚至第一天连如何运用这个软件都不知道,但之后的学习过程中,老师也放低了要求,我们也就没有了那么多压力。
XX,请教老师,小组成员互相讨论,一点一滴的慢慢积累,深深地感受到了这款软件的强大威力。
在电视里,特别是动画片中,唐老鸭的声音,或者其他尖锐,低沉的声音,原来都是可以用MATLAB制作出来的,改变频率,幅值,一个小小的变化都会产生极大的效果。
当听见自己的声音就跟用复读机快放一样的时候,心里还是很得意的,短短的几句代码,竟然有如此大的威力,真的得感叹一句科技真伟大。
最有意思的并不是基础部分的程序设计,反而是后面的提高部分,回声,混音,增强,衰减,特别是最后还有个页面设计,我们组的小伙伴特别给力,做出来的效果特别逗,很有喜感。
可惜,男女变声还来不及修改完成,不过如果时间还能充裕一点,我们有信心能把它搞定!
再说说我这次主要完成的版块吧。
我负责的是信号采集和频谱的分析,参与了调制解调,快慢放以及声音信号的放大和衰减。
说实话,一开始当组长交代任务,根本无从下手,只能XXXX,信号的采集和频谱分析网上版本各种各样,最初我们借鉴的那个版本有噪声方面的处理,而且维数也不对,最后我们一起讨论,删减,才得到了最后的终极版。
快慢放还有放大和衰减就相对比较简单,都是短短几句话,通过改变频率,幅值,就可以实现。
我们发现,改变频率会达到快慢放,同时声音也会变尖锐,一开始误以为这就是男女声转换呢。
总之,过程远远比结果精彩,自己从啥也不会,到现在能对MATLAB有所了解,这都是非常令人高兴的事
MATLAB不在于学习本身,在于你对实际问题的理解分析能力和建模能力。
MATLAB作为一种数学工具,广泛用于各个工程领域。
工程技术人员通过MATLAB提供的工具箱和丰富的调用函数,可以完成复杂工程问题的数值求解.并能够将计算结果形象直观地显示出来。
随着应用研究不的不断深入,MATLAB也处在不断发展和完善的过程中。
学习MATLAB可以完全很多实际性的工作,比如说画二维,三维图。
MALAB具有强大的数值计算功能,而MALTAB中带的系统仿真成为大型科研中最得力的助手。
本次课程设计要求我们学会运用MATLAB的信号处理功能,采集语音信号,并对语音信号进行滤波及变换处理,观察其时域和频域特性,加深对信号处理理论的理解,并为今后熟悉,时间虽短,受益颇深。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 采集 处理