FFT 简单基础(matlab

news/2024/7/8 1:31:05 标签: 算法, matlab

 使用 fs 进行采样,进行 N点FFT

 选择显示0~N/2+1点的幅值

 横坐标对应频率计算公式:   fs * n / N

举个梨子:

        频率2kHz采样1s,得到2000个点的序列y(n)

        对序列y(n)做4096点的FFT

        幅值响应对应的横坐标频率计算:  2kHz * n / 4096

clc;
clear;
close all ;

T = 0.0005;%周期;x轴的步长
Fs = 1/T; %频率

%待采样函数
x = 0:T:1-T; 
y = 5*sin(2*pi*50*x) + 7*sin(2*pi*120*x) + 2*sin(2*pi*160*x) + 10*sin(2*pi*500*x);

subplot(3,1,1);plot(x,y);
title("x,y");

L = 4096;
Y = fft(y,L); % L点 FFT 不足L点会自动补零
P2 = abs(Y/L);  % Y 为傅里叶变换得到的结果  L为Y的长度

subplot(3,1,2);plot(0:L-1,P2);
title("4096点FFT");

P1 = 2* P2(1:L/2+1);   % 取前一半+1 个元素 , 对称叠加

f = Fs*(0:(L/2))/L;
subplot(3,1,3);plot(f,P1) ;
title("fft");xlabel('Hz');ylabel('振幅');

y = 5*sin(2*pi*50*x) + 7*sin(2*pi*120*x) + 2*sin(2*pi*160*x) + 10*sin(2*pi*500*x);

第三幅图可以看出横轴X对应的几个峰值与被测信号相近

根据奈奎斯特采样定律,采样信号至少为被采样信号的两倍

fs=2000Hz 被采样信号最高为1000Hz

第三幅图的幅值几乎为被采样信号的一半:
Matlab 计算 FFT 的方法及幅值问题_matlab取幅值的函数-CSDN博客

幅值与FFT点数也存在关系,太多点数会存在能量泄露。

http://www.niftyadmin.cn/n/5536000.html

相关文章

bpftrace几种使用实例

1. 排查内存泄漏 memory.c memory.bt 可以执行相关memory,用bpftrace追踪malloc和free的过程 修改memory.bt,加上malloc和free统计,重新执行 2. 验证tcp连接关闭是应用关闭还是内核关闭 nginx服务启动后,会处于监听状态&…

DT浏览器很好用

DT浏览器是一款简单的浏览器,又是强大的浏览器,界面简洁大方,软件使用流畅。DT浏览器的网址收藏,人工智能写作,书法笔记等功能与众不同。DT浏览器的图文识别功能和笔记本搭配使用,可以对内容编辑修改和保存…

k8s-第二节-常用操作

k8s命令行常用操作 k8s命令行 操作对象时都要前面声明操作对象类型 kubectl get kubectl describe kubectl delete kubectl edit kubectl logs kubectl exec kubectl port-forward 端口转发将pod 端口映射出来 kubectl cp 本地文件路径:容器文件路径 kubectl apply …

开始尝试从0写一个项目--前端(一)

基础项目构建 创建VUE初始工程 确保自己下载了node.js和npm node -v //查看node.js的版本 npm -v //查看npm的版本 npm i vue/cli -g //安装VUE CLI 创建 以管理员身份运行 输入:vue ui 就会进入 点击创建 自定义项目名字,选择npm管理 结…

如何用C++写一个死锁

死锁就是多个进程或者线程竞争临界资源所造成的僵局 最简单的死锁,线程x持有资源a请求资源b,线程y持有资源b请求资源a,死锁了 设置两个全局变量当作线程共享资源,为了让两个线程分别持有一个资源让它们抢到一个资源后睡一会让另…

记录OSPF配置,建立邻居失败的过程

1.配置完ospf后,在路由表中不出现ospf相关信息 [SW2]ospf [SW2-ospf-1]are [SW2-ospf-1]area 0 [SW2-ospf-1-area-0.0.0.0]net [SW2-ospf-1-area-0.0.0.0]network 0.0.0.0 Jul 4 2024 22:11:58-08:00 SW2 DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5.25 .1…

【D3.js in Action 3 精译】1.2.3 Canvas 与 WebGL + 1.2.4 CSS

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 1.1 何为 D3.js?1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形1.2.3 Canvas 与 WebGL ✔️1.2.4 CSS ✔️1.2.5 JavaScript(精译中 ⏳)1.2.6 Node …

C语言学习笔记--第一个程序

第一个C语言程序 #include<stdio.h> //引用输入输出头文件&#xff0c;每一次都需要引用这个文件 //.h是头文件 // .c是源文件 // .cpp是C源文件&#xff0c;兼容C //C的第一个程序 // 行注释&#xff08;只能注释这一行&#xff09; /*块注释 */ int main() {printf(&…