我有一个已知频率的正弦波,在奈奎斯特频率附近有一些均匀样本的噪声。我想得到振幅、相位和直流偏移的近似值。我搜索了一个答案,找到了几个接近我所需要的答案,但仍然无法编写一个适当的代码来实现我所需要的。当我运行下面的代码时,我得到了错误的相位和振幅。会很乐意得到帮助的。
import sys
import numpy
import pylab as plt
def cosfunc(time, amplitude, omega, phase, offset):
''' Function to create sine wave. Phase in radia
我试图制作一个非常基本的程序,它可以将midi文件转换成python中的一个波形,所以作为一个非常基本的测试,我使用np.cos生成了几个波形,然后将它们相加在一起,然而,当我尝试使用声音设备播放我生成的波形时,听起来真的很奇怪。我一点也不是声音和信号概念方面的专家,这对我来说是一个很新的课题,所以任何帮助都是非常感谢的。
以下是代码:
import sounddevice as sd
import numpy as np
def make_wave(freq, duration, sample_rate = 22050):
wave = []
for i in range(
我对了解两个正弦波类型之间的相移很感兴趣。为此,我试着用scipy.cuve_fit来适应每一波波。我一直在跟踪。然而,我获得了负振幅和相移看起来像转发π弧度。
我使用的代码如下:
def fit_sin_LD(t_LD, y_LD):
'''Fit sin to the input time sequence, and return fitting parameters "amp", "omega", "phase", "offset", "freq", "period"
我正在对一个正弦波进行一些分析,我注意到了一些奇怪的东西。当我在正弦框架中的任意点随机引入单个样本脉冲时,FFT无法定位它。直觉上,Impulse的FFT应该是一个正弦波,但我什么也没得到。事实上,我会说信息丢失了。为什么会这样呢?
要绝对清楚生成此代码的代码:
Fs=10e3; %Specify Sampling Frequency
Ts=1/Fs; %Sampling period.
Ns= 1024; %Number of time samples to be plotted.
temp = Ts*(Ns-1);
t=[0:Ts:Ts*(Ns-1)]; %Make tim
我正在寻找一个澄清,我在理解或实现spectogram绘图时遇到了什么错误。 为了确保一切都正确,我从一个玩具示例开始,所以我生成了一个非常简单的信号(三个不同频率和相移的周期信号之和,没有噪声)作为休眠: import numpy as np
sampling_rate = 1.0 / 1000
duration = 2
t = np.arange(0, duration, sampling_rate)
# Signal 1
A_1 = 0.8 # amplitude of the cosine wave
f_1 = 100 # frequency of the cosine wave
我想从信号中删除一个频率(一个峰值),然后绘制没有它的函数。在fft之后,我找到了频率和振幅,我不确定我现在需要做什么。例如,我想删除我的最高峰(图上标有红点)。
import numpy as np
import matplotlib.pyplot as plt
# create data
N = 4097
T = 100.0
t = np.linspace(-T/2,T/2,N)
f = np.sin(50.0 * 2.0*np.pi*t) + 0.5*np.sin(80.0 * 2.0*np.pi*t)
#plot function
plt.plot(t,f,'r')
我正在尝试将一个简单的正弦波拟合到数据中,并应用边界来帮助约束拟合。
我使用的是发布的第二个答案,它工作得很好,但是当我按照约定应用边界时,例如:
def fit_sin(tt, yy):
import scipy.optimize
import numpy as np
'''
Fit sin to the input time sequence, and return dict of fitting parameters:
"amp", "omega", "phase", "