![编写MATLAB程序。能够将x[n]以N = 8为周期进行周期延拓得到一个周期为N =8的周期序列y[n],第1张 编写MATLAB程序。能够将x[n]以N = 8为周期进行周期延拓得到一个周期为N =8的周期序列y[n],第1张](/aiimages/%E7%BC%96%E5%86%99MATLAB%E7%A8%8B%E5%BA%8F%E3%80%82%E8%83%BD%E5%A4%9F%E5%B0%86x%5Bn%5D%E4%BB%A5N+%3D+8%E4%B8%BA%E5%91%A8%E6%9C%9F%E8%BF%9B%E8%A1%8C%E5%91%A8%E6%9C%9F%E5%BB%B6%E6%8B%93%E5%BE%97%E5%88%B0%E4%B8%80%E4%B8%AA%E5%91%A8%E6%9C%9F%E4%B8%BAN+%3D8%E7%9A%84%E5%91%A8%E6%9C%9F%E5%BA%8F%E5%88%97y%5Bn%5D.png)
>> N=24M=8
n=0:N-1
x1=(0.8).^nx2=[(n>=0)&(n<M)]
xn=x1.*x2
xc=xn(mod(n,8)+1)%%%8为周期延拓粗裤戚的周期,即为N=8,mod求岩陵余运算
figure,stem(n,xn,'纯含.')
xlabel('n')ylabel('xn')
axis([0,length(n),0,1])
figure,stem(n,xc,'.')
xlabel('n')ylabel('xc')
axis([0,length(n),0,1])
先提供一个半成品,供题主参考。稍后有时间再完善下。
后面有些问题需要题主确认,如果还发现其它问题也欢迎提出来一并解决。
clear A% 各小图片的特征,1表示有颜色搭念稿,0表示空白
A(1).Patten = [1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0]
A(2).Patten = [1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0]
A(3).Patten = [1 0 0 1 1 0 0 1 1 0 1 1]
A(4).Patten = [1 0 0 1 1 0 0 1 0 0 1 1]
% 大图划分为M*N个单元小格
M = 30/2
N = 30/2
% 允许重叠的单元格数量
X = 0
% 尝试1000次生成大图片,一旦生成满足要求的图片则退出循环
for attemp = 1:1000
% 生成空白图片
B = zeros(M,N)
% 将各小图片依次填入大图片
for i=1:length(A)
% 对小图片随机做旋转0、90、180、270度
高册 Rot = floor(rand*4)
T = A(i).Patten
for j=1:Rot
T = rot90(T)
end
% 将随机旋转后的小图片随机填充到大图片中
[m,n] = size(T)
r = floor(rand*(M-m)) + 1
c = floor(rand*(N-n)) + 1
B(r:r+m-1,c:c+n-1) = B(r:r+m-1,c:c+n-1) + T
end
% 如果生成的图片满足对重叠区域的要求,则退出循环
if sum(B(:)>1) <= X, break, end
end
fprintf('\n本次生成数码迷彩共经知孝过%i次尝试,图案如下:\n\n', attemp)
disp(num2str(B))
pcolor(B)
目前存在以下几个问题:
1、绘图。目前暂时用pcolor简单生成图片,但存在问题,因为pcolor的数据表现在各单元格的顶点上,而实际上需要的是表现在单元格的面上。稍后考虑更好的绘图手段。
2、算法也有点小问题。开始的时候我想简单了,认为既然小图片由2*2cm的单元小格组成,那就以2为基本单位,把30x30的图片划分成15x15个单元格,但编完之后想起来,这种处理是有问题的,例如,小图片可以从第2cm处(也就是半个单元格)排,这与算法对不上。
3、需要题主确认的两个问题:
(1)下面两个图案只有三列单元格,是否考虑存在第四列?也就是说,在往大图片中排的时候,是否考虑(不旋转的条件下)最右侧要有一列空白?
(2)现在的图案其实只有两种颜色,是否要使用4种不同的颜色对其进行区分?
不知道扮埋矩阵是怎么统计的,但累加图可以画,例子如下厅局蚂,可以参考:% a1=binornd(1000,0.1,[10,100])
% a2=binornd(1000,0.2,[10,100])
% s=a1+a2
% p1=s-300
% p2=p1/腊行sqrt(250)
x = -2.9:0.1:2.9
y = randn(10000,1)
figure(1), hist(y,x)
n_elements = histc(y,x)
c_elements = cumsum(n_elements)
figure(2),bar(x,c_elements)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)