唯有增加信号长度,才能提高物理分辨率(看到两个频率及其接近的频谱,如400Hz和400.2Hz)python数字信号处理

仅作为记录,大量请跳过。

信号长度为1s时:

对原信号做傅里叶变换(不做频率轴x轴的处理,仅通过python图像的放大工具观察)

在这里插入图片描述
待无限放大后:

在这里插入图片描述

发现400Hz和400.2Hz的频谱无法分开

直接上代码:

import numpy as np
import matplotlib.pyplot as plt

fs=2000
t=np.arange(0,1,1/fs)
a=np.cos(2*np.pi*400*t)+np.cos(2*np.pi*400.2*t);data=a

N=len(data)

f=fs*np.arange(0,fs/2)/fs
fy=np.fft.fft(data,N)
fy=np.abs(fy)
# fy=fy[0:len(f)]
# fy=20*np.log(fy)

plt.figure()
plt.plot(fy)
plt.show()

print('ok')

10s的信号:

以上面同样的放大过程,可看到

在这里插入图片描述
频谱中有两条,即400Hz和400.2Hz的谱

直接上代码:

import numpy as np
import matplotlib.pyplot as plt

fs=2000
t=np.arange(0,10,1/fs)
a=np.cos(2*np.pi*400*t)+np.cos(2*np.pi*400.2*t);data=a

N=len(data)

f=fs*np.arange(0,fs/2)/fs
fy=np.fft.fft(data,N)
fy=np.abs(fy)
# fy=fy[0:len(f)]
# fy=20*np.log(fy)

plt.figure()
plt.plot(fy)
plt.show()

print('ok')
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值