0
私はPythonでMatlabのコードから同様の信号を得ようとしています。 MATLABで同じノイズの多い信号、Matlab対Python
コード:Pythonで
Fs = 1e3; % sampling frequency (in Hz)
L = 1e5; % signal length (number of samples)
f0 = 0.1*Fs; % cycle frequency (in Hz)
x = rand(L, 1);
a = [1 -2*cos(2*pi*.2)*.9 .9^2];
x = filter(1,a,x);
x = x.*(1 + sin(2*pi*(0:L-1)'*f0/Fs));
x = x +std(x)*rand(L,1);
histogram(x,100);
コード:
Fs=10**3
L=10**5
f0=0.1*Fs
x=np.random.normal(0,1,L)
a=[1,-2*np.cos(2*np.pi*.2)*.9,.9**2]
x=sps.lfilter([1],a,x)
Random_modulated_signal=x*(1+np.sin(2*np.pi*np.arange(0,L)*f0/Fs))
Rms_Whitenoise=x+np.std(x)*np.random.normal(0,1,L)
plt.hist(Rms_Whitenoise,bins=100,edgecolor='k')
plt.show()
私は両方の信号のヒストグラムをプロットすると、彼らは同じ動作を共有してはいけません。 std(x)*rnd(L,1)
を追加すると信号が異なります。
私は前に示したのと同じコードを使用しましたが、正規分布を使用する代わりに、両方のプログラムで同じ値を生成するのにrand('twister', 2)
とnp.random.seed(2)
を使用しました。
誰かが私が間違っていることを明確にすることはできますか?
これらのヒストグラムは何ですか?左のMATLAB、右のPython?あなたはどちらも右手のように見えますか? – Wolfie