在matlab上利用fft进行信号频谱分析_MATLAB下使用fft进行频域分析

该文详细介绍了如何在MATLAB环境下利用fft函数对信号进行频谱分析,通过具体的代码示例展示操作步骤。
摘要由CSDN通过智能技术生成

本文给出基于MATLAB对数据进行频域分析的常用方法,具体见代码:

clear all
clc

Fs = 1000;            % Sampling frequency HZ                   
T = 1/Fs;             % Sampling period  S     
N = 2000;             % Number of signal 
t = (0:N-1)*T;        % Time vector

%构造一个信号,其中包含幅值为 0.7 的 50 Hz 正弦量和幅值为 1 的 120 Hz 正弦量
y1 = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
%用均值为零、方差为 1 的白噪声叠加该信号
y2 = y1 + randn(size(t));

%波形快速傅里叶运算
Y1 = fft(y1);
Y2 = fft(y2);

%计算双侧频谱P2
P1_2 = abs(Y1/N);
%取出前面一半进行分析
P1_1 = P1_2(1:N/2+1);
%最终转化为单侧幅频
P1_1(2:end-1) = 2*P1_1(2:end-1);

%计算双侧频谱P2
P2_2 = abs(Y2/N);
%取出前面一半进行分析
P2_1 = P2_2(1:N/2+1);
%最终转化为单侧幅频
P2_1(2:end-1) = 2*P2_1(2:end-1);

%确定频域映射,转化为HZ
f = Fs*(0:(N/2))/N;

subplot(4,1,1);
plot(t,y1);
title('原始信号0.7幅值50HZ,1幅值120HZ')
subplot(4,1,2);
plot(f,P1_1);
title('原始信号FFT分析')
subplot(4,1,3);
plot(t,y2);
title('原始
  • 1
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值