BL小男生H小屁股窑子开张了,各种妇女撒尿MM毛,短篇肉耽H车,国产免费不卡v片在线观看,少妇欲乱系列小说,久久九九精品欧美日韩精品,久久骚妇,久久国产亚洲精品麻豆,国产真实伦在线观看视频,在线观着免费观看国产黄

免費發布產品 快速發布資訊

在matlab中怎樣實現對聲音的導入,分析與處理???

?? 2021-04-21 8660
核心提示:1、首先啟動MATLAB軟件。2、首先設定好波形的基本參數,采樣點數,采樣頻率,采樣間隔,時間間隔,最高采樣頻率等,注意要符合采

1、首先啟動MATLAB軟件。

2、首先設定好波形的基本參數,采樣點數,采樣頻率,采樣間隔,時間間隔,最高采樣頻率等,注意要符合采樣定理才能保證信號不失真。

3、然后定義聲音信號的波形,可以是普通的余弦波,也可以復雜的波形,然后用subplot語句將波形繪制出來。

4、然后創建噪聲的波形,這里是調用了取值在0~1的隨機函數,用來產生高斯噪聲,再繪制出它的波形。

5、然后根據傅里葉變換的原則,將噪聲的時域表達轉換為頻域表達,再繪制出它的波形。

6、通過將原始信號和噪聲信號相加,即可得到混合噪聲后的信號,再調用繪圖語句畫出它的波形。

1)用mp3錄音,生成文件cricket.wav,把該文件放到matlab文件夾里面(就是你打開matlab后中間頂部的地址)。

2)使用如下程序,做波形顯示以及fft變換。

[y,Fs,bits]=wavread('cricket.wav');%讀出信號,采樣率和采樣位數。
y=y(:,1);%我這里假設你的聲音是隔聲測量系統雙聲道,我只取單聲道作分析,如果你想分析另外一個聲道,請改成y=y(:,2)
sigLength=length(y);
Y = fft(y,sigLength);
Pyy = Y.* conj(Y) / sigLength;
halflength=floor(sigLength/2);
f=Fs*(0:halflength)/sigLength;
figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');
t=(0:sigLength-1)/Fs;
figure;plot(t,y);xlabel('Time(s)');

3)頻率看頻譜就有了,聲音間隔看聲音波形,周期看聲音波形。

4)關于去噪聲。

a)如果噪聲是特定頻率的周期噪聲(periodic noise),比如說50hz,那么你可以用matlab的filter,作一個低通、高通、帶通或者帶阻濾波。
b)如果聲音是高斯白噪聲。那就用自適應濾波(adaptive filter,wiener filter)。這里涉及到對噪聲的采樣、計算特征值以及決定階數的問題。
c)幸好我們可以“耍賴”——用cool editor。用它打開wav文件,用鼠標把一段噪聲圈起來,采樣,然后直接選擇去噪就可以了。各大網站有介紹。

例子:matlab去除50hz噪聲。
我用電腦錄了一段聲音,里面有50hz的周期噪聲(因為受交流電干擾)。而我自己的聲音頻率最低是90hz。我使用了一個10階butterworth高通濾波器,邊帶是70hz(介于50跟90之間)。
問題是,這不能直接用。因為聲音文件的采樣率是22k,70相對于22k來說太小了。所以我得先把我的聲音欠采樣,然后再濾波,然后再插值。程序如下。

[k,Fs,bits]=wavread('mywav.wav');
k=k(:,1);
y_temp=k(1:90000);

dfactor=3;
y=dECimate(y_temp,dfactor);
[b,a] = butter(10,70/(Fs/(dfactor*2)),'high');
y=filter(b,a,y);
y=interp(y,dfactor);

sigLength=length(y);
Y = fft(y,sigLength);
Pyy = Y.* conj(Y) / sigLength;
halflength=floor(sigLength/2);
f=Fs*(0:halflength)/sigLength;
figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');

sigLength=length(y_temp);
Y = fft(y_temp,sigLength);
Pyy = Y.* conj(Y) / sigLength;
halflength=floor(sigLength/2);
f=Fs*(0:halflength)/sigLength;
figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');

t=(0:sigLength-1)/Fs;
figure;plot(t,y,t,y_temp);xlabel('Time(s)');

wavplay(y,Fs);
wavplay(y_temp,Fs);

5)回放:使用wavplay函數
wavplay(y,Fs);

本文章內容 來源于 百度知道 ,如侵犯原作者權益請及時聯系 2850832025@qq.com, 本網收到通知將在第一時間內刪除本篇內容

?
標簽: 聲音 matlab
反對 0舉報 0 收藏 0 打賞 0評論 0
?
更多>同類銷售文章
推薦產品
掃碼加銷售專員微信

氣體檢測儀

????13241854077
網站首頁 ?|? 關于我們  |  聯系方式  |  使用協議  |  版權隱私  |  網站地圖 ?|? 排名推廣 ?|? 廣告服務 ?|? 積分換禮 ?|? 網站留言 ?|? RSS訂閱 ?|? 違規舉報 ?|? 京ICP備10020141號-3
?