Matlab音頻信號的基本處理與分析
掃描二維碼
隨時隨地手機看文章
Matlab音頻信號的基本處理與分析
1 音頻信號的讀取與時域分析
close all
clear all
clc
%讀取音頻文件
info =audioinfo('sample_orig.mp3');%獲取音頻文件的信息
[audio,Fs] = audioread('sample_orig.mp3');%讀取音頻文件
sound(audio,Fs);%播放音頻文件
audiolength = length(audio);%獲取音頻文件的數(shù)據(jù)長度
t = 1:1:audiolength;
figure(1),
plot(t,audio(1:audiolength));
xlabel('Time');
ylabel('Audio Signal');
title('原始音頻文件信號幅度圖');
其中info為此音頻的詳細信息包括數(shù)據(jù)位寬,采樣率等。
2 音頻的頻域分析
%音頻的頻域
y =fft(audio);
y=20*log(abs(y))/log(10); %換算成dBW單位
f=[0:(Fs/audiolength):Fs/2]; %轉(zhuǎn)換橫坐標以Hz為單位
y=y(1:length(f));
figure(2),
plot(f,y);
xlabel('頻率(Hz)','fontsize',8,'position',[180,-34.38,0]);
ylabel('功率(dBW)');
title('原始音頻文件信號頻譜圖');legend('Audio');
由此可見此音頻的主要頻率集中在低頻段。
3 音頻的疊加與寫出
%音頻信號的疊加
[audio1,Fs1] = audioread('test.wav');%讀取音頻文件
audio2 = audio1(1:audiolength);
audio3 = audio2+0.1*audio;
sound(audio3,Fs);%播放音頻文件
audiowrite('test1.wav',audio3,Fs)%寫出新的音頻文件
4 音頻信號的拼接
%音頻信號的拼接
audio4 = [audio;audio1];
sound(audio4,Fs);%播放音頻文件
audiowrite('test2.wav',audio3,Fs)%寫出新的音頻文件