Matlab 版 (精华区)
发信人: ramjet (德芙), 信区: Matlab
标 题: 用MATLAB来生成有色噪声
发信站: 哈工大紫丁香 (2001年07月12日17:13:53 星期四), 站内信件
rand产生的是白噪声,那么有色噪声如何产生的呢?
这是从清华转过来的一个m文件。
FFT变幻然后IFFT变幻
function sig=FractRnd(beta,k,HuaTu)
%sig=FractRnd(beta,k,HuaTu)
%To generate 1/f^betta noise
%INPUT
% beta is the exponent, a number
% k is the number of synthetic data points
%OUTPUT
% sig is a k-point array
%
if nargin==2
HuaTu=0;
end
len_beta=length(beta);
phi_k=2*pi*rand(1,k);
f=[1:k].^(-beta/2).*exp(i*phi_k(1:k));
sig=real(ifft(f));
sig=(sig-mean(sig))./std(sig);
if HuaTu
%To verify the scaling behavior of power spectral density:
% P(f) ~ 1/f^beta
figure(HuaTu)
F=fft(sig);
P=(abs(F)).^2;
P([1,round(end/2):end])=[];
% plot(log(1:length(P)),log(P))
loglog(1:length(P),P,'k')
xlabel('Frequency');
ylabel('Power spectrum')
% pause
end
--
在这个时代
如果你要为社会做一点贡献的话
那么就想办法
让你和你爱的人
好好的活着
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.237.3]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.475毫秒