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...