| 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) | |