基于FFT的信号频谱分析

article/2025/8/10 2:08:11

设计要求

  1. 用MATLAB产生正弦波及白噪声信号,并显示各自时域波形图。
  2. 进行FFT变换,显示各自频谱图。
  3. 做出两种种信号的均方根图谱,功率图谱,以及对数方均根图谱。
  4. 用IFFT傅里叶反变换恢复信号,并显示时域波形图

正弦波的信号频谱分析

正弦波源代码

clear all
clc
%*************************生成正弦信号************************% fs=100; %采样频率 N=128; %采样总点数 n=0:N-1; %各个采样点 f0=10; %正弦信号频率 t=n/fs; %1/fs是采样周期,采样了128此,相对应得采样时刻 x=sin(2*pi*f0*t); %生成正弦信号

%********************绘图*****************
figure
subplot(231);
plot(t,x);
xlabel('时间/s');
ylabel('幅值');
title('时域的波形');
grid on;

%**********FFT变换并画出频谱图******************
y=fft(x,N);%计算x的N点快速傅里叶变换
FuZhi=abs(y); %幅值计算
f=(0:length(y)-1)*fs/length(y); %将横坐标转化,显示为频率f= n*(fs/N)
subplot(232);
plot(f,FuZhi);
axis([0 100 0 80]);%设置当前坐标轴 x轴 和 y轴的限制范围
xlabel('频率/Hz');
ylabel('幅值');
title('FFT变化后幅频谱图');
grid on

%***********均方根谱**************
z=abs(y);
subplot(233);
plot(f,z);
xlabel('频率/Hz');
ylabel('幅值');
title('均方根谱');
grid on

%**********************功率谱*************
power=z.^2;
subplot(234);
plot(f,power);
xlabel('频率/Hz');
ylabel('幅值');
title('功率谱');
grid on

%***********对数谱******************
ln=log(z);
subplot(235);
plot(f,ln);
xlabel('频率/Hz');
ylabel('幅值');
title('对数谱');
grid on

%**********IFFT恢复出原始信号********************
xifft=ifft(y);
magx=real(xifft);
t1=(0:length(xifft)-1)/fs; %N/fs对应各个点的采样时间点
subplot(236);
plot(t1,magx);
xlabel('时间/t');
ylabel('幅值');
title('IFFT恢复出来的波形');
grid on

图像显示

在这里插入图片描述

白噪声的信号频谱分析

白噪声源代码

%*****************白噪声******************
fs=50; %采样频率
t=-5:0.1:5; %采样时间
x=rand(1,100); %产生1*100的随机矩阵
figure
subplot(231);
plot(t(1:100),x); %采用100个时间点
xlabel('时间/s');
ylabel('幅值');
title('时域波形');
grid on

%************FFT变化并做频谱图***********
y=fft(x);
FuZhi=abs(y);
f=(0:length(y)-1)*fs/length(y); %x坐标设为频率
subplot(232);
plot(f,FuZhi); xlabel('频率/Hz');
ylabel('幅值');
title('FFT变换的频域波形');
grid on

%************均方根谱************
z=abs(y);
subplot(233);
plot(f,z);
xlabel('频率/Hz');
ylabel('均方根谱');
title('均方根谱');
grid on

%**************功率谱**************
power=z.^2;
subplot(234);
plot(f,power);
xlabel('频率/Hz');
ylabel('功率谱');
title('功率谱');
grid on

%************对数谱**********
ln=log(z);
subplot(235);
plot(f,ln);
xlabel('频率/Hz');
ylabel('对数谱');
title('对数谱');
grid on

%***************IFFT恢复************
xifft=ifft(y);
mag=real(xifft);
ti=(0:length(xifft)-1)/fs;
subplot(236);
plot(ti,mag);
xlabel('时间/s');
ylabel('幅值');
title('IFFT恢复后的波形');
grid on

图像显示

在这里插入图片描述


http://chatgpt.dhexx.cn/article/Rx7eTYVW.shtml

相关文章

近代数字信号处理实验-DFT分析信号的频谱

一、实验目的 (1)掌握利用DFT近似计算不同类型信号频谱的原理和方法。 (2)理解误差产生的原因及减小误差的方法。 (3)培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。 二、…

Matlab中利用FFT实现信号频谱搬移

目录 Matlab中利用FFT实现信号频谱搬移只有实部的频谱搬移只有虚部的频谱搬移复函数下的频谱搬移 Matlab中利用FFT实现信号频谱搬移 在fft的理论中,fft的频移特性表示为: 也就是说,要想对信号f(t)实现频域的频谱搬移&…

转|周期矩形脉冲信号频谱及特点

周期矩形波信号及其频谱 如图所示信号为脉冲宽度τ,脉冲幅度A,周期为T的周期矩形脉冲信号。 上述周期矩形脉冲信号的傅里叶系数推导可参考占空比任意方波的傅里叶级数展开最终化简可得到下面的表达式。 由此式可得知,该信号频谱谱线大致按照…

用Matlab求余弦信号的频谱

如果你是电子信息类专业的学生,一定对频谱这个词听过无数次了,当然求频谱的方法之一就是可以采取快速傅里叶的方法,今天来给大家介绍一种用Matlab对余弦信号求频谱的实际操作。 第一步:构建原始余弦信号 Matlab代码如下&#xf…

2、信号与频谱

