999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MATLAB的音頻信號處理技術實現

2009-04-29 00:00:00張登奇
電腦知識與技術 2009年5期

摘要:MATLAB是一款數據分析和處理功能都非常強大的科技應用軟件,利用它可以靈活方便地分析處理音頻信號。文章介紹了用MATLAB軟件處理音頻信號的基本流程,并以實例形式列出了幾款技術實現程序。

關鍵詞:MATLAB;數字信號處理;音頻信號;脈沖編碼調制;數字濾波

中圖分類號:TN912.3 文獻標識碼:A 文章編號:1009-3044(2009)05-1211-03

Technological Realization of Audio Signal Processing Based on MATLAB

ZHANG Deng-qi, JIANG Min

(Department of Computer, Hunan Institute of Science and Technology, Yueyang 414006, China)

Abstract: MATLAB is a powerful signal analysis and processing software. It can be used to analyze and process audio signal with precision. This paper introduces the fundamental flow of audio signal processing with the use of MATLAB and lists several technically realizable programs by the illustration.

Key words: MATLAB; digital signal processing; audio signal; pulse code modulation; digital filter

1 引言

MATLAB是美國Math Works公司推出的一種面向工程和科學計算的交互式計算軟件。它以矩陣運算為基礎,把計算、可視化、程序設計融合在一個簡單易用的交互式工作環(huán)境中,是一款數據分析和處理功能都非常強大的工程實用軟件。本文介紹了用MATLAB處理音頻信號的基本流程,并以實例形式列出了常用音頻處理技術實現程序。

2 MATLAB處理音頻信號的流程

分析和處理音頻信號,首先要對聲音信號進行采集,MATLAB 的數據采集工具箱提供了一整套命令和函數,通過調用這些函數和命令,可直接控制聲卡進行數據采集[1]。Windows自帶的錄音機程序也可驅動聲卡來采集語音信號,并能保存為WAV格式文件,供MATLAB相關函數直接讀取、寫入或播放。本文以WAV格式音頻信號作為分析處理的輸入數據,用MATLAB處理音頻信號的基本流程是:先將WAV格式音頻信號經wavread 函數轉換成MATLAB列數組變量;再用MATLAB強大的運算能力進行數據分析和處理,如時域分析、頻域分析、數字濾波、信號合成、信號變換、識別和增強等等;處理后的數據如是音頻數據,則可用wavwrite轉換成WAV格式文件或用sound、wavplay等函數直接回放。下面分別介紹MATLAB在音量標準化、聲道分離合并與組合、數字濾波、數據轉換等音頻信號處理方面的技術實現。

3 音量標準化

錄制聲音過程中需對聲音電平進行量化處理,最理想的量化是最大電平對應最高量化比特,但實際卻很難做到,常有音輕問題。利用MATLAB很容易實現音量標準化,即最大電平對應最高量化比特。基本步驟是:先用wavread函數將WAV文件轉換成列數組變量;再求出數組變量的極值并對所有元素作歸一化處理;最后用wavwrite函數還原成音量標準化的WAV文件。

例1:現以微軟自帶的“Windows XP 關機.wav”音頻信號為例,先將其復制另存到文件名為XPexit.wav的MATLAB當前目錄中,再通過音量標準化處理后保存為XPquit.wav文件。實現程序如下:

clear; close all; clc;

[Y,FS,NBITS]=wavread('XPexit.WAV');% 將WAV文件轉換成變量

FS,NBITS,% 顯示采樣頻率和量化比特

Ym=max(max(max(Y)),max(abs(min(Y)))),% 找出雙聲道極值

X=Y/Ym;% 歸一化處理

wavwrite(X,FS,NBITS,'XPquit.wav')% 將變量轉換成WAV文件

試聽可知標準化處理后音量稍大。

4 聲道分離合并與組合

立體聲或雙聲道音頻信號有左右兩個聲道,利用MATLAB實現雙聲道分離、兩路聲道合并和兩個單聲道組合成一個雙聲道等效果,實際上是利用了MATLAB的矩陣抽取、矩陣相加和矩陣重組運算。

例2:現以例1生成的XPquit.wav為例,實現分離、合并和組合處理的程序如下:

clear; close all; clc;

[x,FS,NBITS]=wavread('XPquit.WAV');% 將WAV文件轉換成變量

x1=x(:,1);% 抽取第1聲道

