傅里叶变换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,一经查实,立即删除!

相关文章

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

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

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

2019独角兽企业重金招聘Python工程师标准>>> 环境介绍: 外网服务器: www.InnovateDigital.com 用户名/密码 test/test 内网服务器:192.168.1.125 操作系统都是 Centos 7 64bit 过程: 下载 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,然后有两种开发方式,分别为:1、原生应用开发;2、混合绑定开发。本教程操作环境:windows10系统、GO 1.11.2、thinkpad t480电脑。大概14年的时候go语言…

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

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

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

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

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

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

opencv入门_【OpenCV入门之十八】通过形态学操作提取水平与垂直线

小白导读学习计算机视觉最重要的能力应该就是编程了,为了帮助小伙伴尽快入门计算机视觉,小白准备了【OpenCV入门】系列。新的一年文章的内容进行了很大的完善,主要是借鉴了更多大神的文章,希望让小伙伴更加容易理解。如果小伙伴觉…

【译】NoClassDefFoundError和ClassNotFoundException的不同

本文翻译自:Difference between NoClassDefFoundError vs ClassNotFoundExcepiton in Java 如果JVM或者ClassLoader在加载类时找不到对应的类,就会引发NoClassDefFoundError和ClassNotFoundException,这两种错误都非常严重。由于不同的ClassL…

Ubuntu上安装Robomongo及添加到启动器

到目前为止,Robomongo仍是MongoDB最好的客户端管理工具,如需在Ubuntu上安装Robomongo,可直接从官网下载.tar.gz压缩包进行解压,然后直接运行bin目录下的robomongo文件即可启动界面。例如我将下载下来的.tar.gz压缩包解压到/usr/lo…

pagefile.sys and heberfil.sys

dub 删除heberfil.sys大文件的方法 方法1:Windows/system32中的cmd.exe 输入 powercfg -h off,即可关闭休眠功能,同时 Hiberfil.sys 文件也会自动删除。 方法2:运行命令gpedit.msc打开策略组 依次打开Computer Configuration——Administrative Template…

加密生成指定长度_3分钟短文 | PHP伪随机Token生成器,实地测试,效果感人!

引言我们经常可能会用到邀请码,邮件验证码,或者需要使用unique 字符串标记用户属性的情况。今天我们且不说高深的“全局唯一ID”的生成方案,我们说一个简单的,如何生成一个唯一的,随机的,数组字母组成的字符…

《Java高级程序设计》期末作业【2】-进度安排

计算器项目计划进度安排: 项目成员:潘世林 何青 柴晓光 张峰转载于:https://www.cnblogs.com/panshilin/p/5578496.html

python find不区分大小写_牛鹭学院:Python基础了解

本文来自牛鹭学院学员:田雨python初印象Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python 是交互式语言: 在一个 Python 提示符 >>> 后直接执行代码。Python 是面向对象语言: 这意味着…

Spring+Quartz(一)

2019独角兽企业重金招聘Python工程师标准>>> Quartz是一个非常优秀的任务调度引擎,详情请见官网:http://www.quartz-scheduler.org/ 而Spring很好地集成了Quartz,为企业级的任务调度提供了方便。 下面先看一个实现了Job接口的任务HelloWorldJ…

linux sudo 版本,Linu下如何升级当前sudo版本

Sudo 的全称是“superuserdo”,它是Linux系统管理指令,允许用户在不需要切换环境的前提下以其它用户的权限运行应用程序或命令,通常是以 root 用户身份运行命令,以减少 root 用户的登录和管理时间,同时提高安全性。该漏…

LaTeX技巧205:使用split输入多行公式技巧

我们在输入多行公式的时候,split,array,multiline,align,aligned等等都是我们可以选用的环境,这里介绍split的使用方法。演示效果图:演示代码:\documentclass{article}\pagestyle{em…

linux纯内核直接用吗,Linux:为啥内核有的变量没有初始化就敢直接使用?

一、问题为啥内核有的变量没有初始化就敢直接使用?二、分析看上图,其中的5747行的变量nid的确没有定义,就直接使用了,这么做没有问题吗?其实大家仔细看一下,5765行是一个宏,到内核源码去找该宏的…

sdr 软件_【火腿专题】购买软件定义无线电(SDR)还是传统无线电台?追求欲望无止境...

软件定义无线电与传统无线电选择作者:Onno VK6FLAB有一段时间,我一直在解释软件无线电(SDR)的一些内部工作方式是如何运作的,以便深入了解原因和方法的细节。这种探索是在一个新世界的背景下进行的,在这个世界里,有无数…

linux文本运行层次,Linux基础知识之---文件系统层级结构

#Linux基础知识之---文件系统层级结构(Linux系统)[基础知识,文件系统,层级结构,FHS]一切皆文件: 在Linux中,无论是目录、配置、cpu、内存、键盘、鼠标、或者运行中的系统及内核、甚至临时缓存也都有对应的文件。“一切…