例子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

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

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

%%

%现在,对原始的,未被损坏的信号进行傅里叶变换,并得到准确的振幅,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

加上一点自己的理解。

例子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

%%

%要使用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

例子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

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

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

傅里叶变换matlab案例,基于matlab的傅里叶变换相关推荐

  1. Matlab:基于Matlab实现人工智能算法应用的简介(SVM支撑向量机GA遗传算法PSO粒子群优化算法)、案例应用之详细攻略

    Matlab:基于Matlab实现人工智能算法应用的简介(SVM支撑向量机&GA遗传算法&PSO粒子群优化算法).案例应用之详细攻略 目录 1.SVM算法使用案例 1.1.Libsvm ...

  2. Matlab:基于Matlab实现人工智能算法应用的简介(BP神经网络算法NN、SOFM神经网络)、案例应用(基于Matlab的GUI的方式创建/训练/预测神经网络)之详细攻略

    Matlab:基于Matlab实现人工智能算法应用的简介(BP神经网络算法NN.SOFM神经网络).案例应用(基于Matlab的GUI的方式创建/训练/预测神经网络)之详细攻略 目录

  3. Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别

    Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别 目录 车牌图像数据集 视频动态演示 核心代码 相关文章 Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别 Matl ...

  4. ip iq 谐波检测matlab仿真,基于Matlab的低压电力系统谐波检测方法仿真研究

    基于Matlab的低压电力系统谐波检测方法仿真研究 1 前言 随着科学技术的发展,随着工业生产水平和人民生活水平的提高,非线性用电设备在电网中大量投运,造成了电网的谐波分量占的比重越来越大.它不仅增加 ...

  5. 扫描电镜图片的Matlab分析,基于Matlab的图像增强与复原技术在SEM图像中的应

    0引  言 根据国内外的相关文献,研究和发展图像处理工具,改善图像质量是当今研究的热点.图像增强与复原是一种基本的图像处理技术.其按照特定的需要突出一幅图像中的某些信息或强化某些感兴趣的特征,将原来不 ...

  6. 去除噪声 matlab 论文,基于MATLAB的语音去噪开题报告

    基于MATLAB的语音去噪开题报告 毕业设计(论文)开题报告 基于MATLAB的语音去噪 综述国内外对本课题的研究动态,说明选题的依据和意义 20世纪60年代中期形成的一系列数字信号处理的理论和算法, ...

  7. 功率谱密度相关方法的matlab实现,基于Matlab功率谱密度估计方法

    基于Matlab功率谱密度估计方法 摘要 在实际情况下, 许多平稳信号无法导出数学表达式, 要准确获取这些信号的功率谱密度存在一定的困难.根据维纳-辛钦 (Wiener Khintchine)定理,提 ...

  8. 图像有损压缩matlab程序,基于Matlab的灰度图像DCT与RLE的混合有损压缩

    人工智能及识别技术本栏目责任编辑:唐一东第5卷第21期(2009年7月)基于Matlab 的灰度图像DCT 与RLE 的混合有损压缩 朱玲芳,刘任任 (湘潭大学信息工程学院,湖南湘潭411105) 摘 ...

  9. 码分复用的matlab仿真,基于matlab的多路时分复用仿真.doc

    基于matlab的多路时分复用仿真 通信系统原理综设实验报告 多路时分复用matlab仿真系统 教师评语: 引言 在实际的通信系统中,为了扩大通信链路的容量,提高通信系统的利用率,需要在一条链路上传输 ...

最新文章

  1. Android更改浮动操作按钮颜色
  2. 跨域、ContentType组件
  3. android之下载416错误
  4. 201521123031 《Java程序设计》第6周学习总结
  5. php字符传截取,php怎么实现字符串截取?
  6. 阿里P8架构师谈:微服务Dubbo和SpringCloud架构设计、优劣势比较
  7. 从 Windows 换到 Mac,真没有想象中的那么难
  8. React学习笔记一 JSX语法组件
  9. js 内置对象之数组Array
  10. mysql 断号查询_怎么查询SQL中连续编号中间的断号
  11. 【python】isinstance可以接收多个类型,hasattr,getattr,setattr
  12. 【C#】使用OWIN创建Web API
  13. Linux编程基础之Makefile的使用
  14. 如何在eclipse中新建java web项目,并且生成的是WebRoot目录而不是WebContent
  15. 关注幼儿教育,找到家园沟通“最大公约数”
  16. 台达变频器s1参数设置_台达变频器的参数设定步骤
  17. Flexbox布局基础入门
  18. 南宁琅东的机器人餐厅_南宁这几家私房菜藏得深,人气却只增不减,真是菜香不怕巷子深~...
  19. 如何训练好一个神经网络?
  20. 量子竞赛下一步:在应用中体现量子优势

热门文章

  1. openssl 生成证书_CentOS7 httpd(Apache)SSL 证书部署
  2. android怎么设置适配器,Android之自定义实现BaseAdapter(通用适配器三)
  3. mysql show profile详解_SQL 性能分析利器 show profile
  4. c语言怎样用格式化文件存储,如何用格式化的方式读写文件
  5. cgi php脚本运行超时间,php超时 - php-cgi调用外部程序超时,但php在命令行模式下能完整运行外部程序...
  6. SSL双向认证和SSL单向认证的区别
  7. oracle的buffercache
  8. 大型网站的HTTPS实践:基于协议和配置的优化
  9. typescript或javascript深拷贝Object json
  10. 6、EIGRP配置实验之负载均衡