如何用matlab濾掉訊號中的小幅值白噪聲

時間 2022-02-06 20:25:12

1樓:楊好巨蟹座

1. wgn:產生高斯白噪聲

y = wgn(m,n,p) 產生一個m行n列的高斯白噪聲的矩陣,p以dbw為單位指定輸出噪聲的強度。

y = wgn(m,n,p,imp) 以歐姆(ohm)為單位指定負載阻抗。

y = wgn(m,n,p,imp,state) 重置randn的狀態。

在數值變數後還可附加一些標誌性引數:

y = wgn(…,powertype) 指定p的單位。powertype可以是'dbw', 'dbm'或'linear'。線性強度(linear power)以瓦特(watt)為單位。

y = wgn(…,outputtype) 指定輸出型別。outputtype可以是'real'或'complex'。

2. awgn:在某一訊號中加入高斯白噪聲

y = awgn(x,snr) 在訊號x中加入高斯白噪聲。訊雜比snr以db為單位。x的強度假定為0dbw。如果x是複數,就加入復噪聲。

y = awgn(x,snr,sigpower) 如果sigpower是數值,則其代表以dbw為單位的訊號強度;如果sigpower為'measured',則函式將在加入噪聲之前測定訊號強度。

y = awgn(x,snr,sigpower,state) 重置randn的狀態。

y = awgn(…,powertype) 指定snr和sigpower的單位。powertype可以是'db'或'linear'。如果powertype是'db',那麼snr以db為單位,而sigpower以dbw為單位。

如果powertype是'linear',那麼snr作為比值來度量,而sigpower以瓦特為單位

2樓:

方案一 滑動平均

方案二 小波去噪

如何在matlab裡面向訊號裡面加入白噪聲?

3樓:go風影

y=awgn(x,snr),加性高斯白du噪函式,x原訊號,zhisnr是訊雜比,不知道你dao這個2%是能量

專還是幅屬值,如果是能量的話,snr=10*log(100/2);如果是幅值,snr=20*log(100/2);

**如下:

clc; clear ;

t=0:0.01:1;

y1=(pi/2)*cos(2*pi*t)+(pi/64)*cos(pi*t/8+pi/3);

snr=10*log(100/2); % 2%是能量比x=awgn(y1,snr);

subplot(211), plot(t,y1);

title('原訊號');

% 加入噪聲後有毛刺,但2%的噪聲有點小,毛刺不明顯。

subplot(212), plot(t,x);

title('加高斯白噪訊號');

4樓:匿名使用者

在matlab中無論是wgn還是baiawgn函式,實質du都是由randn函式產生

zhi的噪聲。即,wgn函式中調

dao用了randn函式,而版awgn函式中呼叫了wgn函式。

權根據awgn的實現**可以知道「向已知訊號新增某個訊雜比(snr)的高斯白噪聲」,

即:awgn(x,snr,』measured』,'linear』),命令的作用是對原訊號x新增訊雜比(比值)為snr的噪聲,在新增之前先估計訊號x的強度。

直接對原始訊號新增噪聲:

y=x+rand(length(x),1)y=x+randn(length(x),1))

5樓:匿名使用者

t=0:0.001:1;

y1=(pi/2)*cos(2*pi*t)+(pi/64)*cos(pi*t/8+pi/3);

temp=y1+0.02*y1.*rand(size(y1));

plot(t,y1,t,temp,'r')

6樓:日向淳正

l=length(y1);

noise=rand(1,l); %生成跟你的訊號一樣長度的白噪聲.

y=y1+noise; %加入白噪聲

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

7樓:我是舞三

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

參考**:

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

8樓:我想呆會兒

小波的閾值去噪效果比較好。可以呼叫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]為消噪後訊號的小波分解結構。

9樓:匿名使用者

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

方波訊號與正弦訊號混有白噪聲如何用matlab濾波

10樓:anyway中國

