色噪声

色噪声是指功率谱不平坦的噪声,与之相对应的是白噪声,白噪声定义为在无限频率范围内功率谱密度为常数的信号。一种常见的色噪声产生方法就是利用白噪声通过滤波器,使其功率谱在对应的范围内不再保持常数。

ARMA(自回归滑动平均)模型

如果系数 a 1 , a 2 , ⋯ , a p {{a}_{1}},{{a}_{2}},\cdots ,{{a}_{p}} a1​,a2​,⋯,ap​和 b 1 , b 2 , ⋯ , b q {{b}_{1}},{{b}_{2}},\cdots ,{{b}_{q}} b1​,b2​,⋯,bq​不全为零,并且 a p ≠ 0 {{a}_{p}}\ne 0 ap​​=0, b q ≠ 0 {{b}_{q}}\ne 0 bq​​=0,那么此时系统既存在零点也存在极点。当序列 w ( n ) w\left( n \right) w(n)通过上述系统后,那么系统的输出 y ( n ) y\left( n \right) y(n)与输入 w ( n ) w\left( n \right) w(n)之间的关系可以用下列查分方程表示
y ( n ) = − a 1 y ( n − 1 ) − a 2 y ( n − 2 ) − ⋯ − a p y ( n − p ) + w ( n ) + b 1 w ( n − 1 ) + b 2 w ( n − 2 ) + ⋯ + b q w ( n − q ) = ∑ k = 0 q b k w ( n − k ) − ∑ k = 1 p a k y ( n − k ) \begin{aligned} & y\left( n \right)=-{{a}_{1}}y\left( n-1 \right)-{{a}_{2}}y\left( n-2 \right)-\cdots -{{a}_{p}}y\left( n-p \right) \\ & \ \ +w\left( n \right)+{{b}_{1}}w\left( n-1 \right)+{{b}_{2}}w\left( n-2 \right)+\cdots +{{b}_{q}}w\left( n-q \right) \\ & =\sum\limits_{k=0}^{q}{{{b}_{k}}w\left( n-k \right)}-\sum\limits_{k=1}^{p}{{{a}_{k}}y\left( n-k \right)} \end{aligned} ​y(n)=−a1​y(n−1)−a2​y(n−2)−⋯−ap​y(n−p)  +w(n)+b1​w(n−1)+b2​w(n−2)+⋯+bq​w(n−q)=k=0∑q​bk​w(n−k)−k=1∑p​ak​y(n−k)​

系统输出功率谱密度函数

S y ( Ω ) = S w ( Ω ) ∣ ∑ k = 0 q b k e − j Ω k ∣ 2 ∣ ∑ k = 0 p a k e − j Ω k ∣ 2 {{S}_{y}}\left( \Omega \right)={{S}_{w}}\left( \Omega \right)\frac{{{\left| \sum\limits_{k=0}^{q}{{{b}_{k}}{{e}^{-j\Omega k}}} \right|}^{2}}}{{{\left| \sum\limits_{k=0}^{p}{{{a}_{k}}{{e}^{-j\Omega k}}} \right|}^{2}}} Sy​(Ω)=Sw​(Ω)∣∣∣∣​k=0∑p​ak​e−jΩk∣∣∣∣​2∣∣∣∣​k=0∑q​bk​e−jΩk∣∣∣∣​2​

系统输出自相关函数