2.1、概述 信号传输的实质:信息传输的过程就是信号变换和处理的过程。如何观察信息传输过程中信号发生了什么变化? 一种方法是在时域 观察信号波形的变化,另一种方法是在频域观察信号频谱的变化。最常见的基本信号:正弦信号。 2…

matlab画信号频谱

为了让大学生活充实一点,多学点东西,我选修了《数字信号处理》。现在充实得不要不要的。 clc close all clear%参数设置% Fs 1000; % Sampling frequency T 1/Fs; % Sampling period L 1500; …

利用DFT分析信号频谱【信号与系统二】

利用DFT分析信号频谱 1. 利用FFT分析信号频谱2. 产生一个淹没在噪声中的信号x(t),分析信号的频谱3. 利用有限项分析三角波信号4. 利用频域分析方法,重新对第一次实验时的含噪信号进行滤波处理5. 通过频谱分析,识别电话拨号音的电话号码6. 试着…

信号与系统(3)——周期矩形脉冲信号频谱及特点

周期矩形脉冲 如图所示信号为脉冲宽度τ,脉冲幅度A,周期为T的周期矩形脉冲信号。 傅里叶变换推导 上述周期矩形脉冲信号的傅里叶系数推导方式如下: 由此式可得知,该信号频谱谱线大致按照采样函数(Sa(t))…

冲激信号的卷积性质采样信号频谱的周期性延拓

文章目录 1. 冲激信号的卷积2. 性质:3. 仿真验证: 1. 冲激信号的卷积 由冲激信号的卷积性质可知:冲激信号具有显像性。 任何信号对单位冲激函数的卷积等于该信号本身,那么单位冲激函数就相当于是一种“显像”信号,当冲激函数对冲激…

Matlab使用fft画出信号频谱(详细注释)

做雷原作业,需要对信号进行频谱分析,网上一搜太乱了,很多不是我想要的,特此整理。 DSP还没学到fft,就不对fft原理进行详细解释了,直接上代码。 fs500;%采样率 f15;%信号频率 f210;%信号频率 T1;%时宽1s nr…

连续信号频域分析:功率信号的频谱与能量信号频谱密度

频域分析: 周期信号非周期信号频谱(离散)频谱密度(也称频谱,连续)功率谱密度能量谱密度 周期信号and非周期信号幅度谱都是偶函数。 一、功率(周期)信号的频谱 认为周期信号为功率信号、非周期信号为能量 信号 1.1周期信号的虚指数/三角傅里…

FFT_频谱分析(数字信号处理)

~~ 如果有什么问题可以在我的个人博客留言 ,我会及时回复。欢迎来访交流 ~~ FFT_频谱分析(数字信号处理) (一)实验原理 用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时…

数字信号处理(matlab)——FFT对信号频谱分析

FFT频谱分析法 频谱分辨率D FFT能够实现的频率分辨率是2pi/N 要求2pi/N≤D 误差主要来自于用FFT做频谱分析时,得到的是离散谱,但是信号是连续谱,只有当N较大时,离散谱的包络才能逼近离散谱,因此N要大一些。 为了方便读…

matlab信号频谱分析FFT详解

前言 做OFDM通信少不了频谱分析,基带信号DA后的频谱,以及基带数字上变频后的DA信号都要频谱分析。我觉得其实做任何工程都是这样,先规定实施方案,然后仿真成功,再实际开发,不过也可以一边开发,…

信号与频谱

身为一名通信专业出生的我,居然淡忘了信号的基本知识,今天带大家回顾一下,通俗易懂。 信号(singal)简介 我们在生活中经常遇到信号。比如说,股票的走势图,心跳的脉冲图等等。在通信领域,无论是的GPS、手机…

【信号与系统】笔记(3-2)信号的频谱与傅里叶变换(一图看懂傅里叶变换)

Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性! 文章目录 一图看懂傅里叶变换前言一、周期信号的频谱1、周期信号频谱的相关概念2、周期信号频谱的特点3、谱线的结构与波形参数的关系 二、非周期信号的频谱…

信号频谱

2019独角兽企业重金招聘Python工程师标准>>> 频谱是指一个时域的信号在频域下的表示方式,可以针对信号进行傅里叶变换而得,所得的结果会是以分别以幅度及相位为纵轴,频率为横轴的两张图,不过有时也会省略相位的信息&am…

晋南讲堂之持久层框架ORM简介

1. 什么是ORM? ORM全称 Object/Relation Mapping,即对象/关系映射,它完成了面向对象语言到关系型数据库的映射,作用是把对持久化对象(POJO,Plain Old Java Object)的保存、修改、删除等操作转换成对数据库的操作,是两者…

持久层框架的比较Hibernate与 MyBatis 胡俊铭

最近网上 看到很多人质疑....现在好多Web项目用了MyBatis,没感觉MyBatis好到哪里了,从开发效率上讲,不管是Hibernate的反向工程,还是自动建表,关联映射都比MyBatis方便得多。难道仅仅是因为运行速度,Hibernate也有缓存啊。或者,二者适用场合不同,再或者,MyBatis就是比…

一起来学SpringBoot(七)持久层框架

springboot具有非常棒的持久层框架支持,下面我将介绍我用过的三种持久层框架进行简述使用。 由于这里操作的都是一张表,这里贴出通用的yml和建表语句 切记这里使用的是mysql8 ,5.8之前的朋友请修改后缀去掉com.mysql.cj.jdbc.Driver 中的cj。…