非平稳信号的频谱分析方法---(短时傅立叶变换)
非平稳信号又称时变信号。对这一类信号,其一阶、二阶统计量和功率谱的估计显然不能简单的使用平稳信号的估计方法,必须考虑它们的时变因素。
基本原理
对非平稳信号,人们希望能有一种分析方法把时域分析和频域分析结合起来,即找到一个二维函数,它既能反映信号的频率内容,也能反映出该频率内容随时间变化的规律。研究这一问题的信号处理理论称为信号的联合时频分布。其中最重要的是以Cohen类为代表的双线性时频分布,此分布可表示为
式中是一个二维的窗函数,给定不同的窗函数可以得到不同的时频分布。在上式中x(t)出现了两次,且是相乘的形式,这一特点称为双线性。
若
式中w是一个一维的窗函数,则(1)式可以简化成如下的谱图
式中
称为信号x(t)的短时傅里叶变换,它反映了信号的频谱随时间和频率的分布。
Matlab仿真分析
生成的信号两个LFM信号,一个频率随时间由小变大,另一个由大变小,中心频率都为150KHz。
Matlab代码为:
f0 = 150e3; %定义LFM信号的中心频率
d_f = 100e3; %定义LFM信号的频率变化大小
fs = 5*f0; %定义采样率
points = 2^15; %采样点数
SNR = 40; %信噪比nTs = (0:points-1)/fs;
Delta_f = (0:points-1)*fs/points;
%生成LFM信号
signal = sin(2*pi*(f0 + (d_f*fs)/(2*points)*(nTs - points/(2*fs))).*(nTs - points/(2*fs))) + ... %频率由小变大sin(2*pi*(f0 + (-d_f*fs)/(2*points)*(nTs - points/(2*fs))).*(nTs - points/(2*fs))); %频率由大变小
%加入一定功率的白噪声
signal_noise = signal + 10^(-SNR/20)*randn(1,points);
N = 2^8; %截取信号片段点数
window = hanning(N); %窗函数类型
Noverlap = N - N/2; %相邻两段之间重叠的点数
[S,F,T] = specgram(signal_noise,N,fs,window,Noverlap);
abs_S = abs(S);
max_abs_S = max(max(abs_S));
abs_S = abs_S/max_abs_S;
log10_abs_S = 20*log10(abs_S);
[tt,ff] = meshgrid(T,F/1000);
figure;
surf(tt,ff,log10_abs_S);
xlabel('时间/s');
ylabel('频率KHz');
zlabel('归一化功率谱P(w,t)/dB');
string = ['短时傅里叶变换,采样点数=',num2str(points),',LFM信号中心频率f0=',num2str(f0/1000),...'KHz,信号频率变化量d_f=',num2str(d_f/1000),'KHz,采样率fs=',num2str(fs/1000),'KHz,信噪比SNR=',...num2str(SNR),'dB'];
title(string);
运行一下得到如下图:调整一下得到如下的俯视图
![]()
非平稳信号的频谱分析方法---(短时傅立叶变换)相关推荐
- 小波变换比傅里叶变换好在哪里_小波变换与傅里叶变换详解——代码下载——非平稳信号与平稳信号的滤波效果对比
小波变换与傅里叶变换有什么区别吗?小波变换与傅里叶变换哪个好?我们通过小波变换与傅里叶变换的详细解读.小波变换与傅里叶变换的区别.傅里叶变换缺点方面来解析 小波变换与傅里叶变换的区别 傅立叶分析中,以 ...
- 平稳/非平稳信号举例
平稳和非平稳都是针对随机信号说的. 平稳信号是指分布参数或者分布律随时间不发生变化的信号. 非平稳信号是指分布参数或者分布律随时间发生变化的信号. 常见的平稳信号:一段短的语音信号(10~30ms) ...
- matlab非平稳信号小波和FFT去噪
文章目录 目录 文章目录 一.非平稳信号 二.FFT 和小波去噪实例 完整代码 一.非平稳信号 在实际的工程应用中,大多数信号可能包含着许多尖峰或突变,而且噪声信号也并不是平衡的白噪声.对这种信号进行 ...
- 非平稳信号的自适应分解算法:EMD、SSA、ITD、VMD以及其变体之间的总结与对比
目录 一.EMD 1.算法步骤: 2.算法优点: 3.算法缺点及其解决方法 4.EMD算法的变体:主要针对EMD的模态混叠问题提出的 二.SSA 1.算法步骤: 2.算法优点: 3.算法缺点及其解决方 ...
- matlab 生成Blocks和Heavysine等典型非线性非平稳信号代码
Blocks和Heavysine信号是典型的非线性非平稳信号 matlab生成blocks.bumps和doppler标准测试信号 关键函数:wnoise 噪声小波检验数据 使用方式 x = w ...
- 使用连续小波变换(cwt)对时间轴上频率发生变化的非平稳信号进行处理
使用连续小波变换对时间轴上频率发生变化的非平稳信号进行处理 傅里叶变换对时间轴上的平稳信号处理有着很大的优势,但是对非平稳信号就无能为力了. 小波变换是基于傅里叶变换产生的可以用于处理非平稳信号的信号 ...
- 【音频分析】短时傅立叶变换结果为啥是对称?每个结果对应的频率是多少?
传统艺能,又来搞傅立叶变换. 在短时傅立叶变换只有离散的一些频率,变换之后的频谱分布有哪些规律呢? 解释对称性 上公式,N是时间域的窗口采样数(即数组长度) 正变换 F(k)=∑n=0N−1f(n)∗ ...
- 关于短时傅立叶变换的基线的选取以及可靠频率点的关系
针对基线校正时的基线长度,短时傅立叶变换时,整个时间窗内傅立叶变换的结果会赋值给时间窗中间时间点.这样一来,基线开头和结尾各有一半时间窗长度的短时傅立叶结果是不太可靠的.例如,如果基线是-500-0m ...
- 平稳信号、非平稳信号
时间序列的平稳性,一般指宽平稳,即时间序列的均值和方差为与时间无关的常数,其协方差与时间间隔有关而也与时间无关.简单地说,就是一个平稳的时间序列指的是:遥想未来所能获得的样本时间序列,我们能断定其均值 ...
最新文章
- Solr 3.5:配置mmseg4j同义词(已经配置好中文分词)
- UA OPTI501 电磁波5 电磁场的基本物理量:电磁场的源与电磁场的强度
- 不要再问我Python2和Python3的Unicode 问题啦!
- 工程师必知的代码重构指南
- tomcat无法访问MySQL_JSP在tomcat服务器下无法连接MySql问题解决方法
- 为什么别人有微粒贷,而你没有?
- Platform.Uno介绍
- 附件下载,中文文件名乱码如何解决???
- sql不能使用OpenRowset
- 如何运用机器学习预测供应链需求,时间序列数据如何处理?
- Emacs:报错:File error: Cannot open load file,cl-lib解决
- java怎么分组查询_JAVA8 分组统计
- 网易2018校园招聘编程题真题 合唱
- tftp协议给服务器上传数据,TFTP连接过程详解
- 电大学前本计算机考试,2019最新电大学前儿童艺术教育(音乐)形成性考核册作业1-4答案【呕心沥血整理可直接打印.doc...
- javascript判断一个数是否是素数(质数)
- python中label组件参数_【Python64-tkinter_label组件】
- Visual SourceSafe安装和使用手册
- 产品运输和使用振动环境的分类
- Vue路由管理(菜单列表)