matlab音频信号处理技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一Matlab的音频信号处理技术
一.目的要求
掌握Matlab处理.wav的基本原理和方法。
二.实验内容
【实验题1】音量标准化
(说明:如果有几段音频的电平有大有小,这样的音频保存后,播放时就有的声音大、有的声音小,音量标准化就是把电平大小不同的音频文件,量化到一个既不失真、又有一定标准(100%)的、统一的音量电平,这样就不会出现声音有大有小的情况了。)现以微软自带的“Alarm09.wav”音频信号为例:
1.将Alarm09.wav复制到Matlab当前目录中(或者改变当前目录);
2.再通过音量标准化处理后保存为Alarm09new.wav文件。
实现程序如下:
clear; close all; clc
[Y, FS, NBITS]=wavread('Alarm09.wav');%将WAV文件转换成变量
FS,NBITS %显示采样频率和量化比特数
Ym=max(max(max(Y)),max(abs(min(Y))));%找出双声道极值
X=Y/Ym;%归一化处理
wavwrite(X,FS,NBITS, 'Alarm09new.wav');%将变量转换成WAV文件
【思考题】
1. 试听标准化处理后的声音,其有何变化?
标准化处理后音量变得稍大。
2. 简单描述“%找出双声道极值”中每一个max和min的意义。
找出wav文件转换为变量后的有最大绝对值的数值,用以归一化处理。
【实验题2】声道分离合并与组合
(说明:立体声或双声道音频信号有左右两个声道利用Matlab实现双声道分离两路声道合并和两个单声道组合成一个双声道等效果这些操作实际利用了Matlab的矩阵抽取、相加和重组运算)
现以“荷塘月色.wav”音频信号为例:
clear; close all; clc
[X, FS, NBITS]=wavread('荷塘月色.wav'); %将WAV文件转换成变量
X1=X(:,1);%抽取第1声道
X2=X(:,2);%抽取第2声道
wavwrite(X1,FS,NBITS, '荷塘月色1.wav');
wavwrite(X2,FS,NBITS, '荷塘月色2.wav');
X12=X1+X2;%两路单声道合并
X12m=max(max(max(X12)),max(abs(min(X12))));%找出极值
Y12=X12/X12m;%归一化
wavwrite(Y12,FS,NBITS, '荷塘月色12.wav');
X3=[X1,X2];%两路单声道变量组合
wavwrite(X3,FS,NBITS, '荷塘月色3.wav');
【思考题】
1.比较各种处理后的文件大小。
荷塘月色1和2以及归一化后的12文件较小,只有原来的一半,荷塘月色3和原来一样大。
2.试听处理后的文件,简述有何不同?
效果不明显。本以为可以听到男声和女声的单独声道,但是没有听出区别。
【实验题3】数据转换
(说明:数据转换是指改变音频格式中的采样频率或量化位数)现以“女音01.wav”音频信号为例:
clear; close all; clc
[x, FS, NBITS]=wavread('女音01.wav');%将WAV文件转换成变量N=length(x); %计算数据点数
%原信号波形频谱分析
tx=(0:N-1)/FS; %计算原信号数据点时刻
subplot(3,2,1);plot(tx,x); %绘制原信号波形
title('原信号波形图');%加标题
xf=fft(x);%求原信号频谱
fx=(0:N/2)*FS/N;
subplot(3,2,2);plot(fx,abs(xf(1:N/2+1))); %绘制原信号频谱title('原信号频谱图');%加标题
%实现数据抽取
k=[1:N/2];%抽取位置
y=x(2*k);%抽取后的数据
M=length(y);%抽取后的数据点数
%抽取信号在原采样频率FS下的波形频谱分析
ty=(0:M-1)/FS;
subplot(3,2,3);plot(ty,y); %绘制信号波形
title('原采样率下新波形图');%加标题
yf=fft(y);%求频谱
fy=(0:M/2)*FS/M;%确定频谱图频率刻度
subplot(3,2,4);plot(fy,abs(yf(1:M/2+1))); %绘制原信号频谱title('原采样频率下新频谱图');%加标题
%抽取信号在原采样频率FS/2下的波形频谱分析
tz=(0:M-1)/(FS/2);%计算数据点时刻
subplot(3,2,5);plot(tz,y); %绘制信号波形
title('新采样率下新波形图');%加标题
fz=(0:M/2)*(FS/2)/M; %确定频谱图频率刻度
subplot(3,2,6);plot(fz,abs(yf(1:M/2+1))); %绘制原信号频谱title('新采样频率下新频谱图');%加标题
%实现数据转换
wavwrite(y, FS/2, NBITS, '女音0116B.wav');%16位
wavwrite(y, FS/2, NBITS/2, '女音018B.wav');%8位
【思考题】
1.将生成图片截图复制于下面。
将音乐改成“夜店.wav”,这是生成的波形和频谱分析图。由两幅图可知,波形图和频谱图几乎相同,采样频率较高,人耳几乎听不出区别。