x2=x(:,2);% 抽取第2聲道

wavwrite(x1,FS,NBITS,'XPquit1.WAV');% 實現1聲道分離

wavwrite(x2,FS,NBITS,'XPquit2.WAV');% 實現2聲道分離

%如果合并位置不對前面補0 %聲道長度不對后面補0

x12=x1+x2;% 兩路單聲道列向量矩陣變量合并

x12m=max(max(x12),abs(min(x12))),% 找出極值

y12=x12./x12m;% 歸一化處理

wavwrite(y12,FS,NBITS,'XPquit12.WAV');% 實現兩路聲道合并

%如果組合位置不對前面補0--聲道長度不對后面補0

x3=[x1,x2];% 兩路單聲道變量組合

wavwrite(x3,FS,NBITS,'XPquit3.WAV');% 實現兩路聲道組合

可以試聽聲道分離、合并與組合的效果,也可對各文件大小進行比較。

5 數字濾波

數字濾波是常用的音頻處理技術。可根據技術指標,先利用FDATool工具,設計一個數字濾波器[2],再用Filter或Filter2函數即可實現濾波處理。調用的Filter函數格式是:Y = filte (B,A,X) 。其中,B和A是濾波器傳輸函數的分子和分母系數,X是輸入變量,Y是實現濾波后的輸出變量。如果處理立體聲音頻信號,可分開處理,但用FIR濾波器時調用Filter2函數更方便。

例3:現以例2生成的XPquit12.wav為例,實現數字濾波的程序如下:

clear; close all; clc;

[X,FS,NBITS]=wavread('XPquit12.WAV');% 將WAV文件轉換成變量

%利用FDATool設計一個LowpassButterworth濾波器

%指標FS=22050Hz Fp=1000Hz Ap=1dB Fs=3000Hz As=20dB

B =[0.0062,0.0187,0.0187,0.0062];% 分子系數

A =[1,-2.1706,1.6517,-0.4312];% 分母系數

Y=filter(B,A,X);% 實現數字濾波

t=(0:length(X)-1)/FS;% 計算數據時刻

subplot(2,2,1);plot(t,X);% 繪制原波形圖

title('原信號波形圖');% 加標題

subplot(2,2,3);plot(t,Y);% 繪制濾波波形圖

title('濾波后波形圖');% 加標題

xf=fft(X);% 作傅里葉變換求原頻譜

yf=fft(Y);% 作傅里葉變換求濾波后頻譜

fm=3000*length(xf)/FS;% 確定繪頻譜圖的上限頻率

f=(0:fm)*FS/length(xf);% 確定繪頻譜圖的頻率刻度

subplot(2,2,2);plot(f,abs(xf(1:length(f))));% 繪制原波形頻譜圖

title('原信號頻譜圖');% 加標題

subplot(2,2,4);plot(f,abs(yf(1:length(f))));% 繪制濾波后頻譜圖

title('濾波后信號頻譜圖');% 加標題

wavwrite(Y,FS,NBITS,'XPquitFilter.WAV');% 寫成WAV文件

程序運行結果如圖1所示。由圖可知,濾波對波形影響不大,但對高頻有較大衰減。試聽會感覺到處理后的聲音比較沉悶。

6 數據轉換

數據轉換是指改變音頻格式中的采樣頻率或量化位數。轉換原理是:先用矩陣插值或抽取技術實現變量變換,如果是抽取數據還需在變換前作濾波處理使之滿足采樣定理;變量變換完成后再用Wavwrite函數重新定義量化位數和采樣頻率即可實現數據轉換。數據轉換過程中,要注意采樣頻率與原始采樣頻率及插值或抽取系數的關系。MATLAB實現插值或抽取的函數有decimate、interp和resample,具體應用可參考有關文獻[3]。這果以2倍抽取為例,將例3中經過濾波后產生的XPquitFilter.WAV文件進行數據轉換處理。具體程序如下:

clear; close all; clc;

[x,FS,NBITS]=wavread('XPquitFilter.WAV');% 將WAV文件轉換成變量

N=length(x);% 計算數據點數

% 不是偶數點化成偶數點

if mod(N,2)==0; N=N; else x(N)=[]; N=N-1; end;

% 原信號波形頻譜分析

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,'XPquit16B.WAV');% 音頻格式PCM 11025Hz 16位

