matlab中白噪声和有色噪声怎么表示

V和W是2个n维噪声序列,在matlab程序中怎么表示V这个噪声序列为白噪声,而W这个序列为有色噪声呢?
谢谢

第1个回答  2010-01-06
V=randn(m,n)
W = filter(b,1,V);
b为滤波器系数本回答被提问者采纳
第2个回答  2015-06-04
一、白噪声和有色噪声定义
1.白噪声(white noise)
系统辨识中所用到的数据通常都是含有噪声的。从工程实际出发,这种噪声往往可以视为具有有理谱密度的平稳随机过程。白噪声是一种最简单的随机过程,是有一系列不相关的随机变量组成的理想化随机过程。其自相关函数为dirac函数。
2.有色噪声(colored noise)
理想的白噪声只是一种理论上的抽象,在物理上是很难实现的,现实中并不存在这样的噪声。因而,工程实际中测量数据所包含的噪声往往是有色造势。所谓有色噪声(或相关噪声)是指序列中没一时刻的噪声相关。有色噪声可以看成是由白噪声序列驱动的线性环节的输出。
二、白噪声与有色噪声区别
(1)其实由定义可以看出,白噪声不同时刻是不相关的,自相关函数为脉冲函数;有色噪声则是相关的。
(2)实际测试可以通过测试功率谱来区别,白噪声的功率谱在各频率的值都比较平均,有色噪声则会有较为明显的峰值。
三、具体实例
1.产生有色噪声e(k) = x(k) +
0.5*x(k-1)。其中,x(k)为方差为1的白噪声
clear all; close all;
clc
L=500; %仿真长度
c = [1 -0.5];
nc = length(c) - 1;
xik=zeros(nc,1); %白噪声初值
xi=randn(L,1); %产生均值为0,方差为1的高斯白噪声序列
for k=1:L

e(k)=c*[xi(k);xik]; %产生有色噪声
%数据更新
for
i=nc:-1:2

xik(i)=xik(i-1);
end

xik(1)=xi(k);
end
subplot(2,1,1);
plot(xi);
xlabel('k');ylabel('噪声幅值');title('白噪声序列');
subplot(2,1,2);
plot(e);
xlabel('k');ylabel('噪声幅值');title('有色噪声序列');
%测试功率谱
[y1,f1] = Spectrum_Calc(xi',512);
p1 = 1/L * y1.*conj(y1);
figure(2)
subplot(211)
plot(f1,p1)
[y2,f2] = Spectrum_Calc(e,512);
p2 = 1/L * y2.*conj(y2);
subplot(212)
plot(f2,p2)
相似回答