Matlab產生隨機序列,並取樣

2022-04-10 02:38:30 字數 1258 閱讀 3763

clear all;

m = 10; % bit數 符號數

n = 100; % 總取樣數

l = n/m; % 每bit取樣數

emp_rate = 0.5; % 占空比

imp = round(rand(1,m)); % round(...):四捨五入; rand(m,n):產生(0,1)之間的均勻分布的隨機數,返回m*n的矩陣

% imp = randi([0,1],1,m); % randi([imin,imax],m,n) 在[imin,imax]生成隨機整數,返回m*n的矩陣

single = zeros(1,n);

for ii = 1:l*emp_rate

for jj = 1:m

single(ii+(jj-1)*10) = imp(jj);

endendsubplot(211);stem(imp);

subplot(212);stem(single);

或者

clear all;

m = 10; % bit數 符號數

n = 100; % 總取樣數

l = n/m; % 每bit取樣數

w = 4; % w 進製的符號

imp = randi([0,w-1],1,m);

single = zeros(1,n);

for ii = 1:m

for jj = (ii-1)*l+1 : ii*l

single(jj) = imp(ii);

end

endsubplot(211);stem(imp);

subplot(212);stem(single)

或者

clear all;

m = 10; % bit數 符號數

n = 100; % 總取樣數

l = n/m; % 每bit取樣數

w = 4; % w 進製的符號

imp = randi([0,w-1],1,m);

single = rectpulse(imp,l); % 把 imp 中的每個元素變成 l 個相同的元素,返回:若imp為行(列)向量,則返回 length(imp)*l 的行(列)向量。若[m,n]=size(imp);則大小為[m*l,n]的矩陣。

subplot(211);stem(imp);

subplot(212);stem(single)

emp_rate=input('輸入占空比:');

隨機序列產生演算法

題目 已經提供乙個int rand int n 的隨機數生成函式用來生成 0,n 的隨機數,求編寫演算法生成1至n的隨機序列,要求該序列包含不重複的1 n數字。include include include using namespace std 首先,建立乙個長度為n的陣列array,初始值是0 ...

matlab產生隨機數

matlab中生成隨機數主要有三個函式 rand,randn,randi 1,rand 生成均勻分布的偽隨機數。分布在 0 1 之間 主要語法 rand m,n 生成m行n列的均勻分布的偽隨機數 rand m,n,double 生成指定精度的均勻分布的偽隨機數,引數還可以是 single rand ...

基於matlab的隨機取樣計算法

對於線性規劃而言,有著成熟且有效的方法,而對於非線性整數規劃而言,沒有通解,儘管限制變數為整數而增加了難度,然而整數解為有限個,於是可以用列舉法求解方案。當然在乙個自變數維度很大和取值範圍很寬的情況下,企圖用窮舉法計算最優值是不現實的,但是根據概率理論可知,完全可以得出乙份滿意解。下面是matlab...