当前位置: 首页 > news >正文

(42)MATLAB中使用fftshift绘制以零为中心的功率谱

文章目录

  • 前言
  • 一、MATLAB代码
  • 二、仿真结果画图


前言

在分析信号的频率分量时,将零频分量平移到频谱中心会很有帮助。本例给出绘制以零为中心的功率谱的方法。


一、MATLAB代码

代码如下:

f = 1;                            % 余弦波的振荡频率,简称频率
fs = 32;                          % 数字信号的采样频率(sampling frequency ),简称采样率
Ts = 1/fs;                        % 采样周期,也即采样值的时间间隔
L = 320;                          % 一个采样值称为一个sample,L为sample的个数
t = (0:L-1)*Ts;                   % 时间向量
x = cos(2*pi*f*t);                % 生成余弦波x% 画出生成余弦波的时域波形
figure()
plot(t,x,'LineWidth',1.5)
% title('余弦信号的时域波形')
title(['余弦波的时域波形(f=',num2str(f),'Hz,fs=',num2str(fs),' samples/s)'])
grid on
xlabel('t/s')
ylabel('cos(2*pi*f*t)')%% 计算余弦波信号功率谱,并绘制以零频为中心的功率谱。
% 计算余弦波信号功率谱
N = length(x);
X = fft(x, N);                    % 计算时域信号x的傅里叶变换
f = (0:N-1)*(fs/N);               % 频率范围。频率刻度从0开始,0对应直流分量
power = abs(X).^2/N;              % 功率% 绘制以零频为起点的功率谱
figure()
plot(f,power,'LineWidth',1)
grid on
title('余弦信号的功率谱(零频在起点)')
xlabel('频率(Hz)')
ylabel('功率谱幅度|Y|')% 平移负频分量
Y = fftshift(X);                  % X的第1-160个值是直流分量到fs/2-fs/N的频率分量
powershift = abs(Y).^2/N;         %0为中心的功率
fshift = (-N/2:N/2-1)*(fs/N);     %0为中心的频率范围% 绘制以零频为中心的功率谱
figure()
plot(fshift,powershift,'LineWidth',1)
grid on
title('余弦信号的功率谱(零频在中心)')
xlabel('频率(Hz)')
ylabel('功率谱幅度|Y|')

二、仿真结果画图

信号的时域波形图:

在这里插入图片描述

零频分量在频谱起点的频谱图:

在这里插入图片描述
零频分量在功率谱的起点位置,并不够直观。下面给出零频分量在功率谱的中心位置的功率谱谱。

绘制以零为中心的功率谱:

在这里插入图片描述


http://www.lryc.cn/news/463064.html

相关文章:

  • Windows本地部署中文羊驼模型(Chinese-Alpaca-Pro-7B)(通俗易懂版)
  • Web3的挑战与机遇:技术发展的现状分析
  • LangGraph - Hierarchical Agent Teams
  • 2021-04-14 proteus中仿真时74HC245三态双向端口扩展输出
  • 解决UNSPSC商品分类的层级不足的方法
  • Pytest基于fixture的参数化及解决乱码问题
  • 使用excel.js(layui-excel)进行layui多级表头导出,根据单元格内容设置背景颜色,并将导出函数添加到toolbar
  • Mysql 5.7 安装与卸载(非常详细)
  • 030 elasticsearch查询、聚合
  • 前端工程启动工具
  • 游戏逆向基础-跳出游戏线程发包
  • 做海外网站需要准备什么
  • 通过OpenCV实现 Lucas-Kanade 算法
  • 7、Vue2(二) vueRouter3+axios+Vuex3
  • 最新PHP礼品卡回收商城 点卡回收系统源码_附教程
  • MySQL数据库和表的基本操作
  • SAM应用:医学图像和视频中的任何内容分割中的基准测试与部署
  • Qt消息对话框
  • FreeRTOS的队列管理
  • 买卖股票的最佳时机(动态规划方法总结)
  • KubeSphere安装mysql8.4.0
  • SpringBoot项目热部署-devtools
  • 从MySQL到OceanBase离线数据迁移的实践
  • ifconfig 和 ip addr
  • NCCL报错
  • 域7:安全运营 第16章 安全运营管理
  • 研发线上事故风险解读之数据库存储
  • react hooks中在setState后输出state为啥没有变化,如何解决
  • C++设计模式——代理模式
  • docker 复制文件,清除不再使用数据导出以及导出文件系统