1
나는 시간이 지남에 따라 [f_start : f_stop]
범위의 선형 증가 주파수를 갖는 부비동을 원합니다.플롯 주파수 스윕 파이썬에서
그러나 파이썬에서 적절한 신호를 만들 때 마지막주기는 예상 주파수의 두 배인 2*f_stop
입니다.
왜? 여기
문제 설명 최소한의 파이썬 코드 :
import numpy
import matplotlib.pyplot as plt
Delta_t = 1 # Unit: Seconds
samples = 1000
total_time = samples*Delta_t
t = numpy.linspace(0,total_time,num=samples)
f_start = 1.0/total_time # slow frequency (Period T = 1/f_start = 1000 samples)
f_stop = 100.0/total_time # high frequency (Period T = 1/f_stop = 10 samples)
f_sweep = numpy.linspace(f_start,f_stop,num=samples) # Sweep from slow to high frequency
# Create Sinusoids
sinus_f_start = numpy.sin(2*numpy.pi*f_start*t)
sinus_f_stop = numpy.sin(2*numpy.pi*f_stop*t)
sinus_f_sweep = numpy.sin(2*numpy.pi*f_sweep*t)
# Plot all sinusoids
fig = plt.figure()
fig.add_subplot(311)
plt.plot(t,sinus_f_start)# Perfect! 1000 Samples per period.
fig.add_subplot(312)
plt.plot(t,sinus_f_stop) # Perfect! 10 Samples per period.
fig.add_subplot(313)
plt.plot(t,sinus_f_sweep)# Fail! Last period has 5 samples.
plt.show()
당신을 감사 최대 주파수에서 두 배로 인식! 선형 스윕을 실현하는 ordetr에서 주파수는 w = 2 * PI * (f_start + k/2 * t)이며 k는 기울기 매개 변수입니다. – Jack
@Jack 사인 함수의 인수가 각도 \ theta이고 시간의 함수로 각속도를 지정하면 (시간 의존성에 관계없이) 시간에 대한 각속도를 통합해야합니다. 즉 \ theta = \ theta_0 + \ int_ {t_0}^{t} \ omega (\ tau) d \ tau. 각속도의 선형 변화에 대한 표현은 괜찮습니다. 차오 – gboffi