отладка мощности

This commit is contained in:
2025-02-12 09:19:28 +03:00
parent 54ff1757b2
commit d583c544fb
8 changed files with 140 additions and 67 deletions

84
signals/puls_1kHz.py Normal file
View File

@@ -0,0 +1,84 @@
import numpy as np
from matplotlib import pyplot as plt
from scipy.io import wavfile
Fs = 120e6 # Частота дискретизации
A0 = 65535 # Амплитуда сигнала
tp = 100e-6 # Длина импульса
Tp = 1000e-6 + tp # Длина между импульсами
Np = 1 # Количество импульсов
Tr = Np*Tp
N_fft = 2**22
N=int(Tr*Fs)
nT=np.arange(N)/Fs
def signal(t):
s = np.zeros_like(t)
mask = (0 <= t) & (t <= tp)
s[mask] = A0
return s
def signal_pulse(t):
s = np.zeros_like(t)
for i in range(Np):
s += signal(t-i*Tp)
return s
def spectr(s, Fs, N_fft):
S = np.fft.fft(s, n=N_fft)
S_fft = S/Fs
S_Power = S**2/(N*Fs)
S_fft = np.abs(S_fft)
S_Power = np.abs(S_Power)
f_fft = np.fft.fftfreq(N_fft, d=1/Fs)
S_fft = np.fft.fftshift(S_fft)
S_Power = np.fft.fftshift(S_Power)
f_fft = np.fft.fftshift(f_fft)
return (S_fft, S_Power, f_fft)
S_sum = signal_pulse(nT)
S, Power, f = spectr(S_sum, Fs, N_fft)
S = 20*np.log(S)
Power = 10*np.log(Power)
S_sum_real = S_sum.real
S_sum_imag = S_sum.imag
S_complex = np.zeros(int(len(S_sum)*2))
S_complex [::2] = S_sum_real
S_complex [1::2] = S_sum_imag
S_complex = S_complex.astype('int16')
with open ('pulse.pcm', 'wb') as File:
File.write(S_complex)
plt.figure(1,figsize=(12, 8))
plt.subplot(3,1,1)
plt.plot(nT,S_sum)
plt.xlabel('nT, с')
plt.ylabel('S, В')
plt.grid()
plt.subplot(3,1,2)
plt.plot(f,S)
plt.xlabel('f, Гц')
plt.ylabel('$S_{dB}$, дБ')
plt.grid()
plt.subplot(3,1,3)
plt.plot(f,Power)
plt.xlabel('f, Гц')
plt.ylabel('$S_{dB}^{2}$, дБ')
plt.grid()
plt.tight_layout()
plt.show()