matlab給語音頻號新增雜訊

2021-10-10 16:33:36 字數 749 閱讀 6118

我們有時候做演算法分析,需要自己給訊號新增雜訊來驗證自己演算法的魯棒性。

以語音頻號為例,給訊號新增指定訊雜比的高斯白雜訊程式如下:

data=xx(10000:26000); %讀入資料

%新增雜訊

snr = 10; %設定訊雜比,單位db

%輸出引數data是帶噪語音,noise為加在訊號上的白雜訊

[data,noise] = gnoisegen(data,snr);

新增雜訊的函式gnoisegen:

function [y,noise] = gnoisegen(x,snr)

noise=randn(size(x)); % 用randn函式產生高斯白雜訊

nx=length(x); % 求出訊號x長

signal_power = 1/nx*sum(x.*x); % 求出訊號的平均能量

noise_power=1/nx*sum(noise.*noise);% 求出雜訊的能量

noise_variance = signal_power / ( 10^(snr/10) ); % 計算出雜訊設定的方差值

noise=sqrt(noise_variance/noise_power)*noise; % 按雜訊的平均能量構成相應的白雜訊

y=x+noise; % 合成帶噪語音

MATLAB實現語音頻號分幀

為了分析讀入資料,通常進行分幀處理。在分幀中,往往設定在相鄰兩幀之間有一部分重疊,如下圖所示 設語音檔案的資料存放在y中,y的長度為n,取樣頻率為fs,取每幀長為wlen,後一幀對前一幀的位移量用inc表示,相鄰兩幀之間的重疊部分overlap wlen inc。f enframe x,win,in...

MATLAB實現語音頻號短時傅利葉變換

function d stftms x,win,nfft,inc iflength win 1 判斷有否設定窗函式 wlen win 否,設幀長 win hanning wlen 設定窗函式 else wlen length win 設幀長 endx x win win 把x和win都變為列陣列 s...

語音頻號處理

濁音的聲帶振動基本頻率 fundamental frequency 稱為基音頻率。濁音的基音頻率 pitch 語音生成系統和語音感知系統 語音頻號生成的數學模型 語音頻號的特性分析 語音頻號處理是以語音語言學和數字訊號處理為基礎的綜合性學科,是用數字訊號處理技術對語音頻號進行處理的一門學科。說話人識...