日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

语音信号处理MATLAB实现

發(fā)布時(shí)間:2025/3/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 语音信号处理MATLAB实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

matlab語音信號(hào)處理的一段代碼

涉及到的函數(shù)sound()函數(shù)audioread()函數(shù)

sound函數(shù)的輸入?yún)⒘渴且纛l數(shù)據(jù)向量、采樣頻率和轉(zhuǎn)換位數(shù)。
也可以自己寫些聲音數(shù)據(jù)。下面的聲音聲調(diào)和頻率有關(guān),長度和數(shù)據(jù)長度有關(guān):
例如:
sound(sin(2*pi*25*(1:4000)/100));

響兩聲就是:
sound(sin(2*pi*25*(1:4000)/100));
pause(1);
sound(sin(2*pi*25*(1:4000)/100));
MATLAB也自帶了很多聲音:
%鳥聲
load chirp
sound(y,Fs)
%鑼聲
load gong
sound(y,Fs)
%哈里路亞

MATLAB里函數(shù)audioread的使用格式:

[y,Fs]=audioread('D:\MATLAB\work\noisymusic.wav');

sound(y,Fs);

還涉及到數(shù)字信號(hào)處理的一部分信號(hào)處理的知識(shí),這里只是簡單的用低通濾波器來進(jìn)行處理,可以發(fā)現(xiàn)濾波的效果并不好

[y,fs]=audioread('D:\matlab\work\voice.mp3'); sound(y,fs) % 回放語音信號(hào) n=length(y) %選取變換的點(diǎn)數(shù) y_p=fft(y,n); %對(duì)n點(diǎn)進(jìn)行傅里葉變換到頻域 f=fs*(0:n/2-1)/n; % 對(duì)應(yīng)點(diǎn)的頻率 figure(1) subplot(2,1,1); plot(y); %語音信號(hào)的時(shí)域波形圖 title('原始語音信號(hào)采樣后時(shí)域波形'); xlabel('時(shí)間軸') ylabel('幅值 A') subplot(2,1,2); plot(f,abs(y_p(1:n/2))); %語音信號(hào)的頻譜圖 title('原始語音信號(hào)采樣后頻譜圖'); xlabel('頻率Hz'); ylabel('頻率幅值'); %對(duì)音頻信號(hào)產(chǎn)生噪聲L=length(y) %計(jì)算音頻信號(hào)的長度noise=0.1*randn(L,2); %產(chǎn)生等長度的隨機(jī)噪聲信號(hào)(這里的噪聲的大小取決于隨機(jī)函數(shù)的幅度倍數(shù))y_z=y+noise; %將兩個(gè)信號(hào)疊加成一個(gè)新的信號(hào)——加噪聲處理 pause(5)sound(y_z,fs) %對(duì)加噪后的語音信號(hào)進(jìn)行分析 n=length(y); %選取變換的點(diǎn)數(shù) y_zp=fft(y_z,n); %對(duì)n點(diǎn)進(jìn)行傅里葉變換到頻域 f=fs*(0:n/2-1)/n; % 對(duì)應(yīng)點(diǎn)的頻率 figure(2) subplot(2,1,1); plot(y_z); %加噪語音信號(hào)的時(shí)域波形圖 title('加噪語音信號(hào)時(shí)域波形'); xlabel('時(shí)間軸') ylabel('幅值 A') subplot(2,1,2); plot(f,abs(y_zp(1:n/2))); %加噪語音信號(hào)的頻譜圖 title('加噪語音信號(hào)頻譜圖'); xlabel('頻率Hz'); ylabel('頻率幅值'); %對(duì)加噪的語音信號(hào)進(jìn)行去噪程序如下: fp=1500;fc=1700;As=100;Ap=1; %(以上為低通濾波器的性能指標(biāo)) wc=2*pi*fc/fs; wp=2*pi*fp/fs; wdel=wc-wp; beta=0.112*(As-8.7); N=ceil((As-8)/2.285/wdel); wn= kaiser(N+1,beta); ws=(wp+wc)/2/pi; b=fir1(N,ws,wn); figure(3); freqz(b,1); title('低通濾波器的幅頻圖'); xlabel('頻率/hz'); ylabel('幅度/db'); %(此前為低通濾波器設(shè)計(jì)階段)——接下來為去除噪聲信號(hào)的程序—— x=fftfilt(b,y_z); X=fft(x,n); figure(4); subplot(2,2,1);plot(f,abs(y_zp(1:n/2))); title('濾波前信號(hào)的頻譜'); subplot(2,2,2);plot(abs(X)); title('濾波后信號(hào)頻譜'); subplot(2,2,3);plot(y_z); title('濾波前信號(hào)的波形') subplot(2,2,4);plot(x); title('濾波后信號(hào)的波形') pause(5); sound(x,fs) %回放濾波后的音頻

?

總結(jié)

以上是生活随笔為你收集整理的语音信号处理MATLAB实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。