MATLAB語音訊號加噪去噪

2021-03-19 18:34:02 字數 2732 閱讀 1678

1樓:匿名使用者

fs = 44100; %取樣率

f0 = 5000;   %訊號頻率

n = 1024;

%巴特沃斯低通濾波器

版wp = 10000/fs;

ws = 15000/fs;

rp = 3;

rs = 60;

[n,wn] = buttord(wp,ws,rp,rs);

[b,a] = butter(n,wn);

figure;

freqz(b,a,n);

title('巴特沃斯低通濾波器特性');

tp = n/fs; %取樣時長

t = 0:1/fs:tp;

y = sin(2*pi*f0*t);  %訊號yn = y + rand(1,n+1); %加噪聲權%顯示10個週期

t2 = 0:1/fs:10/f0;

l = length(t2);

figure;

subplot(311);plot(t2,y(1:l));title('訊號');ylim([-2,2]);

subplot(312);plot(t2,yn(1:l));title('訊號加噪聲');ylim([-2,2]);

%濾波yf = filter(b,a,yn);

subplot(313);plot(t2,yf(1:l));title('濾波後訊號');ylim([-2,2]);

matlab中給訊號加入白噪聲,如何利用傅立葉變換去噪

2樓:我是舞三

總體思路:設定篩選條件,將陣列中符合條件的元素篩選出來(可以篩選出元素值也可以篩選出元素對應的下標),然後將元素值賦值給另外一個陣列的元素

參考**:

clcclear all

close all

x = randi(10, 1, 5); % 原始資料

disp('x=');

disp(x);

y1 = -1 * ones(1, length(x)); % 儲存篩選出的結果,並初始化成不可能出現的結果

%-- 篩選符合條件的元素下標,並將對應元素存到y1 --%

ix = find(x>=3); % 例如,篩選出原始資料中大於3的元素的下標

if(isempty(ix))

disp('x的元素均不符合條件');

else

y1(1:length(ix)) = x(ix); % 將符合條件的元素存到y1中

y1( find(y1==-1) ) = ; % 剩餘元素刪除

disp('y1=');

disp(y1);

y2 = -1 * ones(1, length(x)); % 儲存篩選出的結果,並初始化成不可能出現的結果

%-- 篩選符合條件的元素值,並存入y2 --%

for i=1:length(x)

if(x(i)>=3) % 逐個檢測x的元素是否符合條件,把符合條件的元素值賦值給y2

y2(i) = x(i);

endend

y2( find(y2==-1) ) = ; % 剩餘元素刪除

disp('y2=');

disp(y2);

%----------------------------------%

輸出結果

x=7 1 9 10 7

y1=7 9 10 7

y2=7 9 10 7

3樓:我想呆會兒

小波的閾值去噪效果比較好。可以呼叫wden函式,比較簡單

本題中前面改一下比較直觀,可以把原始訊號輸出來subplot(2,2,1)後面去噪訊號subplot(2,2,2)頻譜圖subplot(2,2,3)後面可加程式

xd=wden(x,'rigrsure','s','sln',5,'sym8');

subplot(2,2,4);plot(xd);

title('去噪訊號');

err=x-xd;

函式wden的呼叫格式有以下兩種:

(1)[xd,cxd,lxd]=wden(x,tptr,sorh,scal,n,'wname')

(2)[xd,cxd,lxd]=wden(c,l,tptr,sorh,scal,n,'wname')

函式wden用於一維訊號的自動消噪。x為原始訊號,[c,l]為訊號的小波分解,n為小波分解的層數。

thr為閾值選擇規則:

*tptr='rigrsure',自適應閾值選擇使用stein的無偏風險估計原理。

*tptr='heursure',使用啟發式閾值選擇。

*tptr='sqtwolog',閾值等於sqrt(2*log(length(x))).

*tptr='minimaxi',用極大極小原理選擇閾值。

sorh是軟閾值或硬閾值的選擇(分別對應's'和'h')。

scal指所使用的閾值是否需要重新調整,包含下面三種:

*scal='one' 不調整;

*scal='sln' 根據第一層的係數進行噪聲層的估計來調整閾值。

*scal='mln' 根據不同的噪聲估計來調整閾值。

xd為消噪後的訊號,[cxd,lxd]為消噪後訊號的小波分解結構。

4樓:匿名使用者

山科同跟張老師上小波分析的路過

語音訊號的分幀加窗的matlab實現

function seg segment signal,w,sp,window if nargin 3 sp 4 endif nargin 2 w 256 endif nargin 4 window hamming w endwindow window make it a column vector...

ps4守望先鋒怎麼退出語音訊道

1 開啟語音設定頁面。2 把隊伍語音聊天開啟設定關閉即可。擴充套件資料 英雄設定 1 輸出 利用多種多樣的工具 能力和技巧,在戰鬥中尋找 攻擊並消滅敵人。2 重灌 吸收傷害以及衝散對方的防禦,在衝擊抱團的敵人或是突擊咽喉要道時有著重要的作用,肩負著率領團隊攻擊的重任。3 支援 作為團隊存活的關鍵保護...

膝上型電腦錄音時(語音時)顯示音訊裝置未安裝怎麼辦

原因 不是沒有安裝,而是需要重新啟用才能使用。1 首先滑鼠右鍵單擊桌面右下角的喇叭圖示,選擇開啟 聲音 選項。2 然後選擇開啟錄製介面。3 在 選擇以下錄製裝置來修改設定下邊的白色的視窗內,點選滑鼠右鍵選擇 顯示禁用裝置 4 此時可以看到被禁用的麥克風裝置 5 在已停用的麥克風裝置上,點選滑鼠右鍵,...