用matlab如何實現正弦曲線和高斯白噪聲的疊加,並

2021-03-10 15:58:52 字數 5129 閱讀 7147

1樓:轉基因牛

t = 1:100 生成bai100個基準點dus1 = sin(2*pi*30*t);

s2 = sin(2*pi*60*t);

s3 = sin(2*pi*90*t);

%生成3組不同頻率

的正zhi

弦曲線dao

s = s1+s2+s3; 正弦曲線疊加

s = awgn(s,50);

加上版不同訊雜比的高斯白噪聲權

2樓:匿名使用者

上面那個程式

復不對~(信噪制

比未知的啊)

我不知bai道你三個正du弦的頻率,還有,你這100個點zhi是一個週期內的dao麼?下面這些點不是一個週期的.

看我的:

n1=randn(1,100);%產生高斯白噪聲,這裡預設為單位訊雜比

t=1:1:100;%100個時間點

x1=sin(t);

x2=sin(2.*t);

x3=sin(3.*t);%三個正弦

y=x1+x2+x3+n1;

plot(t,y);

你試試行不行,因為我是在家編的,沒有除錯

3樓:在山一方冬日陽

n1=randn(1,100);%產生高斯白噪聲,這裡預設為單位訊雜比

t=1:1:100;%100個時間點

for i=1:3

xi=sin(i.*t);

plot(t,xi);

hold on %在原有圖形上繼續畫,不刪專除上一次的點

屬。end

hold on

y=x1+x2+x3+n1;

plot(t,y);

我試過了,能出圖 就是不知道是不是你想要的,你也把它複製到m-file裡去執行一下吧。

4樓:

用hold on和hold off把這些曲線疊加起來就可以了

5樓:有空飄過的

f1=1;

f2=2;

f3=3;

snr=10; %snr 用db表示

t=1:100;

y=sin(f1*t)+sin(f2*t)+sin(f3*t);

y=awgn(y, snr);

樓下的說我不對,用過awgn()函式專嗎?屬

6樓:愆愛★劉芳

學過,不過現在看見就頭疼。哈哈!

請問如何在matlab裡在一個訊號曲線上加上1到3個高斯白噪聲?謝謝

7樓:匿名使用者

matlab中產生高斯白

噪聲的兩個函式

matlab中產生高斯白噪聲非常方便,可以直接應用兩個函式,一個是wgn,另一個是awgn。wgn用於產生高斯白噪聲,awgn則用於在某一訊號中加入高斯白噪聲。

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'或'***plex'。

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以瓦特為單位。

註釋 1. 分貝(decibel, db):分貝(db)是表示相對功率或幅度電平的標準單位,換句話說,就是我們用來表示兩個能量之間的差別的一種表示單位,它不是一個絕對單位。

例如,電子系統中將電壓、電流、功率等物理量的強弱通稱為電平,電平的單位通常就以分貝表示,即事先取一個電壓或電流作為參考值(0db),用待表示的量與參考值之比取對數,再乘以20作為電平的分貝數(功率的電平值改乘10)。

2. 分貝瓦(dbw, db watt):指以1w的輸出功率為基準時,用分貝來測量的功率放大器的功率值。

3. dbm (db-milliwatt):即與1milliwatt(毫瓦)作比較得出的數字。

0 dbm = 1 mw

10 dbm = 10 mw

20 dbm = 100 mw

也可直接用randn函式產生高斯分佈序列,例如:

y=randn(1,2500);

y=y/std(y);

y=y-mean(y);

a=0.0128;

b=sqrt(0.9596);

y=a+b*y;

就得到了 n ( 0.0128, 0.9596 ) 的高斯分佈序列。

怎樣用matlab給一個覆訊號疊加一個副高斯白噪聲訊號?

8樓:砂粒

用matlab給一個覆訊號疊加一個副高斯白噪聲訊號的方法:

matlab中產生高斯白噪聲非常方便,可以直接應用兩個函式,一個是wgn,另一個是awgn。wgn用於產生高斯白噪聲,awgn則用於在某一訊號中加入高斯白噪聲。

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'或'***plex'。

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以瓦特為單位。

9樓:匿名使用者

有個wgn函式,可以產生白高斯噪聲。。。。

另外,rand是均勻分佈,不是正態分佈。。。。

10樓:匿名使用者

給你個郵箱 yinxiaoming1975@126.***

這是我們尹教授的郵箱,他可能會幫你解決問題的!

如何用matlab產生高斯白噪聲,並且畫出圖形?

11樓:

t = 0:.1:10;

x = sawtooth(t); % create sawtooth signal.

y = awgn(x,10,'measured'); % add white gaussian noise.

plot(t,x,t,y) % plot both signals.

legend('original signal','signal with awgn');

12樓:我是舞三

matlab 程式的檔案**是以.m檔案的形式呈現的。將matlab**編寫進.m檔案內然後執行即可。

例子:建立一個 helloworld.m

檔案內包括內容如下:

fprintf('hello world!');

使用快捷鍵f5直接執行,然後可以在控制檯下看到列印的:

hello world!

13樓:圭唱張慧月

一般加入白噪聲,只得是加入高斯白噪聲

利用randn產生高斯分佈噪聲加到原來的影象上就可以了假設你原來的影象的資料存在矩陣變數a中

那麼noise=a*randn(size(a));

其中a是需要加噪聲的方差值,a的取值確定噪聲的幅度大小一般比影象訊號幅度

matlab怎麼把高斯白噪聲加到正弦訊號上

14樓:我行我素

可這樣bai寫:

fs = 400;%取樣

du頻率400

t1 = 0:999;%取1000個取樣點t = t1/fs;

i = sin(2*pi*t);%計算zhi正弦函dao數

figure(1);%影象回單獨一個視窗答plot(t,i);%正弦函式影象

tlen=length(t);%%

for i=1:tlen

noise_i(i)=gngauss();

endinoise=i+noise_i;

figure(2);

plot(t,inoise);

如何用matlab畫出交流正弦波訊號

fs 3200 取樣頻率設定 為3200hzt 0 1 fs 0.32 1 fs 時間定為16個週期x sin 100 pi t pi 6 x為正弦訊號波形,頻率為基頻,初相為pi 6 plot t,x 繪製x的波形。這裡面有兩種,一個副半周翻上去的,一個副半周為零的 clear all clc c...

如何用matlab實現morlet楔變換資料為

前4圖沒啥難度吧,後兩張是最大尺度是4滴cwt,其縱座標是尺度,其實還可以做出比這更好滴時頻圖,縱座標是頻率值。不知你要問啥,如果懶得做,想要現成 那就算了吧,俺划不來,太麻煩,沒意思,哇咔咔!不就是matlab 演示文件裡面的嗎?這東西沒啥水平。連結給你吧,人家直接有 的,你改下引數就好了。網頁連...

用matlab編寫實現fft的程式

function y myditfft x 本程式對輸入序列實現dit fft基2演算法,點數取大於等於長度的2的冪次 myditfft.c m nextpow2 x 求的x長度對應的2的最低冪次m n 2 m if length x x x,zeros 1,n length x 若的長度不是2的冪...