1樓:天雲一號
可以將正弦訊號在每個時刻的值加上噪聲即可實現加噪的目的。
把白噪聲疊加到訊號上去:
function [y,noise] = noisegen(x,snr)
% noisegen add white gaussian noise to a signal.
% [y, noise] = noisegen(x,snr) adds white gaussian noise to x. the snr is in db. noise=randn(size(x));
noise=noise-mean(noise);
signal_power = 1/length(x)*sum(x.*x);
noise_variance = signal_power / ( 10^(snr/10) ); noise=sqrt(noise_variance)/std(noise)*noise; y=x+noise;
其中x是純訊號,snr是要求的訊雜比,y是帶噪訊號,noise是疊加在訊號上的噪聲。
對於上面的通用程式,如果x是正弦訊號,snr是要求的訊雜比,那麼輸出的y就是正弦訊號加噪後的訊號,noise就是所新增的噪聲訊號。
2樓:匿名使用者
matlab有自帶的噪聲生成函式,具體的不記得了,你可以用help noise命令檢視。
3樓:匿名使用者
fs=20000; %參樣頻率
f=50; %訊號頻率
ts=1/fs;%參樣時間
t=0:ts:4095*ts;
d=9.1; %噪聲強度
s=sin(2*pi*f*t); %訊號
x=s+sqrt(2*d)*randn(size(t)); %噪聲figure(1)
plot(t,s);
figure(2)
plot(t,x);
或者:fs=20000; %參樣頻率
f=50; %訊號頻率
ts=1/fs;%參樣時間
t=0:ts:4095*ts;
d=9.1; %噪聲強度
s=sin(2*pi*f*t); %訊號
x = awgn(s,-9);
figure(1)
plot(t,s);
figure(2)
plot(t,x);
matlab中如何在一個正弦訊號上人為新增一個已知的噪聲訊號 5
4樓:雪v歌
可以將正弦訊號在每個時刻的值加上噪聲即可實現加噪的目的。
把白噪聲疊加到訊號上去:
function [y,noise] = noisegen(x,snr)
% noisegen add white gaussian noise to a signal.
% [y, noise] = noisegen(x,snr) adds white gaussian noise to x. the snr is in db. noise=randn(size(x));
noise=noise-mean(noise);
signal_power = 1/length(x)*sum(x.*x);
noise_variance = signal_power / ( 10^(snr/10) ); noise=sqrt(noise_variance)/std(noise)*noise; y=x+noise;
其中x是純訊號,snr是要求的訊雜比,y是帶噪訊號,noise是疊加在訊號上的噪聲。
對於上面的通用程式,如果x是正弦訊號,snr是要求的訊雜比,那麼輸出的y就是正弦訊號加噪後的訊號,noise就是所新增的噪聲訊號。
5樓:我行我素
把噪聲訊號和正弦訊號發過來,我給你加。
matlab中,給一個正弦訊號加上一個均值為0,方差為1的高斯白噪聲訊號,想用awgn函式,怎麼做?
6樓:匿名使用者
可以使用如下的函式實現
r = normrnd(mu,sigma) (生成均值為 mu,標準差為 sigma 的正態隨機數
)r = normrnd(mu,sigma,m) (生成 1× m 個正態隨機數)
r = normrnd(mu,sigma,m,n) (生成 m 行 n 列的 m × n 個正態隨機數)
假設輸入訊號為x,則給x加上一個均值為0,方差為1的高斯白噪聲訊號的方法為
y=x+normrnd(0,1);
7樓:手機使用者
對snr沒有要求的話就把它設成一個隨機數吧,但是什麼情況下你不關心snr呢
matlab對訊號加高斯白噪聲的方法,比如對一個正弦訊號,加入10db的噪聲,是噪聲,不是訊雜比
8樓:我的小名叫仙女
你這個是訊號波形資料嗎? 加噪聲一般是對模擬訊號加噪聲matlab有一個函式很方便加入高斯白噪聲x是訊號序列, y = awgn(x,snr) 在訊號x中加入高斯白噪聲,訊雜比snr以db為單位。x的強度假定為0dbw。
比如:x = sqrt(2)*sin(0:pi/8:6*pi);
y = awgn(x,10);
plot(x,'b');hold on; plot(y,'r')
9樓:匿名使用者
先計算訊號的功率譜密度,然後和10db噪聲一比,就可以求出訊雜比,使用matlab中的函式了
matlab中如何給我的一段訊號加高斯白噪聲
10樓:匿名使用者
你這個是訊號波形資料嗎? 加噪聲一般是對模擬訊號加噪聲matlab有一個函式很方便加入高斯白噪聲x是訊號序列, y = awgn(x,snr) 在訊號x中加入高斯白噪聲,訊雜比snr以db為單位。x的強度假定為0dbw。
比如:x = sqrt(2)*sin(0:pi/8:6*pi);
y = awgn(x,10);
plot(x,'b');hold on; plot(y,'r')
如何在matlab裡面向訊號裡面加入白噪聲?
11樓: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('加高斯白噪訊號');
12樓:匿名使用者
在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))
13樓:匿名使用者
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')
14樓:日向淳正
l=length(y1);
noise=rand(1,l); %生成跟你的訊號一樣長度的白噪聲.
y=y1+noise; %加入白噪聲
問下再matlab中如何給一個隨機訊號加入噪聲
15樓:天雲一號
直接加上一個rand()就行了啊,如a是訊號資料,則加噪聲後的資料為b = a + rand();
當然rand()行列數要與a對應
用MATLAB產生正弦序列,訊號頻率200赫茲,訊號長度1S,取樣率1千赫茲
應該是指訊號的物理頻率,該訊號由3種頻率成分的正弦訊號組成。一種簡單的訊號生成方式如下 f1 100 訊號頻率hz f2 150 訊號頻率hz f3 200 訊號頻率hz fs 1000 取樣頻率hz n 20 取樣點數 t 0 n 1 fs 取樣時間s x1 sin 2 pi f1 t 訊號取樣值...
如何用matlab濾掉訊號中的小幅值白噪聲
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 w...
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,...