使用MATLAB进行频谱分析
2010-03-22 19:29
316 查看
考研复试数字信号处理,今天遇到个问题,想用MATLAB验证一下自己的想法,刚一用发现手生了不少,以前这东西我用的可是非常熟练,哎!编程这东西要经常玩才行哟!今天把笔记给记下来,不然以后用时有得半天找资料的!
一、用fft进行频谱分析,探讨频率分辨率与频谱分析的关系:
是FFT分析代码
clear all ;%清空内存变量
clc ;%清屏
%确定傅里叶分析常数
Fs=256;%采样频率
Tp=0.25 ;%采样持续时间,这里可以使用不同的采样时间,观察采样分辨率对频谱分析的影响,
%如果Tp=0.2,下面信号频率为10就看不到,如果是0.25频率分辨率刚好为2,可以看到频率为8和10的分量,
%原始信号
f1=10 ;%频率一
f2=8 ;%频率二
t=0:1/Fs:Tp ;
figure(1) ;
y=cos(2*pi*f1*t)+cos(2*pi*f2*t) ; %原始信号
stem(t,y) ;%画出原始信号
%傅里叶变换
N=2^(ceil(log2(length(y)))) %确定信号FFT长度
F=Fs/N %频率分辨率
y_fft=fft((y),N) ;%快速傅里叶变换
f=0:Fs/(N-1):Fs ;
figure(2) ;
stem(f,abs(y_fft)) ;
axis([0,20,0,100]) ;
二、观察一个信号后面补零,对其DFT的影响,通过实验发现没有什么影响!信号补零方法我找了老半天,忘记序列组合方式和产生零序列的方法,这里给记住了:y=[y,zeros(1,100)] ;
三、对原始信号进行零插值,观察信号频谱,发现信号频谱收缩了
四、对原始信号进行抽取,发现原始信号频谱扩展了
一、用fft进行频谱分析,探讨频率分辨率与频谱分析的关系:
是FFT分析代码
clear all ;%清空内存变量
clc ;%清屏
%确定傅里叶分析常数
Fs=256;%采样频率
Tp=0.25 ;%采样持续时间,这里可以使用不同的采样时间,观察采样分辨率对频谱分析的影响,
%如果Tp=0.2,下面信号频率为10就看不到,如果是0.25频率分辨率刚好为2,可以看到频率为8和10的分量,
%原始信号
f1=10 ;%频率一
f2=8 ;%频率二
t=0:1/Fs:Tp ;
figure(1) ;
y=cos(2*pi*f1*t)+cos(2*pi*f2*t) ; %原始信号
stem(t,y) ;%画出原始信号
%傅里叶变换
N=2^(ceil(log2(length(y)))) %确定信号FFT长度
F=Fs/N %频率分辨率
y_fft=fft((y),N) ;%快速傅里叶变换
f=0:Fs/(N-1):Fs ;
figure(2) ;
stem(f,abs(y_fft)) ;
axis([0,20,0,100]) ;
二、观察一个信号后面补零,对其DFT的影响,通过实验发现没有什么影响!信号补零方法我找了老半天,忘记序列组合方式和产生零序列的方法,这里给记住了:y=[y,zeros(1,100)] ;
三、对原始信号进行零插值,观察信号频谱,发现信号频谱收缩了
四、对原始信号进行抽取,发现原始信号频谱扩展了
相关文章推荐
- 使用matlab进行频谱分析时若干问题解释
- 使用matlab对行人视频进行检测的代码的分析
- 通过MATLAB对从串口采集上来的一组数据进行频谱分析
- 使用Matlab进行彩票数据分析
- 使用随机梯度算法对高斯核模型进行最小二乘学习法的MATLAB程序源码分析
- MATLAB中使用FFT做频谱分析时频率分辨率问题(转载)
- 利用matlab怎样进行频谱分析
- matlab对时间序列进行频谱分析时,频率轴的确定方法
- 利用matlab怎样进行频谱分析
- 使用matlab中的powergui对采集的数据进行谐波分析#实验日记#
- 6-使用MATLAB进行概率统计分析
- 使用Python对音频进行频谱分析
- 如何利用matlab进行频谱分析
- 离散信号MATLAB频谱分析程序
- 使用Apache MXNet进行情感分析
- Matlab信号提取、频谱分析、滤波、阈值设定、寻找极值点
- Elasticsearch源码分析之一——使用Guice进行依赖注入与模块化系统
- 使用UMDH进行内心泄露分析
- 使用Matlab进行特征选择
- 如何使用工具进行线上 PHP 性能追踪及分析?