文档视界 最新最全的文档下载
当前位置:文档视界 › matlab对音频文件简单件处理

matlab对音频文件简单件处理


clear all
close all

[y,fs]=wavread('C:\Users\Administrator\Desktop\wav\我只在乎你.wav');%打开音频文件(格式只能是wav的音频文件),所得y为采样数据,fs为采样率

%sound(y) %同原来的声音不通,因系统默认不是原来的y与fs

%pause(1) %等待1s

%sound(y,fs); %按原数据的y和fs读取,可以听到和原来一样的声音

%pause(1);
%sound(2*y,fs); %音量是原来的2倍【声音的音量是由声波的震幅来决定,因此我们可藉由震幅的大小来改变音量】

%pause(1);
sound(2*y,2*fs);%如果在播放时,改变取样频率,就会改变整个音讯的时间长度,进而影响到音高【声音语速变快】


wavwrite(y,2*fs,'AA');%将处理后的音频保存,matlab默认保存文件夹在matlab安装文件夹下的“bin”文件夹
%此处用wavwrite(y,2*fs,nbits,'AA')也可以,但是前面要有对应的,
%即wavread那里要用[y,fs,nbits]=wavread('C:\Users\Administrator\Desktop\wav\我只在乎你.wav')


pause(1);
sound(2*y,0.5*fs);%如果在播放时,改变取样频率,就会改变整个音讯的时间长度,进而影响到音高【声音语速变慢】

pause(1);
wavplay(-y, fs, 'sync');%如果我们将声波讯号上下颠倒,听到的声音基本上是一样的【wavplay也有sound的播放功能】

pause(1);
wavplay(flipud(y), fs, 'sync'); % 播放前后颠倒的音讯波形【如果前后颠倒,听到的声音就如同录音带「倒放」的声音】

%******************************************************************************************************************************************************
[y,fs]=wavread('C:\Users\Administrator\Desktop\wav\方大同 - 千纸鹤.wav');%打开音频文件(格式为wav的音频文件),所得y为采样数据,fs为采样率
time=(1:length(y))/fs; % 时间轴的向量【(length(y))/fs即为音频文件播放的时间长度】

plot(time, y); % 画出时间轴上的波形


sound(y,fs)



%############为这段音频添加白噪音

[m,n]=size(y);%查看y的大小,以生成同样大小噪声进行叠加【此处y是N行,2列的数据】

y1=0.1*randn(m,n); %生成同yd大小相同的随即噪声,但将震幅变为0.1倍,这样加进去的噪声听着不那么刺耳


y2=y1+2*y;%将产生的噪声与原信号叠加,此处讲原信号音量放大一倍,也是使听起来不那么刺耳
sound(y2,fs)%试听叠加噪声后的声音
%************************************************************************************************************************************


%##下面是将两个音频叠加在一块
close all
clear all

[y,fs]=wavread('C:\Users\Administrator\Desktop\wav\我只在乎你.wav');%打开音频文件(格式为wav的音频文件),所得y为采样数据,fs为采样率
time=(1:length(y))/fs; % 时间轴的向量【(length(y))/fs即为音频文件

播放的时间长度】
subplot(3,1,1);
plot(time, y); % 画出时间轴上的波形

title('我只在乎你');
%sound(y,fs)


[y6,fs6]=wavread('C:\Users\Administrator\Desktop\wav\方大同 - 千纸鹤.wav');%打开音频文件(格式为wav的音频文件),所得y为采样数据,fs为采样率
time6=(1:length(y6))/fs6; % 时间轴的向量【(length(y))/fs即为音频文件播放的时间长度】
subplot(3,1,2);
plot(time6, y6); % 画出时间轴上的波形
title('方大同 - 千纸鹤');
%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矩阵,用于加在时间较短的那么音频的后面

if length(y)y1=[y;z];
y8=y1+y6;
sound(y8,fs)
else y1=[y6;z];
y8=y1+y;
sound(y8,fs)
end;


%%%%wavwrite(y8,fs,'111');%保存合成的音频信号,文件夹在matlab--bin













相关文档
相关文档 最新文档