通过白噪声的频谱处理产生任意光谱斜率(f^a)噪声(Matlab代码实现)

news/2024/11/15 19:26:14/

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码及文章讲解


💥1 概述

文献来源:

摘要:本文研究了具有任意谱斜率的幂律彩色数字噪声信号(序列)的生成。首先,简要介绍了一些噪声特征的背景信息。在此基础上,提出了一种基于白噪声信号的产生、频域变换、频谱处理和逆变换回时域的方法。进行了计算机模拟以确认算法的一致性,包括功率谱密度的估计和自相关性,以及与相应的内置Matlab®函数相比其优异性能的示例。

关键词:彩色噪声,粉色噪声,红色噪声,蓝色噪声,紫色噪声,生成

原文摘要:

Abstract: - The present paper addresses the generation of power-law, colored digital noise signals (sequences) with arbitrary spectral slope. In the beginning, brief background information is given about some noise features. Further, a newly proposed method is described, based on generation of a white noise signal, its transformation into the frequency domain, spectral processing and inverse transform back into the time domain. Computer simulations are performed to confirm the consistency of the algorithm, including estimation of the power spectral density and the autocorrelation, along with example of its outperformance in comparison with the corresponding in-built Matlab® function. 
 
Keywords: - colored noise, pink noise, red noise, blue noise, violet noise, generation 

本代码是一个 Matlab 函数,可提供具有任意功率谱密度 (PSD) 斜率 f^a 的噪声信号生成。例如:

1)白噪声:a = 0;

2)粉红噪声:a = −1;

3)红噪声:a = −2;

4)蓝噪声:a = +1;

5)紫罗兰噪声:a = +2。

为了阐明函数的用法,给出了两个示例。为方便起见,输入和输出参数在函数的开头给出。产生的噪声信号具有单位标准差和零平均值。

📚2 运行结果

 部分代码:

% function: x = arbssnoise(N, alpha) 
%
% Input:
% N - number of samples to be returned in the noise column vector
% alpha - PSD spectral slope

% Output:
% x - column vector of noise samples with unity  
%     standard deviation and zero mean value 
%
% For instance:
% black noise   -> alpha < -2,  PSD slope < -20 dB/dec;
% red noise     -> alpha = -2,  PSD slope = -20 dB/dec;
% pink noise    -> alpha = -1,     PSD slope = -10 dB/dec;
% white noise   -> alpha = 0,   PSD slope = 0 dB/dec;
% blue noise    -> alpha = +1,  PSD slope = 10 dB/dec;   
% violet noise  -> alpha = +2,  PSD slope = 20 dB/dec;

function x = arbssnoise(N, alpha)

% input validation
validateattributes(N, {'double'}, ...
                      {'scalar', 'integer', 'nonnan', 'finite'}, ...
                      '', 'N', 1)
validateattributes(alpha, {'double'}, ...
                          {'scalar', 'real', 'nonnan', 'finite'}, ...
                          '', 'alpha', 2)

% convert from PSD (power specral density) slope 
% to ASD (amplitude spectral density) slope
alpha = alpha/2;

% generate AWGN signal
x = randn(1, N);

% calculate the number of unique fft points
NumUniquePts = ceil((N+1)/2);

% take fft of x
X = fft(x);

% fft is symmetric, throw away the second half
X = X(1:NumUniquePts);

% prepare a vector with frequency indexes 
n = 1:NumUniquePts;

% manipulate the left half of the spectrum so the spectral 
% amplitudes are proportional to the frequency by factor f^alpha
X = X.*(n.^alpha);

% perform ifft
if rem(N, 2)    % odd N excludes Nyquist point 
    % reconstruct the whole spectrum
    X = [X conj(X(end:-1:2))];
    
    % take ifft of X
    x = real(ifft(X));   
else            % even N includes Nyquist point  
    % reconstruct the whole spectrum
    X = [X conj(X(end-1:-1:2))];
    
    % take ifft of X
    x = real(ifft(X));  

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1] H. Zhivomirov. A Method for Colored Noise Generation. Romanian Journal of Acoustics and Vibration, ISSN: 1584-7284, Vol. XV, No. 1, pp. 14-19, 2018.

🌈4 Matlab代码及文章讲解


http://www.ppmy.cn/news/80366.html

相关文章

【002hive基础】hive的库、表与hdfs的组织逻辑

文章目录 一. 数据的组织形式1. hive数据库2. hive表2.1. 内部表和外部表2.2. 分区表与分桶表 3. 视图 二. 底层储存 一. 数据的组织形式 1. hive数据库 hive将不同功能模块的数据&#xff0c;存储在不同的数据库中&#xff0c;在hdfs中以文件夹的形式显示。 2. hive表 2.1.…

Java配置类整合SSM框架实现用户登录

文章目录 一&#xff0c;创建数据库与表&#xff08;一&#xff09;创建数据库&#xff08;二&#xff09;创建用户表&#xff08;三&#xff09;在用户表里插入记录 二&#xff0c;创建Maven项目三&#xff0c;添加相关依赖四&#xff0c;创建日志属性文件五&#xff0c;创建数…

网站开发中如何优化CSS JS资源的加载速度

✨求关注~ &#x1f600;博客&#xff1a;www.protaos.com 在网站开发中&#xff0c;优化CSS和JS资源的加载速度对于提高页面加载时间和用户体验至关重要。通过采取一系列的优化措施&#xff0c;可以减小CSS和JS文件的大小&#xff0c;减少网络请求并提高加载速度。 实现方法&a…

Raspberry系统管理 —— 安装和配置OpenVINO

文章目录 什么是OpenVINO下载测试用例加速自己的模型 什么是OpenVINO OpenVINO (Open Visual Inference and Neural Network Optimization) 是一个用于视觉推理和神经网络优化的工具包。它是一个开源的软件平台&#xff0c;可以用于加速神经网络的推理过程。OpenVINO可以在 CP…

渗透测试 | 指纹识别

0x00 免责声明 本文仅限于学习讨论与技术知识的分享&#xff0c;不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;本文作者不为此承担任何责任&#xff0c;一旦造成后果请自行承担…

lintcode-图的拓扑排序(java)

拓扑排序 拓扑排序-lintcode原题题目介绍解题思路代码演示解题方法二 (参考,不用掌握)前置知识 图的拓扑序和深度优先遍历和广度优先遍历 拓扑排序-lintcode原题 127.拓扑排序-原题链接,可以点进去测试 题目介绍 描述 给定一个有向图&#xff0c;图节点的拓扑排序定义如下: 对…

RHCE----Shell变量和引用

1.变量的类型及含义 变量类型: 1、自定义变量: 在当前的shell命令行界面设置的变量是局部变量 例子&#xff1a; num1 namezhangsan 2、环境变量全局变量,通过export 导出后的局部变量是全局变量 、bash的初始化文件&#xff1a;/etc/profile&#xff1a;存放一些全局变量…

RabbitMQ之延迟队列

1 概念 ​ 延时队列&#xff0c;队列内部是有序的&#xff0c;最重要的特性体现在它的延时属性上&#xff0c;延时队列中的元素是希望再指定时间到了以后或之前取出和处理&#xff0c;简单来说&#xff0c;延时队列就是用来存放需要在指定时间被处理的元素的队列 2 使用场景 …