27、matlab傅里叶变换:fft()函数

2024-06-06 09:20

本文主要是介绍27、matlab傅里叶变换:fft()函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、fft  快速傅里叶变换

语法

Y = fft(X) 使用快速傅里叶变换 (FFT) 算法计算 X 的离散傅里叶变换 (DFT)。
Y = fft(X,n) 返回 n 点 DFT。
Y = fft(X,n,dim) 返回沿维度 dim 的傅里叶变换。例如,如果 X 是矩阵,则 fft(X,n,2) 返回每行的 n 点傅里叶变换含噪信号

1)原始信号加噪声

代码

Fs = 1000;                          
T = 1/Fs;                   
L = 1500;             
t = (0:L-1)*T;  
%振幅为 0.8 的 DC 偏移量、振幅为 0.7 的 50 Hz 正弦量和振幅为 1 的 120 Hz 正弦量。
%w/2Pi=频率
S = 0.8 + 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
%均值为零、方差为 4 的随机噪声扰乱该信号。
X = S + 2*randn(size(t));
plot(1000*t,X)
title("信号加噪声")
xlabel("毫秒")
ylabel("幅度")

视图效果

 2)傅里叶变换显示正频率部分

代码

Y = fft(X);%傅里叶变换
plot(Fs/L*(0:L-1),abs(Y))%复数求模
title("FFT正频率部分")
xlabel("Hz")
ylabel("|fft(X)|")

视图效果

 

3)傅里叶变换显示全频率部分 

代码

%该图显示五个频率峰值,包括 DC 偏移量在 0 Hz 处的峰值。
%在此示例中,信号预计在 0 Hz、50 Hz 和 120 Hz 处有三个
%频率峰值。此处,绘图的后半部分是前半部分的镜像,
plot(Fs/L*(-L/2:L/2-1),abs(fftshift(Y)))%fftshift 显示正负频率
title("FFT全频率部分")
xlabel("Hz")
ylabel("|fft(X)|")

视图效果

4) 精确检索振幅

代码

%采用原始的、未破坏信号的傅里叶变换并检索精确振幅在 0.8、0.7 和 1.0 处。
f = Fs/L*(0:(L/2));
Y = fft(S);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);plot(f,P1) 
title("检索结果")
xlabel("Hz")
ylabel("|P1(f)|")

视图效果

2、 高斯脉冲

1)时域脉冲信号

代码

%高斯脉冲
Fs = 44100;         
T = 1/Fs;           
t = -0.5:T:0.5;    
L = length(t);     
X = 1/(0.4*sqrt(2*pi))*(exp(-t.^2/(2*(0.1*1e-3)^2)));
plot(t,X)
title("时域脉冲信号")
xlabel("t")
ylabel("X(t)")
axis([-1e-3 1e-3 0 1.1])

视图效果

2)傅里叶变换

代码

n = 2^nextpow2(L);%2次幂输入长度
Y = fft(X,n);
f = Fs*(0:(n/2))/n;
P = abs(Y/sqrt(n)).^2;
plot(f,P(1:n/2+1)) 
title("高斯脉冲")
xlabel("Hz")
ylabel("|P(f)|")

视图效果

 

 3、余弦波

1)时域效果

代码

%3余弦波
Fs = 1000;                    
T = 1/Fs;                  
L = 1000;                    
t = (0:L-1)*T;
x1 = cos(2*pi*50*t);          
x2 = cos(2*pi*150*t);        
x3 = cos(2*pi*300*t);         
X = [x1; x2; x3];
subplot(3,1,1)
plot(t(1:100),X(1,1:100))
title('50HZ时序')
subplot(3,1,2)
plot(t(1:100),X(2,1:100))
title('150HZ时序')
subplot(3,1,3)
plot(t(1:100),X(3,1:100))
title('300HZ时序')

视图效果

 2)傅里叶变换

代码

dim = 2;%行方向
Y = fft(X,L,dim);
P2 = abs(Y/L);
P1 = P2(:,1:L/2+1);
P1(:,2:end-1) = 2*P1(:,2:end-1);
subplot(3,1,1)
plot(0:(Fs/L):(Fs/2-Fs/L),P1(1,1:L/2))
title('50HZ傅里叶变换')
subplot(3,1,2)
plot(0:(Fs/L):(Fs/2-Fs/L),P1(2,1:L/2))
title('150HZ傅里叶变换')
subplot(3,1,3)
plot(0:(Fs/L):(Fs/2-Fs/L),P1(3,1:L/2))
title('300HZ傅里叶变换')

视图效果 

 5、正弦波相位

1)正弦波傅里叶变换

代码

Fs = 100;
t = 0:1/Fs:1-1/Fs;
x = cos(2*pi*15*t - pi/4) + cos(2*pi*40*t + pi/2);
y = fft(x);
z = fftshift(y);ly = length(y);
f = (-ly/2:ly/2-1)/ly*Fs;
stem(f,abs(z))
title("傅里叶双边显示")
xlabel("Frequency (Hz)")
ylabel("|y|")

视图效果

2)相位获取

代码

1tol = 1e-6;
z(abs(z) < tol) = 0;
theta = angle(z);stem(f,theta/pi)
title("相位频率图")
xlabel("Hz)")
ylabel("频率")

视图效果

 

这篇关于27、matlab傅里叶变换:fft()函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1035705

相关文章

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

Python get()函数用法案例详解

《Pythonget()函数用法案例详解》在Python中,get()是字典(dict)类型的内置方法,用于安全地获取字典中指定键对应的值,它的核心作用是避免因访问不存在的键而引发KeyError错... 目录简介基本语法一、用法二、案例:安全访问未知键三、案例:配置参数默认值简介python是一种高级编