R y ( m ) = R y ( n 1 − n 2 ) = E { y ( n 2 ) [ ∑ k = 0 q b k w ( n 1 − k ) − ∑ k = 1 p a k y ( n 1 − k ) ] } = ∑ k = 0 q b k R w y ( m − k ) − ∑ k = 1 p a k R y ( m − k ) \begin{aligned} & {{R}_{y}}\left( m \right)={{R}_{y}}\left( {{n}_{1}}-{{n}_{2}} \right)=E\left\{ y\left( {{n}_{2}} \right)\left[ \sum\limits_{k=0}^{q}{{{b}_{k}}w\left( {{n}_{1}}-k \right)-\sum\limits_{k=1}^{p}{{{a}_{k}}y\left( {{n}_{1}}-k \right)}} \right] \right\} \\ & =\sum\limits_{k=0}^{q}{{{b}_{k}}{{R}_{wy}}\left( m-k \right)-\sum\limits_{k=1}^{p}{{{a}_{k}}{{R}_{y}}\left( m-k \right)}} \end{aligned} ​Ry​(m)=Ry​(n1​−n2​)=E{y(n2​)[k=0∑q​bk​w(n1​−k)−k=1∑p​ak​y(n1​−k)]}=k=0∑q​bk​Rwy​(m−k)−k=1∑p​ak​Ry​(m−k)​
如果输入是白噪声序列的话,那么系统的输出的功率谱和自相关函数可以表示为
S y ( Ω ) = σ w 2 ∣ ∑ k = 0 q b k e − j Ω k ∣ 2 ∣ ∑ k = 0 p a k e − j Ω k ∣ 2 {{S}_{y}}\left( \Omega \right)=\sigma _{w}^{2}\frac{{{\left| \sum\limits_{k=0}^{q}{{{b}_{k}}{{e}^{-j\Omega k}}} \right|}^{2}}}{{{\left| \sum\limits_{k=0}^{p}{{{a}_{k}}{{e}^{-j\Omega k}}} \right|}^{2}}} Sy​(Ω)=σw2​∣∣∣∣​k=0∑p​ak​e−jΩk∣∣∣∣​2∣∣∣∣​k=0∑q​bk​e−jΩk∣∣∣∣​2​
R y ( m ) = R y ( n 1 − n 2 ) = E { y ( n 2 ) [ ∑ k = 0 q b k w ( n 1 − k ) − ∑ k = 1 p a k y ( n 1 − k ) ] } = ∑ k = 0 q b k R w y ( m − k ) − ∑ k = 1 p a k R y ( m − k ) = ∑ k = 0 q b k σ w 2 h ( m − k ) − ∑ k = 1 p a k R y ( m − k ) \begin{aligned} & {{R}_{y}}\left( m \right)={{R}_{y}}\left( {{n}_{1}}-{{n}_{2}} \right)=E\left\{ y\left( {{n}_{2}} \right)\left[ \sum\limits_{k=0}^{q}{{{b}_{k}}w\left( {{n}_{1}}-k \right)-\sum\limits_{k=1}^{p}{{{a}_{k}}y\left( {{n}_{1}}-k \right)}} \right] \right\} \\ & =\sum\limits_{k=0}^{q}{{{b}_{k}}{{R}_{wy}}\left( m-k \right)-\sum\limits_{k=1}^{p}{{{a}_{k}}{{R}_{y}}\left( m-k \right)}} \\ & \text{=}\sum\limits_{k=0}^{q}{{{b}_{k}}\sigma _{w}^{2}h\left( m-k \right)-\sum\limits_{k=1}^{p}{{{a}_{k}}{{R}_{y}}\left( m-k \right)}} \end{aligned} ​Ry​(m)=Ry​(n1​−n2​)=E{y(n2​)[k=0∑q​bk​w(n1​−k)−k=1∑p​ak​y(n1​−k)]}=k=0∑q​bk​Rwy​(m−k)−k=1∑p​ak​Ry​(m−k)=k=0∑q​bk​σw2​h(m−k)−k=1∑p​ak​Ry​(m−k)​
其中 h ( n ) h\left( n \right) h(n)为系统的冲激响应,其表达式为
h ( n ) = { − ∑ k = 1 p a k h ( n − k ) + b n , 0 ≤ n ≤ q − ∑ k = 1 p a k h ( n − k ) , n > q 0 , n < 0 h\left( n \right)=\left\{ \begin{aligned} & -\sum\limits_{k=1}^{p}{{{a}_{k}}h\left( n-k \right)}+{{b}_{n}},\ \ \ \ \ \ \ 0\le n\le q \\ & -\sum\limits_{k=1}^{p}{{{a}_{k}}h\left( n-k \right),\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ n>q} \\ & \ \ \ \ \ \ \ \ \ \ \ 0,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ n<0 \\ \end{aligned} \right. h(n)=⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧​​−k=1∑p​ak​h(n−k)+bn​,       0≤n≤q−k=1∑p​ak​h(n−k),                n>q           0,                         n<0​

AR模型

当系数 b 1 , b 2 , ⋯ , b q {{b}_{1}},{{b}_{2}},\cdots ,{{b}_{q}} b1​,b2​,⋯,bq​ 为0且 a p ≠ 0 {{a}_{p}}\ne 0 ap​​=0 时,系统为全极点系统,
系统的输出可以表示为
y ( n ) = w ( n ) − ∑ k = 1 p a k y ( n − k ) y\left( n \right)=w\left( n \right)-\sum\limits_{k=1}^{p}{{{a}_{k}}y\left( n-k \right)} y(n)=w(n)−k=1∑p​ak​y(n−k)
那么系统的传输函数和冲激响应可以表示为
H ( j Ω ) = 1 1 + ∑ k = 1 p a k e − j Ω k = 1 ∑ k = 0 p a k e − j Ω k H\left( j\Omega \right)=\frac{1}{1+\sum\limits_{k=1}^{p}{{{a}_{k}}{{e}^{-j\Omega k}}}}=\frac{1}{\sum\limits_{k=0}^{p}{{{a}_{k}}{{e}^{-j\Omega k}}}} H(jΩ)=1+k=1∑p​ak​e−jΩk1​=k=0∑p​ak​e−jΩk1​
h ( n ) = { − ∑ k = 1 p a k h ( n − k ) + δ ( n ) , n ≥ 0 0 , n < 0 h\left( n \right)=\left\{ \begin{aligned} & -\sum\limits_{k=1}^{p}{{{a}_{k}}h\left( n-k \right)+\delta \left( n \right),\ \ \ \ n\ge 0} \\ & 0,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ n<0 \\ \end{aligned} \right. h(n)=⎩⎪⎪⎨⎪⎪⎧​​−k=1∑p​ak​h(n−k)+δ(n),    n≥00,                                  n<0​
由上面的表达式可以看出,AR(p)模型是AR(p,q)模型经过q=0退化来的,那么系统输出的功率谱密度函数和自相关函数可以表示为
S y ( Ω ) = σ w 2 ∣ ∑ k = 0 p a k e − j Ω k ∣ 2 {{S}_{y}}\left( \Omega \right)=\frac{\sigma _{w}^{2}}{{{\left| \sum\limits_{k=0}^{p}{{{a}_{k}}{{e}^{-j\Omega k}}} \right|}^{2}}} Sy​(Ω)=∣∣∣∣​k=0∑p​ak​e−jΩk∣∣∣∣​2σw2​​

R y ( m ) = R y ( n 1 − n 2 ) = E { y ( n 2 ) [ w ( n 1 ) − ∑ k = 1 p a k y ( n 1 − k ) ] } = R w y ( m ) − ∑ k = 1 p a k R y ( m − k ) = σ w 2 h ( − m ) − ∑ k = 1 p a k R y ( m − k ) \begin{aligned} & {{R}_{y}}\left( m \right)={{R}_{y}}\left( {{n}_{1}}-{{n}_{2}} \right)=E\left\{ y\left( {{n}_{2}} \right)\left[ w\left( {{n}_{1}} \right)-\sum\limits_{k=1}^{p}{{{a}_{k}}y\left( {{n}_{1}}-k \right)} \right] \right\} \\ & ={{R}_{wy}}\left( m \right)-\sum\limits_{k=1}^{p}{{{a}_{k}}{{R}_{y}}\left( m-k \right)} \\ & =\sigma _{w}^{2}h\left( -m \right)-\sum\limits_{k=1}^{p}{{{a}_{k}}{{R}_{y}}\left( m-k \right)} \end{aligned} ​Ry​(m)=Ry​(n1​−n2​)=E{y(n2​)[w(n1​)−k=1∑p​ak​y(n1​−k)]}=Rwy​(m)−k=1∑p​ak​Ry​(m−k)=σw2​h(−m)−k=1∑p​ak​Ry​(m−k)​

同理,将 a 1 = a 2 = ⋯ = a p = 0 {{a}_{1}}={{a}_{2}}=\cdots ={{a}_{p}}=0 a1​=a2​=⋯=ap​=0时,此时为MA(p)模型,分析方法与上述类似,这里不再叙述。

利用MATLAB实现ARMA滤波

MATLAB中有filter函数,其功能是进行一维数字滤波

filter: One-dimensional digital filter. Y = filter(B,A,X) filters the data in vector X with the filter described by vectors A and B to create the filtered data Y. The filter is a “Direct Form II Transposed” implementation of the standard difference equation:

a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb)- a(2)*y(n-1) - ... - a(na+1)*y(n-na)If a(1) is not equal to 1, filter normalizes the filter
coefficients by a(1). filter always operates along the first non-singleton dimension,
namely dimension 1 for column vectors and non-trivial matrices,
and dimension 2 for row vectors.[Y,Zf] = filter(B,A,X,Zi) gives access to initial and final
conditions, Zi and Zf, of the delays.  Zi is a vector of length
MAX(LENGTH(A),LENGTH(B))-1, or an array with the leading dimension
of size MAX(LENGTH(A),LENGTH(B))-1 and with remaining dimensions
matching those of X.filter(B,A,X,[],DIM) or filter(B,A,X,Zi,DIM) operates along the
dimension DIM.Tip:  If you have the Signal Processing Toolbox, you can design a
filter, D, using DESIGNFILT.  Then you can use Y = filter(D,X) to
filter your data.

上述是MATLAB中关于filter函数的介绍,可以看出其利用的ARMA模型进行滤波,因此可以将白噪声进行滤波获得色噪声,当然也可以利用其它滤波器进行滤波得到色噪声。
下面给出一个产生色噪声的小例子,样本数为1000。

将白噪声的一些特性画出来可以得到上述的结果。
设计一个低通滤波器(也可以直接指定系数,利用filter函数直接进行滤波),其中滤波器的幅频特性如下:

白噪声经过滤波器后,可以得到色噪声,其结果如下:


可以看出,经过低通滤波后的白噪声的频谱或者是功率谱均不再保持平坦的特性,也就是得到了色噪声。
由于仿真时样本数较少,只能大概看出白噪声的功率谱基本是不变的,如果想得到更好的效果可以增加样本数,这里就不再叙述。

代码如下:

clear;
close all;
clc;
%产生高斯白噪声
N = 1e3;
t=0:(N-1);
w=randn(1,N);
mean_w=mean(w);                      %均值
var_w=var(w);                               %方差
[corr_w,lag]=xcorr(w,'unbiased');   %自相关函数
msv_w = var_w + mean_w.^2;     %均方值
[f1,x_w] = ksdensity(w);               %概率密度
f=0:N-1;
W=fft(w);
fft_w=abs(W);                               %频谱
power_w=W.*conj(W)/1024;          %功率谱密度
figure(1);
subplot(2,2,1);plot(w);
title('高斯白噪声');axis([0 N -5 5]);
subplot(2,2,2);plot(t,mean_w*ones(size(t)));
title('高斯白噪声均值');axis([0 N -2 2]);
subplot(2,2,3);plot(t,var_w*ones(size(t)));
title('高斯白噪声方差');axis([0 N -2 2]);
subplot(2,2,4);plot(t,msv_w*ones(size(t)));
title('高斯白噪声均方值');axis([0 N -2 2]);
figure(2)
subplot(2,2,1);plot(lag,corr_w);
title('高斯白噪声自相关函数');axis([-N N -1 1]);
subplot(2,2,2);plot(x_w,f1);
title('概率密度');
subplot(2,2,3);plot(f,fft_w);
title('高斯白噪声频谱');axis([0 N 0 80]);
subplot(2,2,4);plot(f,power_w);
title('高斯白噪声功率谱密度');axis([0 1024 0 8]);
%低通滤波器
Wp=2*pi*30;Ws=2*pi*40;Rp=0.5;Rs=40;fs=100;W=2*pi*fs;
[N1,Wn]=buttord(2*Wp/W,2*Ws/W,Rp,Rs);
[b,a]=butter(N1,Wn);
[h,f]=freqz(b,a,1000,fs);
figure(3);plot(f,abs(h)); xlabel('f/Hz');ylabel('|H(jf)|');
axis([0 100 0 1.2]);grid on;
title('低通滤波器幅频响应');
%生成高斯色噪声
y=filter(b,a,w);        %滤波产生高斯色噪声
mean_y=mean(y);     %均值
var_y=var(y);               %方差
[corr_y,lag]=xcorr(y,'unbiased');       %自相关函数
msv_y = var_y + mean_y.^2;     %均方值
[f1,x_y]=ksdensity(y);              %概率密度
f=0:N-1;
Y=fft(y);
fft_y=abs(Y);                       %频谱
power_y=Y.*conj(Y)/N;       %功率谱密度
figure(4);
subplot(2,2,1);plot(t,y);
title('高斯色噪声');axis([0 1024 -5 5]);
subplot(2,2,2);plot(t,mean_y*ones(size(t)));
title('高斯色噪声均值');axis([0 N -1 1]);
subplot(2,2,3);plot(t,var_y*ones(size(t)));
title('高斯色噪声方差');axis([0 N -0.5 1.5]);
subplot(2,2,4);plot(t,msv_y*ones(size(t)));
title('高斯色噪声均方值');axis([0 N -0.5 1.5]);
figure(5)
subplot(2,2,1);plot(lag,corr_y);
title('高斯色噪声自相关函数');axis([-N N -0.5 1]);
subplot(2,2,2);plot(x_y,f1);
title('高斯色噪声概率密度');
subplot(2,2,3);plot(f,fft_y);
title('高斯色噪声频谱');axis([0 N 0 100]);
subplot(2,2,4);plot(f,power_y);
title('高斯色噪声功率谱密度');axis([0 N 0 8]);

参考文献:
[1]叶中付. 统计信号处理 [M]. 中国科学技术大学出版社, 2013.

色噪声的产生及MATLAB实现相关推荐

  1. matlab如何代码实现原理,色噪声原理及matlab代码实现

    色噪声原理及matlab实现 1.实验目的: ⑴了解随机信号自身的特性,包括均值(数学期望).均方值.方差.相关函数.概率密度.频谱及功率谱密度等. (2)了解色噪声的基本概念和分析方法,掌握用mat ...

  2. 色噪声原理及matlab代码实现,色噪声原理及matlab代码实现

    色噪声原理及matlab代码实现 色噪声原理及 matlab 实现1.实验目的:⑴ 了解随机信号自身的特性,包括均值(数学期望) .均方值.方差.相关函数.概率密度.频谱及功率谱密度等.(2)了解色噪 ...

  3. 随机信号处理笔记之色噪声及白化滤波器

    随机信号处理笔记:色噪声及白化滤波器 --南京理工大学顾红老师的<随机信号处理>浅析 文章目录 随机信号处理笔记:色噪声及白化滤波器 1.关于色噪声 1.1产生原因 1.2解决办法 1.2 ...

  4. matlab程序 地震 相干噪声_地震台站台基噪声功率谱概率密度函数Matlab实现

    地震台站台基噪声功率谱概率密度函数 Matlab 实现 谢江涛 林丽萍 谌 亮 赵 敏 [摘 要] 摘要 选取 2015 年四川数字测震台网中筠连和华蓥山地震台记录的垂 直分向连续波形数据,利用 Ma ...

  5. Matlab算法DSP移植验证,DSP计算机作业 自适应噪声抵消LMS算法Matlab仿真

    [实例简介] 自适应噪声抵消LMS算法Matlab仿真,DSP计算机作业 数字信号处理 自适应 1) 借助MATLAB画出误差性能曲面和误差性能曲面的等值曲线: 2) 写出最陡下降法, LMS算法的计 ...

  6. 信号去噪,基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附Matlab代码

    信号去噪,基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附Matlab代码 信号处理中的一个关键问题就是信号去噪.在实际应用中,很多信号可能会受到环境噪声的干扰,这些 ...

  7. matlab关于噪声课设,基于matlab的有噪声的语音信号处理的课程设计.doc

    基于matlab的有噪声的语音信号处理的课程设计.doc DSP实验课程设计实验报告DSP实验课程设计实验报告姓名学号班级1课程设计题目基于MATLAB的有噪声的语音信号处理的课程设计.2课程设计的目 ...

  8. matlab 自适应噪声对消,基于Matlab的RLS自适应语音噪声对消系统的设计与实现

    基于Matlab 的R LS 自适应语音噪声 对消系统的设计与实现 ① 肖 哲 (湖南工业大学科技学院, 湖南株洲 412008) 摘 要:自适应信号处理的理论和技术经过40多年的发展和完善,已逐渐成 ...

  9. matlab复杂噪声产生实验报告,matlab加入噪声 - 范文中心

    (2)产生指定方差和均值的随机数 设某随机变量x ~N(Mx,Dx)若要产生同样分布的随机变量y~ N(My,Dy),但使新的随 机变量参数随x分布改变 y=Dy/Dx*(x-Mx)+My 具体到正态 ...

最新文章

  1. 一网打尽数据结构中图相关的算法
  2. Keras——模型的保存、读取及加载
  3. 20150720 Two heads are better than one
  4. 使用maven快速构建SSM项目
  5. Fast Stone超好用的截图工具,可截取长图,带滚动条的页面
  6. Docker基础学习笔记02:Docker基本操作
  7. 如何打包部署 Spring Boot 项⽬
  8. linux locate
  9. Silverlight 3一瞥
  10. Caffe傻瓜系列(6):solver及其配置
  11. Relay log read failure
  12. ZooKeeper解读
  13. 【暗恋不可耻但无用】QQ空间爬虫-Java版(jzone-crawler)
  14. 前端基础入门之css动画与变形
  15. python公式计算_Python数学公式计算
  16. 干货!ERP系统优化生产管理流程五大步骤
  17. 文字/文本超出显示省略号
  18. compareAndSwapObject
  19. JDK、JRE、JVM分别是什么及它们之间的有什么关联
  20. es中对score 的过滤 min_score

热门文章

  1. 【Python 基础篇】Python代码 之 缩进规则
  2. java栈和队列的实现
  3. 推荐几个论文写作和查重实用的网站
  4. NFT出租?格局打开了
  5. 计算机视觉系列(六)——图像增强
  6. 嵌入式开发之工具移植--wireless tools工具的移植和使用
  7. centos6 拆分pdf文件
  8. 丽升评卷系统显示服务器地址错误,丽升网上阅卷客户端使用说明
  9. yaf mysql_Yaf框架封装的MySQL数据库操作示例
  10. 最全的CSS浏览器兼容问题整理(IE6.0、IE7.0 与 FireFox)(收藏)