音頻世界一

音頻世界一

人類獲取外部世界信息的主要的一個來源就是聲音。音頻世界系列文章將帶大家走進人類的聲音的世界。學習瞭解FPGA的數字音頻算法的實現。
在這裏插入圖片描述
聲音(sound)的物理術語爲由物體振動產生的聲波。是通過介質(空氣或固體、液體)傳播並能被人或動物聽覺器官所感知的波動現象。
聲音作爲一種波,頻率在20 Hz~20 kHz之間的聲音是可以被人耳感知到。
Matlab製作的不同單頻率的聲音:
1,100hz
2,1000hz
3,10000hz
4,18000hz
由於公衆號每篇文章只能添加一個音頻文件,所以不能在此添加上來供大家欣賞比對不同但頻率的聲音對人耳聽覺的感覺。1.8khz基本人耳已經聽不到聲音,大家可以嘗試自己製作。
聲音的3個基本部分爲:響度、音調和音色。
響度:聲波的強度的量度。
音調:聲音中基波成分的頻率。
音色:有信號的諧波分量決定(基波+泛音)。泛音既是多個諧波。
數字音頻的基本詳細:採樣(sample)、量化(quantization)和聲道(channel)。
數字器件處理音頻的前提是要將模擬信號轉化成數字信號,其中需要採樣和量化。
人的發生頻率範圍大約在100hz到10000hz之間,我們一般人的聽力範圍在20hz到20khz之間,高於20000hz的叫做超聲波,而低於20hz的叫做次聲波。男人的聲音一般會響度大而音調低,女生的音調高而響度低。
一般高保真音樂的帶寬在5hz–20khz採樣頻率爲44.1khz(根據奈奎斯特採樣定律),或48khz。電話或者手機的語音帶寬一般在200hz到3.2khz,採樣頻率爲8khz。
原始音樂:
Matlab音頻的基本分析:

close all
clear all
clc
 
info =audioinfo('sample_orig.mp3');%獲取音頻文件的信息
[audio,Fs] = audioread('sample_orig.mp3');%讀取音頻文件
sound(audio,Fs);%播放音頻文件
%audiolength = length(audio);%獲取音頻文件的數據長度
audiolength = 2048;%獲取音頻文件的數據長度
t = 1:1:audiolength;
 
f_osc =fft(audio(1:audiolength),audiolength);
f_osc=20*log(abs(f_osc))/log(10);        %換算成dBW單位
ft=[0:(Fs/audiolength):Fs/2];              %轉換橫座標以Hz爲單位
f_osc=f_osc(1:length(ft));
 
figure(1),
subplot(211),plot(t,audio(1:audiolength));
xlabel('Time');
ylabel('Audio Signal');
title('原始音頻文件信號幅度圖');
subplot(212),plot(ft,f_osc);
xlabel('頻率(Hz)'); 
ylabel('功率(dBW)');
title('原始音頻文件信號頻譜圖');

在這裏插入圖片描述
如上圖所示matlab可以通過audioinfo得到音頻的基本信息,包括通道數(NumChannels)、採樣率(SampleRate)、持續時間(Duration)等信息。

在這裏插入圖片描述
如上圖所示,上圖1爲原始信號隨時間的幅度圖,它代表聲音隨時間的響度(數值大小)的變化,上圖2代表聲音隨頻率幅度的變化。我們取了前2048個點來分析。可以看到前2048個點的頻率集中在3khz以下。
在這裏插入圖片描述
如上圖所示是這首音樂的聲譜圖(spectrogram),上面的頻譜圖只代表這上邊的很小一段聲音。把一整段聲音信號截成很多小段就形成了很多幀語音,對每一段語音進行幅頻分析後將頻譜“豎直”起來(用縱軸代表頻率),用顏色深淺代表頻譜的強度,再把所有的頻率譜橫向連接起來(橫軸表示時間),就得到了聲譜圖。

歡迎關注微信公衆號:FPGA開源工作室
獲取更多學習資料。
FPGA開源工作室

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章