(34)FFT与信号频谱(双边谱)

文章目录


前言

本文首先使用MATLAB生成一段余弦信号,然后对其进行FFT变换,给出了信号的双边幅度谱。


一、仿真代码

代码如下(示例):

c 复制代码
%% 生成余弦波
% 指定信号的参数,频率1Hz,采样频率为16Hz,信号持续时间为2秒(32个samples)。
f = 1;                            % 余弦波的振荡频率,简称频率
fs = 16;                          % 数字信号的采样频率(sampling frequency ),简称采样率
Ts = 1/fs;                        % 采样周期,也即采样值的时间间隔
L = 32;                           % 一个采样值称为一个sample,L为sample的个数
t = (0:L-1)*Ts;                   % 时间向量
x = cos(2*pi*f*t);                % 生成余弦波x

% 画出生成余弦波的时域波形
figure()
plot(t,x,'LineWidth',1.5)
title(['余弦波的时域波形(f=',num2str(f),'Hz,fs=',num2str(fs),' samples/s)'])
grid on
xlabel('t/s')
ylabel('cos(2*pi*f*t)')

%% 频域(FFT)结果
N = L;                          % N=32
Y = fft(x,N);                   % 信号的傅里叶变换

% 计算信号的双边幅度频谱
P2 = abs(Y/L);

% 信号的双边幅度频谱画图,x轴为频率
figure()
stem(0:(fs/N):(fs-fs/N),P2(1:N),'LineWidth',1.5)
grid on
title(['余弦波的双边幅度频谱(f=',num2str(f),'Hz,fs=',num2str(fs),' samples/s,','N=',num2str(N),')'])
xlabel('频率/Hz')
ylabel('幅度|Y(n)|')

二、仿真结果画图

时域波形如下:

信号的双边频谱如下:


相关推荐
程序员-King.4 小时前
day143—递归—对称二叉树(LeetCode-101)
数据结构·算法·leetcode·二叉树·递归
BlockChain8884 小时前
字符串最后一个单词的长度
算法·go
爱吃泡芙的小白白4 小时前
深入解析:2024年AI大模型核心算法与应用全景
人工智能·算法·大模型算法
阿崽meitoufa5 小时前
JVM虚拟机:垃圾收集器和判断对象是否存活的算法
java·jvm·算法
yugi9878385 小时前
基于遗传算法优化主动悬架模糊控制的Matlab实现
开发语言·matlab
ballball~~5 小时前
拉普拉斯金字塔
算法·机器学习
Cemtery1165 小时前
Day26 常见的降维算法
人工智能·python·算法·机器学习
yugi9878386 小时前
MATLAB的多层感知器(MLP)与极限学习机(ELM)实现
开发语言·matlab
Ethan-D7 小时前
#每日一题19 回溯 + 全排列思想
java·开发语言·python·算法·leetcode
Benny_Tang7 小时前
题解:CF2164C Dungeon
c++·算法