Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 13, 2023 14:37:04

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Частотная модуляция

Доброе время суток всем
Вопрос возник правильно ли я сделал частотную модуляцию в правом канале.

 import numpy as np
import pyaudio
import numpy, scipy, matplotlib
from matplotlib import pyplot as plt
# задаем параметры сигнала
freq_left = 10000  # частота левого канала
freq_right = 10000  # частота правого канала
duration = 1  # длительность сигнала в секундах
sample_rate = 44100  # частота дискретизации
# создаем массивы данных для левого и правого каналов
num_samples = int(duration * sample_rate)
#time_array = np.arange(num_samples) / float(sample_rate)
time_array = np.arange(num_samples) / float(sample_rate)
sin_data_left = np.sin(2 * np.pi * freq_left * time_array)
sin_data_right = np.sin(2 * np.pi * freq_right * time_array)
sin_data = np.sin(2 * np.pi * 2 * time_array)
# объединяем массивы в один двумерный массив
# создаем объект PyAudio и открываем поток для воспроизведения
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paFloat32,
                channels=2,
                rate=sample_rate,
                output=True)
stream_mic = p.open(format=pyaudio.paFloat32, channels=1, rate=sample_rate, input=True, frames_per_buffer=sample_rate)
while True:
    frames = []
    data = stream_mic.read(sample_rate)
    frames.append(data)
    audio_data = np.frombuffer(b''.join(frames),dtype=np.float32)#преобразовал байты с микрофона в float32
    frames = []
    #modulation = 5 * np.sin(2 * np.pi * freq_right * time_array + 2 * np.sin(2 * np.pi * sin_data * time_array))
    modulation = np.sin(2*np.pi*freq_right*np.arange(len(audio_data))/sample_rate)*audio_data
    stereo_data = np.column_stack((sin_data_left, modulation))
    from scipy.io.wavfile import write
    write("left.wav", sample_rate, stereo_data)
    plt.plot(time_array,modulation )
    plt.show()
stream.stop_stream()
stream.close()
p.terminate()

Офлайн

#2 Ноя. 14, 2023 20:26:01

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Частотная модуляция

Ну тут как посмотреть
Если вы сделали правильно - то правильно а иначе нет



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Ноя. 15, 2023 12:03:59

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Частотная модуляция


Я имел ввиду формула правильная или нет? Может кто то делал лабораторки по АМ ЧМ ФМ модуляции?

 modulation = np.sin(2*np.pi*freq_right*np.arange(len(audio_data))/sample_rate)*audio_data

Отредактировано ingfa_1981 (Ноя. 15, 2023 12:04:16)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version