数字信号处理(matlab)——FFT对信号频谱分析
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对信号频谱分析相关推荐
- 数字信号处理matlab实验报告,数字信号处理,matlab实验报告
数字信号处理,matlab实验报告 Matlab实验报告 实验一: 1. 实验Matlab代码: N=25; Q=0.9+0.3*j; WN=exp(-2*j*pi/N); x=zeros(25,1) ...
- 数字信号处理 matlab 答案,数字信号处理课后习题Matlab作业
<数字信号处理课后习题Matlab作业>由会员分享,可在线阅读,更多相关<数字信号处理课后习题Matlab作业(22页珍藏版)>请在人人文库网上搜索. 1.数字信号处理MATL ...
- matlab wc wp,数字信号处理MATLAB习题.PDF
数字信号处理MATLAB习题 数字信号处理MATLAB 习题 电气硕 72 李弘昌 第11 题 分别用脉冲响应不变法和双线性变换法设计一个巴特沃斯型IIR 低通数字滤波器,采样 频率 ,其通带边频 处 ...
- 【学习笔记】 matlab数字信号处理(四)信号的频域分析
第四章.信号的频域分析 4.1 概述 4.1.1 时域分析的局限性 4.1.2 频谱分析的优点 方便对复杂信号进行分析 抗干扰能力强 具有明确的物理意义 4.2 周期信号频谱分析 4.2.1 正交分解 ...
- 【信号处理】数字信号处理Matlab设计附GUI界面和报告
1 简介 信号处理是现代信息处理的基本内容,数字信号的处理更是重中之重.数字信号处理的研究内容主要是语音信号和图像信号,而研究语音信号对于现代语音通信有着积极的意义.研究语音信号又分为时域和频域两个 ...
- 数字信号处理MATLAB笔记
全文框架 1.函数笔记 fft():快速傅里叶变换 Y = fft(X,n,dim) 计算x的n点DFT,x长度不够n时补0,比n长时截短,dim为对x做傅里叶变换的维数. ifft():傅里叶反变换 ...
- 数字信号处理matlab相关实验
数字信号处理 复习 实验1 matlab相关语法 matlab如何绘制幅频特性曲线? 混叠与泄露现象 实验2 matlab相关语法 FFT 什么是循环卷积 matlab如何直接时域线性卷积和FFT求线 ...
- 数字信号处理matlab设计滤波器
目 录 1 设计目的.内容及要求 1 1.1 设计目的 1 1.2 设计内容 1 1.3 设计思考 2 1.4 设计要求 2 2 设计方案与设计原理 3 2.1 设计思路 3 2.2 采样定理 3 ...
- 基于FFT的信号频谱分析
设计要求 用MATLAB产生正弦波及白噪声信号,并显示各自时域波形图. 进行FFT变换,显示各自频谱图. 做出两种种信号的均方根图谱,功率图谱,以及对数方均根图谱. 用IFFT傅里叶反变换恢复信号,并 ...
- 数字信号处理matlab心得,数字信号处理学习心得体会3篇
<数字信号处理>是我们通信工程和电子类专业的一门重要的专业基础课程,主要任务是研究数字信号处理理论的基本概念和基本分析方法,通过建立数学模型和适当的数学分析处理,来展示这些理论和方法的实际 ...
最新文章
- c++ char数组和char*
- android 根据文本计算行数,ios 获取Text行数和每行显示的内容
- Asp.net禁用site.Mobile.Master
- screen状态变Attached连接会话失败
- 设计抗100亿请求的春晚红包系统
- 复盘模型_组织内如何进行经验萃取复盘
- iOS中网络请求的使用(GET请求与POST请求)
- KL与JS散度学习[转载]
- 杰理AC692X---691X,690X,692X芯片差异(2)
- 小鸟云计算丨香港服务器带宽价格为什么差异大
- mysql 数据汇总与分组
- spark-sql-perf
- C语言/实现MD5加密
- 【NOIP2016提高A组模拟9.24】天使的分裂
- 知乎网页版免登录浏览
- 打印机原理及安装,下载驱动
- MySQL简单命令和SELECT查询,给字段起别名【MySQL数据库】
- 致敬Gif之父,使用Java生成Gif图片
- 达内python培训资料
- (二十三)系统集成中级-项目收尾管理
热门文章
- [Windwos Phone 8]多个按钮的共用事件
- zebra探秘(一)
- [2018.10.18 T3] 小 G 的线段树
- vue2项目中全局引入scss变量
- webpack5学习与实战-(六)-babel-loader解析js文件
- js基础-13-常见DOM操作
- Ajax学习笔记-请求参数的格式-5
- centos7使用kubeadm部署高可用k8s集群
- python的plot如何实时更新中_python中plot实现即时数据动态显示方法
- node 更新_更新应用时,如何实现 K8s 零中断滚动更新?