matlab计算功率谱的四种方法

embedded/2025/1/22 14:23:22/

%{
计算功率谱的四种方法,前三种方法采用归一化频率,第四种方法采用原始频率
%}

matlab">clear;clc;close all;
% 生成一个示例时间序列(例如正弦波加上一些随机噪声)
t = 0:0.01:100-0.1;  % 时间向量
% x = sin(t) + 0.5 * randn(size(t));  % 正弦波加噪声
x = sin(20*pi*t);%% 使用 pwelch 计算功率谱
% 输入信号 x,窗口大小为 256,重叠为 128,采样频率为 1 Hz
[pxx, f] = pwelch(x, 256, 128, [], 1);% 绘制功率谱
figure;
plot(f, 10*log10(pxx));  % 使用对数尺度绘制功率谱(dB)
title('功率谱 (使用 Welch 方法)');
xlabel('频率 (Hz)');
ylabel('功率 (dB)');%% 使用 periodogram 计算功率谱
[pxx, f] = periodogram(x, [], [], 1);% 绘制功率谱
figure;
plot(f, 10*log10(pxx));  % 使用对数尺度绘制功率谱(dB)
title('功率谱 (使用 Periodogram 方法)');
xlabel('频率 (Hz)');
ylabel('功率 (dB)');%% 直接使用fft
% 计算信号的 FFT
X = fft(x);% 计算功率谱
pxx = abs(X).^2 / length(x);  % 计算功率谱
f = (0:length(x)-1) / length(x);  % 频率轴% 绘制功率谱
figure;
plot(f, 10*log10(pxx));  % 使用对数尺度绘制功率谱(dB)
title('功率谱 (使用 FFT 方法)');
xlabel('频率 (Hz)');
ylabel('功率 (dB)');%% 使用自相关函数的方法
% 计算自相关函数
[R, lags] = xcorr(x, 'biased');
% 计算功率谱
N = length(x);  % 信号长度
Fs = 100;  % 采样频率% 获取自相关函数的一半(因为自相关函数是对称的)
R_half = R(N:end);% 计算自相关函数的傅里叶变换,得到功率谱
S = abs(fft(R_half));
f = (0:length(S)-1) * (Fs / length(S));  % 频率轴% 可选:将功率谱转换为dB
S_dB = 10 * log10(S);
figure;
plot(f, S_dB);  % 显示dB功率谱
xlabel('Frequency (Hz)');
ylabel('Power (dB)');
title('Power Spectrum using Autocorrelation');

http://www.ppmy.cn/embedded/156070.html

相关文章

题解 CodeForces 131D Subway BFS C++

题目传送门 Problem - 131D - Codeforceshttps://codeforces.com/problemset/problem/131/Dhttps://codeforces.com/problemset/problem/131/D 翻译 地铁方案,对于Berland城市来说是一种经典的表示,由一组n站点和连接这些站点的n通道组成,…

Linux C\C++方式下的文件I/O编程

【图书推荐】《Linux C与C一线开发实践(第2版)》_linux c与c一线开发实践pdf-CSDN博客 《Linux C与C一线开发实践(第2版)(Linux技术丛书)》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 Lin…

路径规划之启发式算法之二十八:候鸟优化算法(Migrating Birds Optimization, MBO)

候鸟优化算法(Migrating Birds Optimization, MBO)是一种基于群体智能的元启发式优化算法,其灵感来源于候鸟迁徙时的“V”字形飞行队列。这种队列结构能够有效减少能量消耗,同时提高飞行效率。MBO算法通过模拟候鸟的迁徙行为,利用群体间的协作和信息共享来优化问题的解。 …

JavaScript DOM 操作与事件处理

Hi,我是布兰妮甜 !在现代Web开发中,JavaScript不仅是用来增强用户体验的工具,它更是创建动态、交互式网页的关键。通过操作文档对象模型(DOM)和处理用户事件,开发者能够构建出响应迅速且功能丰富…

Oracle之RMAN备份异机恢复(单机到单机)

Oracle之RMAN备份异机恢复(单机到单机) 一、环境说明二、正式库进行RMAN备份三、将正式库备份与参数文件拷贝到测试库四、测试库异机恢复五、验证数据 一、环境说明 系统版本主机名DB版本DB名实例名Public-IP正式库Redhat9.5lemonEnterprise 19.25lemon…

鸿蒙学习构建视图的基本语法(二)

一、层叠布局 // 图片 本地图片和在线图片 Image(https://developer.huawei.com/allianceCmsResource/resource/HUAWEI_Developer_VUE/images/080662.png) Entry Component//自适应伸缩 设置layoutWeight属性的子元素与兄弟元素 会按照权重进行分配主轴的空间// Position s…

数据库-多表关系

项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构。由于业务之间相互关联,所以各个表结构之间也存在着各种联系。 多表关系: 一对多(多对一) 一对一 多对多 多表关系 一对…

Nginx HTTP 服务器基础配置

一、Nginx 初相识 在当今互联网的广阔世界里,Nginx作为一款高性能的HTTP和反向代理服务器,犹如一颗璀璨的明星,闪耀在Web服务器领域的天空中。它诞生于2004年,由俄罗斯的Igor Sysoev开发,最初的目的是为了解决C10K问题…