Matlab生成各種偽隨機訊號 idinput指令

2021-07-24 04:51:23 字數 2988 閱讀 6178

只要是在訊號系統這條道上混過的童鞋都知道,衝激訊號是測試系統的最理想訊號。因為時域的卷積相當於頻域的乘積,而衝擊訊號的頻域擁有最廣泛的頻譜,可以「暴露」系統最完整的資訊,那麼問題來了?這麼好的東西,你咋就不用呢?傻~

還真不是這樣,能讓我們計算機產生乙個理想的衝激訊號那是多難的事啊!!!想象狄拉克,就被難為人了......那咱辦呢?這時候一大群數學家來了.....麼子事,衝激訊號不能直接產生,我們可以合成啊!!!這裡要提醒乙個很重要的的事:白雜訊的自相關恰恰最佳逼近衝激訊號!

所以在我們工程研究上,白雜訊訊號才是最理想的輸入訊號,這也能解釋為什麼好多研究中都採用白雜訊作為測試。本文的撰寫具有很重要的意義。

u = idinput(n,type,band,levels) 

[u,freqs] = idinput(n,』sine』,band,levels,sinedata) 

n:產生的序列的長度,如果n=[n nu],則nu為輸入的通道數,如果n=[p nu m],則nu指定通道數,p為週期,m*p為訊號長度。預設情況下,nu=1,m=1,即乙個通道,乙個週期。 

type

:指定產生訊號的型別,可選型別如下 :

'rgs'高斯隨機訊號;'

rbs'(預設)二值隨機訊號 ;'

prbs'二值偽隨機訊號(m序列) 

'sine'正弦訊號和 。

band

:指定訊號的頻率成分。對於'rgs'、'rbs'、'sine',band = [wlow, whigh]指定通帶的範圍,如果是白雜訊訊號,則band=[0, 1],這也是預設值。指定非預設值時,相當於有色雜訊。 

對於'prbs',band=[0, b],b表示訊號在乙個間隔1/b(時鐘週期)內為恆值,預設為[0, 1]。 

levels

:指定輸入的水平。levels=[minu, maxu],在type='rbs'、'prbs'、'sine'時,表示訊號u的值總是在minu和maxu之間。對於type='rgs',minu指定訊號的均值減標準差,maxu指定訊號的均值加標準差,對於0均值、標準差為1的高斯白雜訊訊號,則levels=[-1, 1],這也是預設值。 

clc clear all close all 

% 高斯隨機訊號

u = idinput(1000, 'rgs');

subplot(1,3,1)

stairs(u)

title('高斯隨機訊號')

subplot(1,3,2)

hist(u, -4:4)

title('高斯隨機訊號的分布')

c = xcorr(u, coeff); % 自相關函式

subplot(1,3,3)

plot(c)

title('相關函式')

3.2 生成正弦偽隨機訊號

clc ;clear all ;close all 

% 高斯隨機訊號

u = idinput(100, 'sine');

subplot(1,3,1)

stairs(u)

title('正弦隨機訊號')

subplot(1,3,2)

hist(u, -4:4)

title('正弦隨機訊號的分布')

c = xcorr(u, 'coeff'); % 自相關函式

subplot(1,3,3)

plot(c)

title('相關函式')

% 高斯隨機訊號

u = idinput(200, 'rbs');

subplot(1,2,1)

stairs(u)

title('二值隨機訊號')

c = xcorr(u, 'coeff'); % 自相關函式

subplot(1,2,2)

plot(c)

title('相關函式')

n = 10; % 階次

p = 2^n -1; % 迴圈週期

ms = idinput(p, 'prbs');

subplot(1,2,1)

stairs(ms)

title('m序列')

%ylim([-1.5 1.5])

c = xcorr(ms, 'coeff'); % 自相關函式

subplot(1,2,2)

plot(c)

title('相關函式')

% 自相關函式接近於δ函式

進行譜密度深入分析:

譜分析表明,m序列含有直流成分,將造成對辨識系統的「淨擾動」,這通常不是所希望的。而逆m序列將克服這一缺點,是一種比m序列更為理想的偽隨機碼序列。

matlab隨機訊號處理

matlab中rand和randn是產生隨機數的命令,x rand 1,n 產生 0,1 區間均勻分布的長度為n的隨機訊號,x randn 1,n 產生長度為n且具有零均值和單位方差的正態分佈的隨機訊號。matlab中產生偽隨機數需要種子,把不同的種子用於不同的隨機數生成器產生不同的偽隨機數。bet...

matlab生成隨機矩陣

一 matlab 裡和隨機數有關的函式 1 rand 產生均值為 0.5 幅度在 0 1之間的偽隨機數 2 randn 產生均值為 0 方差為 1的高斯白雜訊 3 randperm n 產生1 到n的均勻分布隨機序列 4 normrnd a,b,c,d 產生均值為 a 方差為 b大小為 cxd的隨機...

MATLAB生成隨機點

clc,close all,clear all sc 1.3 定義縮放係數 xy tra 3 定義標籤平移距離 r 400 定義圓的半徑 num pt 5000 定義資料點個數 randr r rand num pt,1 生成隨機點 phi 2 pi 0 rand num pt,1 生成隨機角度 x...