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

例1

x(n)=R4(n)
选择FFT的变换区间N为8和16进行频谱分析

clc
close all;
clear all;xn=[ones(1,4)];
X8k=fft(xn,8);n=0:7;
wk=2*n/8;
subplot(1,2,1);
stem(wk,abs(X8k),'.','r');
title('8 point DFT[x(n)]');
xlabel('\omega/\pi');
ylabel('amplitude');
axis([0,2,0,1.2*max(abs(X8k))]);n=0:15;
wk=2*n/16;
X16k=fft(xn,16);
subplot(1,2,2);
stem(wk,abs(X16k),'.','r');
title('16 point DFT[x(n)]');
xlabel('\omega/\pi');
ylabel('amplitude');
axis([0,2,0,1.2*max(abs(X16k))]);


x(n)的频谱函数8点和16点采样(8点DFT和16点DFT)

例2


选择FFT的变换区间N为8和16进行频谱分析

clc
close all;
clear all;
xa=1:4;
xb=4:-1:1;
xn=[xa,xb];
X8k=fft(xn,8);n=0:7;
wk=2*n/8;
subplot(1,2,1);
stem(wk,abs(X8k),'.','r');
title('8 point DFT[x(n)]');
xlabel('\omega/\pi');
ylabel('amplitude');
axis([0,2,0,1.2*max(abs(X8k))]);n=0:15;
wk=2*n/16;
X16k=fft(xn,16);
subplot(1,2,2);
stem(wk,abs(X16k),'.','r');
title('16 point DFT[x(n)]');
xlabel('\omega/\pi');
ylabel('amplitude');
axis([0,2,0,1.2*max(abs(X16k))]);

例3


选择FFT的变换区间N为8和16进行频谱分析

clc
close all;
clear all;xa=4:-1:1;
xb=1:4;
xn=[xa,xb];
X8k=fft(xn,8);n=0:7;
wk=2*n/8;
subplot(1,2,1);
stem(wk,abs(X8k),'.','r');
title('8 point DFT[x(n)]');
xlabel('\omega/\pi');
ylabel('amplitude');
axis([0,2,0,1.2*max(abs(X8k))]);n=0:15;
wk=2*n/16;
X16k=fft(xn,16);
subplot(1,2,2);
stem(wk,abs(X16k),'.','r');
title('16 point DFT[x(n)]');
xlabel('\omega/\pi');
ylabel('amplitude');
axis([0,2,0,1.2*max(abs(X16k))]);


x3(n)和x2(n)的8点DFT的模相等,所以图示相同;但是16点不满足循环移位关系,模不同

例4

x(n)=cos(pi*n/4)
选择FFT的变换区间N为8和16进行频谱分析

clc
close all;
clear all;n=0:7;
xn=cos(pi*n/4);
X8k=fft(xn,8);
wk=2*n/8;
subplot(1,2,1);
stem(wk,abs(X8k),'.','r');
title('8 point DFT[x(n)]');
xlabel('\omega/\pi');
ylabel('amplitude');
axis([0,2,0,1.2*max(abs(X8k))]);n=0:15;
xn=cos(pi*n/4);
X16k=fft(xn,16);
wk=2*n/16;
subplot(1,2,2);
stem(wk,abs(X16k),'.','r');
title('16 point DFT[x(n)]');
xlabel('\omega/\pi');
ylabel('amplitude');
axis([0,2,0,1.2*max(abs(X16k))]);


N=8和N=16均是周期的整数倍,只在±0.25pi有1根单一谱线

例5

xn=cos(pin/4)+cos(pin/8)
选择FFT的变换区间N为8和16进行频谱分析

clc
close all;
clear all;n=0:7;
xn=cos(pi*n/4)+cos(pi*n/8);
X8k=fft(xn,8);
wk=2*n/8;
subplot(1,2,1);
stem(wk,abs(X8k),'.','r');
title('8 point DFT[x(n)]');
xlabel('\omega/\pi');
ylabel('amplitude');
axis([0,2,0,1.2*max(abs(X8k))]);n=0:15;
xn=cos(pi*n/4)+cos(pi*n/8);
X16k=fft(xn,16);
wk=2*n/16;
subplot(1,2,2);
stem(wk,abs(X16k),'.','r');
title('16 point DFT[x(n)]');
xlabel('\omega/\pi');
ylabel('amplitude');
axis([0,2,0,1.2*max(abs(X16k))]);


周期为16,N=8不是周期整数倍,所以频谱不正确;N=16是周期,得到正确频谱,仅在±0.25pi和±0.125pi处有两根谱线

例6

x(t)=cos(8pit)+cos(16pit)+cos(20pit)
采样频率Fs=64Hz,变换区间N=16 32 64进行谱分析

clc
clear all;
close all;
Fs=64;
T=1/Fs;subplot(3,1,1)
N=16;
n=0:N-1;
xnT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);
X16k=fft(xnT);
X16k=fftshift(X16k);
Tp=N*T;
F=1/Tp;
k=-N/2:N/2-1;
fk=k*F; %频率分辨率F
stem(fk,abs(X16k),'.');
box on
title('16 point |DFT[x(nT)]|');
xlabel('f(Hz)');
ylabel('amplitude');
axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X16k))]);subplot(3,1,2)
N=32;
n=0:N-1;
xnT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);
X32k=fft(xnT);
X32k=fftshift(X32k);
Tp=N*T;
F=1/Tp;
k=-N/2:N/2-1;
fk=k*F; %频率分辨率F
stem(fk,abs(X32k),'.');
box on
title('32 point |DFT[x(nT)]|');
xlabel('f(Hz)');
ylabel('amplitude');
axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X32k))]);subplot(3,1,3)
N=64;
n=0:N-1;
xnT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);
X64k=fft(xnT);
X64k=fftshift(X64k);
Tp=N*T;
F=1/Tp;
k=-N/2:N/2-1;
fk=k*F; %频率分辨率F
stem(fk,abs(X64k),'.');
box on
title('64 point |DFT[x(nT)]|');
xlabel('f(Hz)');
ylabel('amplitude');
axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X64k))]);


