Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 3, 2017 19:37:40

muskat
Зарегистрирован: 2017-04-17
Сообщения: 33
Репутация: +  -1  -
Профиль   Отправить e-mail  

Проблема с функцией reshape

Помогите найти решение проблемы.
Задание: Прописать сигнал из двух синусоид с заданными пареметрами. И применить STFT к каждому subbands
Мой код:

import matplotlib.pyplot as plt 
import numpy as np
dur=180
fs=44100
f1=200
f2=600
t = np.arange(dur)
sinusoid_1 = np.sin(2*np.pi*t*(f1/fs))
sinusoid_2 = np.sin(2*np.pi*t*(f2/fs))
signal=sinusoid_1+sinusoid_2
plt.plot(t, signal)
plt.xlabel('sample(n)')
plt.ylabel('voltage(V)')
plt.show()

N=1024
xm = np.reshape(signal,(-1,N))

Ошибку выдает: ValueError: total size of new array must be unchanged
При проверки последних строк с reshape

Офлайн

#2 Ноя. 4, 2017 13:49:42

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

Проблема с функцией reshape

stft – можно найти в scipy.signal
А вы точно хотите использовать здесь reshape, а то скорее всего нужно что-то вроде t = np.linspace(0,180,1024) и
тогда число элементов в массиве signal будет 1024.. .

Офлайн

#3 Ноя. 5, 2017 10:08:47

muskat
Зарегистрирован: 2017-04-17
Сообщения: 33
Репутация: +  -1  -
Профиль   Отправить e-mail  

Проблема с функцией reshape

scidam
stft – можно найти в scipy.signalА вы точно хотите использовать здесь reshape, а то скорее всего нужно что-то вроде t = np.linspace(0,180,1024) итогда число элементов в массиве signal будет 1024.. .
мне нужно как я понял из задания, поделить синал на 1024 subband-ов, и потом к каждому применить STFT
Если я пропишу как Вы ( во времени), юудет ли это правильно?

Офлайн

#4 Ноя. 5, 2017 10:08:47

muskat
Зарегистрирован: 2017-04-17
Сообщения: 33
Репутация: +  -1  -
Профиль   Отправить e-mail  

Проблема с функцией reshape

scidam
stft – можно найти в scipy.signalА вы точно хотите использовать здесь reshape, а то скорее всего нужно что-то вроде t = np.linspace(0,180,1024) итогда число элементов в массиве signal будет 1024.. .
мне нужно как я понял из задания, поделить синал на 1024 subband-ов, и потом к каждому применить STFT
Если я пропишу как Вы ( во времени), юудет ли это правильно?

Офлайн

#5 Ноя. 5, 2017 11:11:14

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

Проблема с функцией reshape

Поскольку я не имел дело с обработкой сигналов, мне сложновато ориентироваться в терминологии… в частности, что значит 1024 – subbandов – 1024 подполос?! Но, dur – вероятно, длительность наблюдения сигнала – duration, fs=44100 – частота дискретизации, в любом случае – параметр влияющий на частоты синусоид, входящих в результирующий сигнал. Вроде как N должно быть количеством мгновенных наблюдений сигнала… и к этому ряду нужно применять stft.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version