MATLAB篇|时序数据模拟生成

本文目的是介绍如何模拟实际数据中具有特征的时间序列数据。基于本文提供的模拟数据方法为以后阐述不同时频分析方法提供数据支撑。

均匀且正态分布的白噪声

可以通过函数rand(均匀分布)和randn(通常为Gaussian分布)生成噪声。这些函数的输入指定所得矩阵的大小。

>> Yu = rand(1000,1);Yn = randn(1000,1);
>> subplot(223),hist(Yu,200);title('Distribution of uniform noise');xlabel('Amplitude bins');ylabel('Counts');
>> subplot(224),hist(Yn,200);title('Distribution of random noise');xlabel('Amplitude bins');ylabel('Counts');
>> subplot(211),plot(Yn),hold on,plot(Yu,'r');

其中,hist()函数中200表示间隔数(bins)数量。
subplot()函数:在matplotlib下,一个Figure对象可以包含多个子图(Axes),可以使用subplot()快速绘制,其调用形式如下
subplot(numRows, numCols, plotNum)
图表的整个绘图区域被分成numRows行和numCols列,然后按照从左到右,从上到下的顺序对每个子区域进行编号,左上的子区域的编号为1。
所以subplot(211)即表示2行1列,第1个子图。

bins=200时:
在这里插入图片描述

bins=10时:
在这里插入图片描述

粉红噪声

对于红噪声(也称为布朗噪声)来说,频率和功率的关系是:

P = K / f 2 P=K/f^2 P=K/f2
这里, K = e k K=e^k K=ek, k k k代表直线的截距。频率平方的关系其实可以更一般化的表示为指数 β :

P = K / f β P=K/f^β P=K/fβ
β = 0 β=0 β=0 的时候,所有频率分量的功率都是一个常数,也就是白噪声。 当$ β=2 $的时候,是红噪声。当 β 在0~2以内的时候,叫做粉红噪声(pink noise)。粉红噪声即指频率结构不均匀的噪声,通常功率随频率增加而降低。有几种计算粉红噪声的方法。一种是应用消失的频率滤波器。

>> wn = randn(10000,1); %white noise
>> wnX = fft(wn); % fast fourier transform
>> pn = real(ifft(wnX .* linspace(-1,1,length(wnX))'.^2))*2;
>> subplot(221)
>> plot(wn), hold on,plot(pn,'r'),xlabel('Time (a.u.)'),ylabel('Amplitude (a.u.)'),legend({'white','pink'});
>> subplot(222)
>> plot(wn,pn,'.');xlabel('Amplitude white noise');ylabel('Amplitude pinkified noise')
>> subplot(212)
>> plot(abs(fft(wn))), hold on;plot(abs(fft(pn)),'r');legend({'white';'pink'});xlabel('Frequency (a.u.)'), ylabel('Amplitude')
>> 

在这里插入图片描述

其中plot(linspace(-1,1,length(wnX))'.^2)绘图如下:
在这里插入图片描述

欢迎关注微信公众号《脑技术训练营》,方便更好的交流,谢谢!
在这里插入图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值