import numpy as np | |
from scipy.fftpack import fft | |
import matplotlib.pyplot as plt | |
Fs =10e3 # 采样频率 | |
Fs=int(Fs) | |
f1 =390 # 信号频率1 | |
f2 = 2e3 # 信号频率2 | |
t=np.linspace(0,1,Fs) # 生成 1s 的实践序列 | |
noise1 = np.random.random(Fs) # 0-1 之间的随机噪声 | |
noise2 = np.random.normal(1,10,Fs) | |
#产生的是一个10e3的高斯噪声点数组集合(均值为:1,标准差:10) | |
y=2*np.sin(2*np.pi*f1*t)+5*np.sin(2*np.pi*f2*t)+noise2 | |
def FFT (Fs,data): | |
L = len (data) # 信号长度 | |
N =np.power(2,np.ceil(np.log2(L))) | |
N=int(N) # 下一个最近二次幂 | |
FFT_y1 = np.abs(fft(data,N))/L*2 # N点FFT 变化,但处于信号长度 | |
Fre = np.arange(int(N/2))*Fs/N # 频率坐标 | |
FFT_y1 = FFT_y1[range(int(N/2))] # 取一半 | |
return Fre, FFT_y1 | |
Fre, FFT_y1 = FFT(Fs,y) | |
print(1) | |