Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
 
wourld
0 / 0 / 0
Регистрация: 06.03.2019
Сообщений: 29
1

пояснение кода

07.07.2019, 21:18. Просмотров 206. Ответов 0
Метки нет (Все метки)

В своем коде использую функцию для быстрого преобразования фурье y_f = np.fft.fft(y) но
на сколько я знаю для быстрого преобразования фурье необходимо количество отсчетов сигнала равное N=2^n
у меня их 600
могу заплатить если подскажите почему код работает при числе отсчетов не равным N=2^n то есть 512,1024,2048
сам код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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 , 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
"""
 
z = [1, 0, 1]
x=(len(z))
num_b=10
N = x*num_b
arr = []
 
for bit in z:
        # ~ arr = np.concatenate([arr, np.ones(10) if bit else np.zeros(10)])
  arr = np.concatenate([arr, np.full((num_b,), bit, dtype=int)])
        # ~ if bit == 1:
            # ~ arr = np.concatenate([arr, np.ones(10)])
        # ~ else:
            # ~ arr = np.concatenate([arr, np.zeros(10)])
 
"""
VCO
"""
t = np.arange(0, float(N) / float(Fbit), 1 / float(Fs),
              dtype=np.float)  
 
# extend the data_in to account for the bitrate and convert 0/1 to frequency
m = np.zeros(0).astype(float)
for bit in arr:
    
    if bit == 1:
        m = np.hstack((m, np.multiply(np.ones(Fs // Fbit), Fc + Fdev)))
    else:
        m = np.hstack((m, np.multiply(np.ones(Fs // Fbit), Fc - Fdev)))
# calculate the output of the VCO
y = np.zeros(0)  
y = A * np.cos(2 * np.pi * np.multiply(m, t))  
print(len(y))
plot_data(y)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2019, 21:18
Ответы с готовыми решениями:

Пояснение в ООП Python
Читал статью и не могу разобраться в одном моменте,поясните пожалуйста почему это так работает:...

Пояснение кода
Всем привет! Нужна помощь, может кто-нибудь пояснить код &НаСервере Процедура...

Пояснение кода
Ребят можете объяснить мне этот код . Желательно подробней $percent = 0.3; list($width,...

Пояснение кода
Доброго времени суток !) Такая просьба... Можете рядом с кодом в комментах написать, что делает...

Пояснение кода
Здравствуйте... имеется код... не могли бы вы пояснить ( желательно поподробнее) принцип его...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2019, 21:18

Пояснение кода
Ребят, приветствую! Разбираю тему, но примеры к ней написаны на питоне. Можете помочь понять, что в...

Пояснение кода
Кто знает,поясните пожалуйста код :) using System; using System.Collections; using...

Пояснение кода
v_Params(v_ListPrefix||'FIO') :=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru