傅里叶变换matlab案例,基于matlab的傅里叶变换

例子1

作用:使用傅里叶变换找出隐藏在噪声中的信号的频率成分。(指定信号的参数,采样频率为1 kHz,信号持续时间为1秒。)

Fs = 1000; % 采样频率

T = 1/Fs; % 采样周期

L = 1000; % 信号长度

t = (0:L-1)*T; % 时间向量

%%形成一个信号,包含振幅为0.7的50hz正弦信号和振幅为1的120hz正弦信号。

S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);

X = S + 2*randn(size(t)); %用零均值的白噪声破坏信号,方差为4。

plot(1000*t(1:50),X(1:50))

title('Signal Corrupted with Zero-Mean Random Noise')

xlabel('t (milliseconds)')

ylabel('X(t)')1234567891011121314

a5693bf3225c87f517b895c7a1de8f6b.bmp

由上图可知:从时域中我们很难观察到信号的频率成分。怎么办呢?当然使用强大的傅里叶变换。

Y = fft(X); %计算傅里叶变换,X是加噪后的信号

%%

%计算双边谱P2。然后计算基于P2的单面谱P1和偶值信号长度L。(不太理解。。。)

P2 = abs(Y/L);

P1 = P2(1:L/2+1);

P1(2:end-1) = 2*P1(2:end-1);

%%

%定义频率域f并绘制单面振幅谱P1。由于增加的噪音,振幅不完全是0.7和1。平均而言,较长的信号产生更好的频率近似。

f = Fs*(0:(L/2))/L;

plot(f,P1)

title('Single-Sided Amplitude Spectrum of X(t)')

xlabel('f (Hz)')

ylabel('|P1(f)|')123456789101112131415

b5585410b1976f97a71c6c662f3c79da.bmp

%%

%现在,对原始的,未被损坏的信号进行傅里叶变换,并得到准确的振幅,0.7和1.0。

Y = fft(S); %S时原始的,没有加噪的信号。

P2 = abs(Y/L);

P1 = P2(1:L/2+1);

P1(2:end-1) = 2*P1(2:end-1);

plot(f,P1)

title('Single-Sided Amplitude Spectrum of S(t)')

xlabel('f (Hz)')

ylabel('|P1(f)|')1234567891011

f39981b4f7898543a0144176fe4f9aa4.bmp

加上一点自己的理解。

68276dd844f83a5eb5c11c6eef723f20.png

例子2

作用:利用傅里叶变换,将高斯脉冲从时域转换为频域。

Fs = 100; % Sampling frequency

t = -0.5:1/Fs:0.5; % Time vector

L = length(t); % Signal length

X = 1/(4*sqrt(2*pi*0.01))*(exp(-t.^2/(2*0.01)));

plot(t,X)

title('Gaussian Pulse in Time Domain')

xlabel('Time (t)')

ylabel('X(t)')12345678910

d9eaaec5ec49628740ea229f231d18fc.bmp

%%

%要使用fft函数将信号转换为频域,首先要确定一个新的输入长度,该输入长度是原信号长度的下一个2次方。

%为了提高fft的性能,这将使信号X以尾随零的形式出现。

n = 2^nextpow2(L);

Y = fft(X,n);

f = Fs*(0:(n/2))/n;

P = abs(Y/n);

plot(f,P(1:n/2+1))

title('Gaussian Pulse in Frequency Domain')

xlabel('Frequency (f)')

ylabel('|P(f)|')12345678910111213

6e2821e4e1a9b2c9f51b06b7f223f84b.bmp

例子3余弦波

比较时域和频域的余弦波。指定信号的参数,采样频率为1kHz,信号持续时间为1秒。

Fs = 1000; % Sampling frequency

T = 1/Fs; % Sampling period

L = 1000; % Length of signal

t = (0:L-1)*T; % Time vector

x1 = cos(2*pi*50*t); % First row wave

x2 = cos(2*pi*150*t); % Second row wave

x3 = cos(2*pi*300*t); % Third row wave

X = [x1; x2; x3];

for i = 1:3

subplot(3,1,i)

plot(t(1:100),X(i,1:100))

title(['Row ',num2str(i),' in the Time Domain'])

end12345678910111213141516

098f3e6c0b5ab12ff22369d5f57bb0a9.bmp

n = 2^nextpow2(L);

dim = 2;

Y = fft(X,n,dim);

P2 = abs(Y/n);

P1 = P2(:,1:n/2+1);

P1(:,2:end-1) = 2*P1(:,2:end-1);

for i=1:3

subplot(3,1,i)

plot(0:(Fs/n):(Fs/2-Fs/n),P1(i,1:n/2))

title(['Row ',num2str(i), ' in the Frequency Domain'])

end1234567891011

23479fcdadb9edea6f1ed229492df7e9.bmp

原文:https://www.cnblogs.com/kolane/p/11537943.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jquery-1.10.2.min.map是什么,怎么用?

jquery-1.10.2.min.map是什么,怎么用?转载于:https://www.cnblogs.com/suoking/p/5545220.html

python点击按钮改变图片_单击tkinter按钮时更改图片

点击了python和一些按钮后,会产生一些颜色变化的按钮当单击按钮时,是否可以更改按钮使用的.gif?我希望它在GPIO引脚关闭时显示ON,在GPIO引脚打开时显示off。在目前我有:#BCM17GPIO.setup(17,GPIO.OUT)colour17StringVa…

WEB渗透—PHP反序列化(八)

Web渗透—PHP反序列化 课程学习分享(课程非本人制作,仅提供学习分享) 靶场下载地址:GitHub - mcc0624/php_ser_Class: php反序列化靶场课程,基于课程制作的靶场 课程地址:PHP反序列化漏洞学习_哔哩…

php拼接xml特殊字符不显示,使用PHP的XML特殊字符

这里不需要编码这些字符. XML字符串可以使用UTF-8或其他编码.根据编码,序列化器将根据需要进行编码.$foo new SimpleXmlElement(<?xml version"1.0" encoding"UTF-8"?>);$foo->addChild(bar, μmol/l, x10 cells/l);echo $foo->asXml();输出…

JBPM工作流入门总结

关于JBPM工作流 1、工作流 工作流是一项分离业务操作和系统流程的技术。工作流由实体(Entity)、参与者(Participant)、流程定义(Flow Definition)、工作流引擎(Engine) 四部分组成。 ① 实体是工作流的主体,是需要随着工作流一起流动的物件(Object)。例如,在一个采购申请批准流…

python打印九九加法表_Python小脚本

1、跑马灯效果跑马灯import osimport timedef main():content人生苦短&#xff0c;我用python....while True:os.system(cls)print(content)time.sleep(0.2)contentcontent[1:]content[0]#if __name____main__:main()2、录入员工姓名及联系方式&#xff0c;并根据姓名进行查询z…

php ues incolde,17秋东财《大学英语2》在线作业三答案

东财《大学英语2》在线作业三试卷总分:100 得分:0一、 单选题 (共 25 道试题,共 100 分)1. My brother is four years older than me and someone I look _____ to, even though he is shorter than me.A. upB. downC. belowD. over满分&#xff1a;4 分2. Newman: I hav…

如何部署 Hyperic ,使得从内网监测外网服务器

2019独角兽企业重金招聘Python工程师标准>>> 环境介绍&#xff1a; 外网服务器&#xff1a; www.InnovateDigital.com 用户名/密码 test/test 内网服务器&#xff1a;192.168.1.125 操作系统都是 Centos 7 64bit 过程&#xff1a; 下载 Hyperic 5.8.5 &#xff0c…

tcp 发送 最大数据量_网络基础知识夯实总结(三):TCP协议

近期分享的网络知识包括HTTP协议、DNS协议、HTTPS协议、TCP协议、IP协议、TCP/IP、Web攻击及其他协议。今天内容是TCP协议。TCP协议1. 传输层2. 作用提供可靠的字节流服务3. 大块数据分割成报文段(segment)4. 三次握手1) 发送端发带SYN标志的数据包给对方。2) 接收端收到后&…

安卓开发语言php,go语言支持安卓开发吗

