alias_freq(f_signal,f_sample,n)
Python では、次のように動作するアルゴリズムを作成しようとしています。
def alias_freq(f_signal,f_sample,n):
f_Nyquist=f_sample/2.0
if f_signal<=f_Nyquist:
return n'th frequency higher than f_signal that will alias to f_signal
else:
return frequency (lower than f_Nyquist) that f_signal will alias to
以下は、上記の関数をテストするために使用したコードです ( f_signal
、f_sample
、およびn
以下は、コードを埋めるためだけに任意に選択されています)。
import numpy as np
import matplotlib.pyplot as plt
t=np.linspace(0,2*np.pi,500)
f_signal=10.0
y1=np.sin(f_signal*t)
plt.plot(t,y1)
f_sample=13.0
t_sample=np.linspace(0,int(f_sample)*(2*np.pi/f_sample),f_sample)
y_sample=np.sin(f_signal*t_sample)
plt.scatter(t_sample,y_sample)
n=2
f_alias=alias_freq(f_signal,f_sample,n)
y_alias=np.sin(f_alias*t)
plt.plot(t,y_alias)
plt.xlim(xmin=-.1,xmax=2*np.pi+.1)
plt.show()
私の考えでは、関数が適切に機能すれば、 と の両方のプロットがy1
からのy_alias
すべての散乱点にヒットしy_sample
ます。これまでのところ、関数内の if ステートメントまたは else ステートメントのいずれかで、本来あるべきと思われることを実行することに完全に失敗しています。テストコードはダメです。
私の質問は次のとおりです。まず、使用しているテストコードは、私がやろうとしていることに対して正しいですか? そして主に、私が探している alias_freq 関数は何ですか?
また、注意してください: いくつかの Python パッケージにこのような機能が既に組み込まれている場合は、それについて聞いてみたいです。 、だから私はまだ私の関数がどのように見えるべきかを見たいと思っています。