方波訊號含有豐富的諧波,白噪聲理論上包含了各種頻率成分的諧波,但是,實際工程應用中,主要體現為較高頻率的諧波,疊加了白噪聲後,難以通過濾波還原。

正弦訊號疊加白噪聲之後,採用帶通濾波器即可較好的還原。

11樓:匿名使用者

補充一點,方波加了白噪聲後,可以用整形,即削波的方法去除白噪聲。不過用matlab寫程式我就沒寫過。

matlab濾波程式是現成的,但你沒把方波和正弦波引數貼上來。沒法給你。

給個正弦波,加個白噪聲,通過matlab**把噪聲濾掉。這句話怎麼理解,具體怎麼操作? 10

怎樣用matlab產生白噪聲訊號?

12樓:匿名使用者

1. wgn:產生高斯白噪聲

y = wgn(m,n,p) 產生一個m行n列的高斯白噪聲的矩陣,p以dbw為單位指定輸出噪聲的強度。

y = wgn(m,n,p,imp) 以歐姆(ohm)為單位指定負載阻抗。

y = wgn(m,n,p,imp,state) 重置randn的狀態。

在數值變數後還可附加一些標誌性引數:

y = wgn(…,powertype) 指定p的單位。powertype可以是'dbw', 'dbm'或'linear'。線性強度(linear power)以瓦特(watt)為單位。

y = wgn(…,outputtype) 指定輸出型別。outputtype可以是'real'或'complex'。

2. awgn:在某一訊號中加入高斯白噪聲

y = awgn(x,snr) 在訊號x中加入高斯白噪聲。訊雜比snr以db為單位。x的強度假定為0dbw。如果x是複數,就加入復噪聲。

y = awgn(x,snr,sigpower) 如果sigpower是數值,則其代表以dbw為單位的訊號強度;如果sigpower為'measured',則函式將在加入噪聲之前測定訊號強度。

y = awgn(x,snr,sigpower,state) 重置randn的狀態。

y = awgn(…,powertype) 指定snr和sigpower的單位。powertype可以是'db'或'linear'。如果powertype是'db',那麼snr以db為單位,而sigpower以dbw為單位。

如果powertype是'linear',那麼snr作為比值來度量,而sigpower以瓦特為單位

13樓:匿名使用者

xi=sqrt(0.1)*randn(100,1);

關於高斯白噪聲的濾除(matlab)

14樓:匿名使用者

所bai謂高斯白噪聲(white gaussian noise)中的高斯是du指概率分佈是正

zhi態函式,而白噪聲dao是版

指它的二階矩不相權

關,一階矩為常數,是指先後訊號在時間上的相關性。這是考查一個訊號的兩個不同方面的問題。

高斯白噪聲的頻譜是佈滿整個頻域的, 一般不好直接濾除, 如果已知訊號頻點, 可以設一個帶通濾波器來解決一下。

另外如果知道是白高斯噪聲,用自適應噪聲抵消來去噪也可以考慮。

matlab中如何對正弦訊號加噪

天雲一號 可以將正弦訊號在每個時刻的值加上噪聲即可實現加噪的目的。把白噪聲疊加到訊號上去 function y,noise noisegen x,snr noisegen add white gaussian noise to a signal.y,noise noisegen x,snr adds...

matlab如何求訊號的頻率特性

fft處理之後取imag就是相頻特性,abs就是幅頻特性 參考如下 fs 10000 t 0 1 fs 0.1 x sin 2 pi 50 t 0.5 cos 2 pi 200 t 0.5 sin 2 pi 270 t 幅頻特性圖 plot linspace 0,pi,1024 abs fft x,...

如何用matlab的plot命令畫出ysin1的圖形

墨汁諾 x 1 0.02 1 plot x,sin 1.x 語句中的點代表對於元素相除,除0並不是錯誤,僅僅是內部資料溢位而已,可以不用管。x 0 0.1 10 y sin x plot x,y 例如 根據已知函式可知,在x 0處有間斷點,所以繪製該函式圖形,應避開該間斷點。圖形實現 如下 x 10...