含噪正弦波和三角波信号的短时傅里叶变换,用matlab如何实现啊

含噪正弦波和三角波信号的短时傅里叶变换,用matlab如何实现啊,第1张

对正弦信号有:2pifc = 03, 正弦信号的频率fc=03/(2pi), 可以用2fc以上采样率对其进行采样,然后进行傅里叶变换即可

三角信号的频率大致为1/1000,比正弦信号带宽更小,所以可以用正弦信号的采样率进行采样,这样得到的信号的傅里叶变换不会在频域发生混叠

从这里的条件来看,fc=03/(2pi) < 01Hz,采样间隔Ts > 10s,因此你给出的 t=1:N,如果以1s为单位的话,可以对 x 直接进行傅里叶变换即可,即 y = fft(x); 得到的 y 即 x 的傅里叶变换;

另外,如果需要画变换后的幅度谱,需要用 plot(20log10(abs(fftshift(y)))) 就可以了

祝好运!

基础原理讲述:

FFT(快速傅里叶变换):

FFT算法是DFT算法的改良版,而DFT是FFT的离散化。理解FFT,就从傅里叶变换到DFT再到FFT的思路进行推导。笔者也会按照这样的思路进行讲解推导。

傅里叶变换:

傅里叶变换是傅里叶级数的推广,所以在谈傅里叶变换之间,先说一下傅里叶级数。在大学期间学习无穷级数有相关基础的同学可以跳着看。

傅里叶级数:

傅里叶级数是把类似波的函数表示成简单正弦波的方式,更严肃来说的话:对于满足狄利克雷定理的周期函数,其傅里叶级数是由一组简单的振荡函数加权和表示的,表示周期函数为正弦波和余弦波之和。和或谐波(谐波频率是原周期信号频率整数倍的波),可以用谐波分析开确定每一个谐波的相位和幅度。傅里叶级数中就可能有无限谐波数。对于函数的傅里叶级数的部分但不是所有的谐波求和会产生该函数的近似值,例如:傅里叶级数前几个谐波用于方波就会产生方波的近似值。

方波(表示为蓝点)近似为其第六部分和(表示为紫点),由方波傅里叶级数的前六项(表示为箭头)求和形成。每个箭头从其左侧所有箭头的垂直总和开始(即先前的部分总和)

方波的傅立叶级数的前四个部分和。随着更多谐波的添加,部分和会收敛到(变得越来越像)

FFT从根本上说是一种基础的改变。FFT改变原始信号的基础是一组正弦波。为了使该基础能够描述所有可能的输入,它需要能够表示相位和振幅;相位是用复数表示的。

例如,假设您对只包含单个正弦波的信号进行FFT。根据相位的不同,你可能会得到一个完全真实的FFT结果。但是,如果将输入的相位移动几度,FFT输出又如何表示该输入呢?

那你能不能做一个计算,把它转变成有符号的呢?

也就是说,加一个1/2幅度的DC偏移。

我想,这个计算应该是简单得再也不能简单了吧?

如果你只会使用有符号的FFT,当减去半个采样幅度时,它不就是有符号的吗?也就是拿信号的中间当0。

那么处理稍复杂一些了,首先,要确定你要测的是规则的正弦波,而不是畸变过的,这样就可以知道两个特征,一是它的信号是上下对称的,二是过零可靠,不会有在0点附近反复跃的现象。

这样,你只要先检测过零,由过零触发,然后每过零一次时,奇次做为正信号,偶次作为负信号,就可以在内存中还原出一个完整的有符号正弦波了。

噢,忘记了,是DTMF,两个正弦波。

那你如果按现在的情况来处理的话,FFT出来得到的是不是倍频呢?除以2不就可以了?

示波器的FFT运算就是快速傅里叶变换,通过傅里叶变换可实现实现时域信号和频域信号的转换,展示出时域信号的频率构成。每一个波形都可以被分解成不同频率、幅值正弦波叠加,FFT运算得到的频率点都是方波分出的谐波分量的频率。

FFT运算功能的作用就是测试滤波器和系统的脉冲响应;分辨和定位噪声干扰源,确定乱真辐射;分析抖动、谐波功率、EMI;由于FFT运算需进行大量的数据处理,所以很多示波器在进行FFT运算的时容易出现卡的现象。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12182547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存