wavwrite(y,FS/2,NBITS/2,'XPquit8B.WAV');% 音頻格式PCM 11025Hz 8位

運行程序,在得到的圖形窗口中,執(zhí)行Edit/Axes Properties…命令,再把各分圖下X標簽中的Limits設為0、0.01和0、1000,得到0—0.01秒的波形和0—1000Hz的頻譜如圖2所示。由圖可知,在滿足采樣定律條件下,實現數據抽取,在原采樣率下波形變密、頻譜變寬且幅度減半,但在新采樣率下波形和頻譜都很好。通過試聽輸出文件還可感受處理效果。

7 結束語

MATLAB提供了許多專用工具箱,靈活利用這些工具箱和函數,可以實現很多信號處理任務。同時,MATLAB還支持用戶對其函數進行二次開發(fā),以滿足不同要求。在信號處理過程中,MATLAB兼顧了專用工具軟件的簡單性和計算機程序語言的靈活性,特別是處理效果的可視性和可感知,有利于理解信號處理的本質,有利于激發(fā)學習和研究興趣,也有利于培養(yǎng)MATLAB軟件的操作技能。

參考文獻:

[1] 陳宇鋒.基于聲卡和MATLAB的語音信號采集和處理[J].中國現代教育裝備,2006(5):49-51.

[2] 張登奇.基于MATLAB的IIR數字濾波器設計[J].湖南理工學院學報,2007(3):26-29.

[3] Sanjit K.Mitra.數字信號處理[M].孫洪等譯.北京:電子工業(yè)出版社,2005.

[4] 張志涌等.精通MATLAB6.5版[M].北京:北京航空航天大學出版社,2003.

主站蜘蛛池模板: 久久婷婷色综合老司机 | 国产精品一区在线麻豆| 精品国产中文一级毛片在线看| 成人在线观看不卡| 亚洲午夜片| 亚洲精品无码久久久久苍井空| 国产精品欧美激情| 91探花在线观看国产最新| 日本精品视频一区二区| 亚洲精品波多野结衣| 伊人五月丁香综合AⅤ| 国产一在线观看| 国产成人亚洲无码淙合青草| 亚洲综合专区| 亚洲视频四区| 国产成人高精品免费视频| 国产簧片免费在线播放| 国产精品入口麻豆| 欧美天堂久久| 色婷婷狠狠干| 一级看片免费视频| 久久鸭综合久久国产| 日日碰狠狠添天天爽| 好紧太爽了视频免费无码| 日韩在线第三页| 国产真实乱人视频| 久久黄色小视频| 在线观看亚洲精品福利片| 午夜一区二区三区| 91精品国产91久久久久久三级| 亚洲第一网站男人都懂| 国产一级视频在线观看网站| 九九免费观看全部免费视频| 国产毛片不卡| 亚洲人成人伊人成综合网无码| 国产精品午夜电影| 国产成人久久综合777777麻豆| 国产视频你懂得| 国产97视频在线观看| 亚洲欧美日韩视频一区| 青青操国产视频| 在线观看亚洲人成网站| 国产亚洲视频免费播放| 免费Aⅴ片在线观看蜜芽Tⅴ| 日韩色图在线观看| 国产男女免费完整版视频| 欧洲一区二区三区无码| 欧美专区在线观看| 天堂网国产| 亚洲成人免费在线| 亚洲欧洲免费视频| 久久99精品国产麻豆宅宅| 中文字幕调教一区二区视频| 中文字幕第4页| 国产综合色在线视频播放线视 | 天天色综网| 欧美曰批视频免费播放免费| 日韩精品专区免费无码aⅴ| 日本91视频| 欧美国产日韩在线| 国产高清不卡| 日韩欧美国产中文| 视频二区国产精品职场同事| 永久毛片在线播| 国产成人精品男人的天堂下载 | 日韩无码黄色| 五月天久久婷婷| 国产精品视频3p| 亚洲欧美国产高清va在线播放| 国内毛片视频| 亚洲成在人线av品善网好看| 国产性猛交XXXX免费看| 青青操国产视频| 免费高清自慰一区二区三区| 欧美成人午夜影院| 国产日本欧美在线观看| 国产精品不卡片视频免费观看| 国产欧美一区二区三区视频在线观看| 免费Aⅴ片在线观看蜜芽Tⅴ| 亚洲Va中文字幕久久一区 | 热99精品视频| 久久这里只有精品8|