x(t)=cos(8pit)+cos(16pit)+cos(20pit)有3个成分f1=4hz,f2=8hz,f3=10hz,所以周期是0.5s
1.采样频率Fs=64hz,变换区间N=16时,观察时间Tp=16T=0.25s,不是周期整数倍
2.N=32,64时观察时间Tp=0.5s和1s,是周期整数倍,
频谱正确

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

  1. 数字信号处理matlab实验报告,数字信号处理,matlab实验报告

    数字信号处理,matlab实验报告 Matlab实验报告 实验一: 1. 实验Matlab代码: N=25; Q=0.9+0.3*j; WN=exp(-2*j*pi/N); x=zeros(25,1) ...

  2. 数字信号处理 matlab 答案,数字信号处理课后习题Matlab作业

    <数字信号处理课后习题Matlab作业>由会员分享,可在线阅读,更多相关<数字信号处理课后习题Matlab作业(22页珍藏版)>请在人人文库网上搜索. 1.数字信号处理MATL ...

  3. matlab wc wp,数字信号处理MATLAB习题.PDF

    数字信号处理MATLAB习题 数字信号处理MATLAB 习题 电气硕 72 李弘昌 第11 题 分别用脉冲响应不变法和双线性变换法设计一个巴特沃斯型IIR 低通数字滤波器,采样 频率 ,其通带边频 处 ...

  4. 【学习笔记】 matlab数字信号处理(四)信号的频域分析

    第四章.信号的频域分析 4.1 概述 4.1.1 时域分析的局限性 4.1.2 频谱分析的优点 方便对复杂信号进行分析 抗干扰能力强 具有明确的物理意义 4.2 周期信号频谱分析 4.2.1 正交分解 ...

  5. 【信号处理】数字信号处理Matlab设计附GUI界面和报告

    1 简介​ 信号处理是现代信息处理的基本内容,数字信号的处理更是重中之重.数字信号处理的研究内容主要是语音信号和图像信号,而研究语音信号对于现代语音通信有着积极的意义.研究语音信号又分为时域和频域两个 ...

  6. 数字信号处理MATLAB笔记

    全文框架 1.函数笔记 fft():快速傅里叶变换 Y = fft(X,n,dim) 计算x的n点DFT,x长度不够n时补0,比n长时截短,dim为对x做傅里叶变换的维数. ifft():傅里叶反变换 ...

  7. 数字信号处理matlab相关实验

    数字信号处理 复习 实验1 matlab相关语法 matlab如何绘制幅频特性曲线? 混叠与泄露现象 实验2 matlab相关语法 FFT 什么是循环卷积 matlab如何直接时域线性卷积和FFT求线 ...

  8. 数字信号处理matlab设计滤波器

    目 录 1  设计目的.内容及要求 1 1.1 设计目的 1 1.2 设计内容 1 1.3 设计思考 2 1.4 设计要求 2 2 设计方案与设计原理 3 2.1 设计思路 3 2.2 采样定理 3 ...

  9. 基于FFT的信号频谱分析

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

  10. 数字信号处理matlab心得,数字信号处理学习心得体会3篇

    <数字信号处理>是我们通信工程和电子类专业的一门重要的专业基础课程,主要任务是研究数字信号处理理论的基本概念和基本分析方法,通过建立数学模型和适当的数学分析处理,来展示这些理论和方法的实际 ...

最新文章

  1. c++ char数组和char*
  2. android 根据文本计算行数,ios 获取Text行数和每行显示的内容
  3. Asp.net禁用site.Mobile.Master
  4. screen状态变Attached连接会话失败
  5. 设计抗100亿请求的春晚红包系统
  6. 复盘模型_组织内如何进行经验萃取复盘
  7. iOS中网络请求的使用(GET请求与POST请求)
  8. KL与JS散度学习[转载]
  9. 杰理AC692X---691X,690X,692X芯片差异(2)
  10. 小鸟云计算丨香港服务器带宽价格为什么差异大
  11. mysql 数据汇总与分组
  12. spark-sql-perf
  13. C语言/实现MD5加密
  14. 【NOIP2016提高A组模拟9.24】天使的分裂
  15. 知乎网页版免登录浏览
  16. 打印机原理及安装,下载驱动
  17. MySQL简单命令和SELECT查询,给字段起别名【MySQL数据库】
  18. 致敬Gif之父,使用Java生成Gif图片
  19. 达内python培训资料
  20. (二十三)系统集成中级-项目收尾管理

热门文章

  1. [Windwos Phone 8]多个按钮的共用事件
  2. zebra探秘(一)
  3. [2018.10.18 T3] 小 G 的线段树
  4. vue2项目中全局引入scss变量
  5. webpack5学习与实战-(六)-babel-loader解析js文件
  6. js基础-13-常见DOM操作
  7. Ajax学习笔记-请求参数的格式-5
  8. centos7使用kubeadm部署高可用k8s集群
  9. python的plot如何实时更新中_python中plot实现即时数据动态显示方法
  10. node 更新_更新应用时,如何实现 K8s 零中断滚动更新?