Найти - Пользователи
Полная версия: Частотная модуляция
Начало » Python для новичков » Частотная модуляция
1
ingfa_1981
Доброе время суток всем
Вопрос возник правильно ли я сделал частотную модуляцию в правом канале.
 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()
ZerG
Ну тут как посмотреть
Если вы сделали правильно - то правильно а иначе нет
ingfa_1981

Я имел ввиду формула правильная или нет? Может кто то делал лабораторки по АМ ЧМ ФМ модуляции?
 modulation = np.sin(2*np.pi*freq_right*np.arange(len(audio_data))/sample_rate)*audio_data
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB