возникла ошибка
x and y must have same first dimension, but have shapes (30,) and (60,)
не могу понять в чем причина
вот код
import numpy as np
import pylab as pl
import scipy.signal.signaltools as sigtool
import scipy.signal as signal
from numpy.random import sample
# the following variables setup the system
Fc = 100 # simulate a carrier frequency of 1kHz
Fbit = 50 # simulated bitrate of data
Fdev = 50 # frequency deviation, make higher than bitrate
# how many bits to send
A = 1 # transmitted signal amplitude
Fs = 1000 # sampling frequency for the simulator, must be higher than twice the carrier frequency
A_n = 0.10 # noise peak amplitude
N_prntbits = 10 # number of bits to print in plots
def plot_data(y):
# view the data in time and frequency domain
# calculate the frequency domain for viewing purposes
N_FFT = float(len(y))
f = np.arange(0, Fs / 2, Fs / N_FFT)
y_f = np.fft.fft(y)
pl.figure(figsize=(17, 7))
pl.subplot(3, 1, 1)
pl.plot(t[0: int(Fs * N_prntbits / Fbit)], m[0: (Fs * N_prntbits // Fbit)])
pl.xlabel('Time (s)')
pl.ylabel('Frequency (Hz)')
pl.title('Original VCO output versus time')
pl.grid(True)
pl.subplot(3, 1, 2)
pl.plot(t[0:int(Fs * N_prntbits / Fbit)], y[0: int(Fs * N_prntbits / Fbit)], linewidth=1)
pl.xlabel('Time (s)')
pl.ylabel('Amplitude (V)')
pl.title('Amplitude of carrier versus time')
pl.grid(True)
pl.subplot(3, 1, 3)
pl.plot(f[0: int(Fc + Fdev * 2 * N_FFT / Fs)], y_f[0:int(Fc + Fdev * 2 * N_FFT / Fs)])
pl.xlabel('Frequency (Hz)')
pl.ylabel('Amplitude (dB)')
pl.title('Spectrum')
pl.grid(True)
pl.tight_layout()
pl.show()
"""
Data in
"""
data_in = np.loadtxt("2.txt",delimiter='\r\n', dtype=np.float)
N = N_prntbits = len(data_in)
"""
VCO
"""
t = np.arange(0, 60, 1 )
# extend the data_in to account for the bitrate and convert 0/1 to frequency
m = np.zeros(0).astype(float)
m = [ ]
for i in range(60):
m.append(50)
for bit in data_in:
if bit == 1:
a = np.pi
else:
a = 0
# calculate the output of the VCO
y = np.zeros(0)
y = A * np.cos((2 * np.pi * np.multiply(m, t))+float(a))
plot_data(y)