go语言支持安卓开发。使用golang开发android需要下载安装gomobile&#xff0c;然后有两种开发方式&#xff0c;分别为&#xff1a;1、原生应用开发&#xff1b;2、混合绑定开发。本教程操作环境&#xff1a;windows10系统、GO 1.11.2、thinkpad t480电脑。大概14年的时候go语言…

解决python连接mysql,UTF-8乱码问题

在测试“Bluemix云端数据库服务ClearDB MySQL使用示例———Python开发投票程序”的程序时&#xff0c;从MySQL中读取的中文输出到网页显示都是问号&#xff0c;如下图&#xff1a; 解决方法&#xff1a; 产生乱码问题&#xff0c;通常都是由于几方面的编码不统一导致的&#x…

python伪代码书写规范_代码这样写更优雅(Python 版)(转载)

Python 这门语言最大的优点之一就是语法简洁&#xff0c;好的代码就像伪代码一样&#xff0c;干净、整洁、一目了然。但有时候我们写代码&#xff0c;特别是 Python 初学者&#xff0c;往往还是按照其它语言的思维习惯来写&#xff0c;那样的写法不仅运行速度慢&#xff0c;代码…

php处理ajax post请求超时,php – 如何处理AJAX请求中的会话超时

考虑返回一个http状态为401,一个JSON对象详细说明原因.如果你正在使用jQuery,那么你将会丢失你的error()回调,然后你可以解析你的对象.$.ajax({data: {},dataType: html,success: function(data) {// do whatever here},type: POST,url: myserver.com,error: function(XMLHttpR…

python三元表达式求值_python 三元表达式的 列表推导式 生成器推导式

python中三元表达式的语法如下 if elseresult x if condition else y另外一种三元表达式&#xff0c;比较少见result (x, y)[condition]列表推导式 〉循环python中列表推导式用于使用其他列表创建一个新列表。其基本形式为&#xff1a; [表达式 for 变量 in 列表]list_1_10 …

php 同一行,php – 如何在同一行中对类方法进行多个调用?

通过“ – >”逐个调用类的功能的方式因为该函数返回同一个对象的类.见下面的例子.你会得到这个class Wke {public $type;public $errno;public $msg;public $page;public $template $this;public function notify(){return $this;}public function errorno($error){$this-…

PHP数组

//常用函数//生成随机数echo rand(1,10);//两个参数来确定随机数的范围,必须要两个参数 //日期时间函数var_dump(time());//取当前时间的UNIX时间戳echo date("Y-m-d H:i:s",time());//格式化日期时间戳echo date("Y-m-d H:i:s");//省掉第二个参数&#xf…

pycharm python部署_使用PyCharm配合部署Python的Django框架的配置纪实

安装软件安装 Python 2.7、PyCharm、pip(Python包管理工具)、Django ( pip install Django)部署PyCharm 新建Django工程完成后&#xff0c;其目录如下&#xff1a;子目录MyDjangoProject下表示工程的全局配置&#xff0c;分别为setttings.py、urls.py和wsgi.py,其中setttings.p…

php商品在最少购买,ECSHOP给商品设置最少购买数量的方法

ecshop后台默认没有给商品设置最小起订量或者最少购买量的功能。保哥在使用ecshop做一个商城时&#xff0c;要给商品设置包邮来吸引买家&#xff0c;但又不想买家购买一件产品也给包邮&#xff0c;这样很容易亏本。对于价值较高的商品有一定的利润空间设置包邮是合情合理的&…

Crawler - 如何爬取列表后进行文章的爬取

2019独角兽企业重金招聘Python工程师标准>>> 已知BUG&#xff1a;(version:5) 1-爬取后生成的XML默认编码是Java环境决定导入数据库可能出问题 方法修改xml编码后导入 重点CL 和 CI命令 CL 是爬取List列表 会通过file生成文件 CI 中file是CL执行后生存的File文件 CL…

程序员出差是去干什么_让我来告诉你,35岁以上的人都在干什么!

欢迎关注专栏&#xff1a;里面定期分享Android和Flutter架构技术知识点及解析&#xff0c;还会不断更新的BATJ面试专题&#xff0c;欢迎大家前来探讨交流&#xff0c;如有好的文章也欢迎投稿。Android高级进阶​zhuanlan.zhihu.com让我来告诉你&#xff0c;35岁以上的人都在干什…