如何将噪声存储为 python 中傅立叶变换的变量
How to store noise as a variable from the fourier transformation in python
我正在尝试在 python 中执行傅立叶变换。我想知道如何将从 Fourier transformation
获得的 noise
存储为 variable
?
Python代码:
import numpy as np
# Create a simple signal with two frequencies
dt = 0.001
t = np.arange(0,1,dt)
f = np.sin(2*np.pi*50*t) + np.sin(2*np.pi*120*t) # Sum of 2 frequencies
f_clean = f
noise = 2.5*np.random.randn(len(t))
f = f + noise # Add some noise
## Compute the Fast Fourier Transform (FFT)
n = len(t)
fhat = np.fft.fft(f,n) # Compute the FFT
PSD = fhat * np.conj(fhat) / n # Power spectrum (power per freq)
freq = (1/(dt*n)) * np.arange(n) # Create x-axis of frequencies in Hz
L = np.arange(1,np.floor(n/2),dtype='int') # Only plot the first half of freqs
## Use the PSD to filter out noise
indices = PSD > 100 # Find all freqs with large power
PSDclean = PSD * indices # Zero out all others
fhat = indices * fhat # Zero out small Fourier coeffs. in Y
ffilt = np.fft.ifft(fhat) # Inverse FFT for filtered time signal
我尝试使用以下代码行来存储噪声值,但不确定执行此任务的语法或方法是否正确。
## To store the noise using the PSD
low_indices = PSD < 100 # Find all freqs with small power
PSDnoise = PSD * low_indices # zero out larger freqs
fhat_noise = low_indices * fhat
是否有更好的方法来存储这些值?
如果你这样做
PSDnoise = PSD * low_indices
您将有 0
个值,其中 low_indices
中有一个 False
。
如果您只想将 PSD
的值保留在低于阈值的索引处,您可以使用数组索引,如下所示:
PSDnoise = PSD[low_indices]
我正在尝试在 python 中执行傅立叶变换。我想知道如何将从 Fourier transformation
获得的 noise
存储为 variable
?
Python代码:
import numpy as np
# Create a simple signal with two frequencies
dt = 0.001
t = np.arange(0,1,dt)
f = np.sin(2*np.pi*50*t) + np.sin(2*np.pi*120*t) # Sum of 2 frequencies
f_clean = f
noise = 2.5*np.random.randn(len(t))
f = f + noise # Add some noise
## Compute the Fast Fourier Transform (FFT)
n = len(t)
fhat = np.fft.fft(f,n) # Compute the FFT
PSD = fhat * np.conj(fhat) / n # Power spectrum (power per freq)
freq = (1/(dt*n)) * np.arange(n) # Create x-axis of frequencies in Hz
L = np.arange(1,np.floor(n/2),dtype='int') # Only plot the first half of freqs
## Use the PSD to filter out noise
indices = PSD > 100 # Find all freqs with large power
PSDclean = PSD * indices # Zero out all others
fhat = indices * fhat # Zero out small Fourier coeffs. in Y
ffilt = np.fft.ifft(fhat) # Inverse FFT for filtered time signal
我尝试使用以下代码行来存储噪声值,但不确定执行此任务的语法或方法是否正确。
## To store the noise using the PSD
low_indices = PSD < 100 # Find all freqs with small power
PSDnoise = PSD * low_indices # zero out larger freqs
fhat_noise = low_indices * fhat
是否有更好的方法来存储这些值?
如果你这样做
PSDnoise = PSD * low_indices
您将有 0
个值,其中 low_indices
中有一个 False
。
如果您只想将 PSD
的值保留在低于阈值的索引处,您可以使用数组索引,如下所示:
PSDnoise = PSD[low_indices]