Pulse code modulation python

WAV turn PCM

Principle: Remove the file header, data is converted to an INT type.

1 import numpy as np 2 def wav2pcm(wavfile, pcmfile, data_type=np.int16): 3 f = open(wavfile, "rb") 4 f.seek(0) 5 f.read(44) 6 data = np.fromfile(f, dtype= data_type) 7 data.tofile(pcmfile)

PCM turn WAV

Principle: Use the WAVE library, add channel information, sampling bits, sampling rates as the file head, and PCM data is written directly.

 1 import wave 2 def pcm2wav(pcm_file, wav_file, channels=1, bits=16, sample_rate=16000): 3 pcmf = open(pcm_file, 'rb') 4 pcmdata = pcmf.read() 5 pcmf.close() 6 7 if bits % 8 != 0: 8 raise ValueError("bits % 8 must == 0. now bits:" + str(bits)) 9 10 wavfile = wave.open(wav_file, 'wb') 11 wavfile.setnchannels(channels) 12 wavfile.setsampwidth(bits // 8) 13 wavfile.setframerate(sample_rate) 14 wavfile.writeframes(pcmdata) 15 wavfile.close()

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

A Python/MATLAB project which implements pulse-code modulation (PCM) and delta modulation (DM).

License

arasgungore/PCM-and-DM-modulators

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Читайте также:  Lombok java maven repository

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

A Python/MATLAB project which implements pulse-code modulation (PCM) and delta modulation (DM).

This project was assigned for the Communication Engineering (EE 374) course in the Spring 2022 semester. For reference, check out the instructor of this course, Ali E. Pusane’s implementation of delta modulation (DM) in Python.

matlab -nodisplay -nosplash -nodesktop -r "run('main.m');exit;"

Consider the message signal m(t) = −cos(200πt) + sin(50πt).

  • Task 1: Pulse Code Modulation: Consider the message signal m(t) for the time interval (0,2) seconds. Obtain the pulse code modulated binary sequence if the signal is sampled at the Nyquist sample rate and L=128 quantization levels are used. You can start labeling the quantization labels from the top. The first sample is taken at t=Ts. Your code should display the binary representation of the first 10 samples on the screen, in the format “0110011-1010010-. ”.
  • Task 2: Delta Modulation: Consider the message signal m(t) for the time interval (0,2) seconds. Obtain the delta modulated binary sequence if the signal is sampled at four times the Nyquist sample rate. The first sample is taken at t=Ts. Your code should display the binary representation of the first 20 samples on the screen.

Figure

Figure

👤 Aras Güngöre

About

A Python/MATLAB project which implements pulse-code modulation (PCM) and delta modulation (DM).

Источник

Русские Блоги

Python реализует скрининг PCM, оживленный голос «Beep-«

Если есть некоторые неправильные места, добавьте:

необходимость: Независимо от того, подключен ли телефон к телефону «Dudi-» через Audio PCM.

Концепция PCM:

Pulse-code modul ation ( PCM ) Это метод, который отображается цифровым представлением. Это стандартная форма цифрового звука на компьютере.

Существует два основных атрибута потока PCM, чтобы определить, является ли он верным исходному аналоговому сигналу и скорость отбора проб (сколько выборок в секунду), глубоко (решите представить уровень количественного определения отбора проб, в определенной степени больше точнее)) сущность

PCM, с которым мы связываемся в нашей работе, обычно составляет 8000 и 16 000, и глубина, как правило, составляет 8 -битный или 16 -битный. Как правило, используется 16 -бит, что является более точным.

8bit = 2^3 (256) обычно используется для телефонной связи.

16bit = 2^16 (65536) Обычно 16 -битное используется для аудио -программного обеспечения, такого как компьютеры.

Подготовка информации:

Я был готов поместить аудио PCM, но я не знал, как его загрузить. Сущность Сущность

Наблюдайте за диаграммой звукового звука Decibel и диаграммы спектра, и вы обнаружите, что будь то децибел и спектр, звук телефона «звуковой сигнал» очень аккуратный, поэтому я рассчитываю его в соответствии со спектром, это около 400+ Гц позиция может быть рассчитана через Фурье.

Скорость дискретизации = 8000 (8000 точек выборки в секунду, 8 точек выборки на миллисекунд)

Framelength = 25 мс (200 точек выборки на кадр)

FrameShift = 15 мс (80 точек выборки на кадр)

FFTNUM = 256 (значение изменения Фурье составляет 256, как правило, 2^n)

Читайте PCM:

Согласно длине кадра 25 мс, кадр составляет 15 мс, последнего кадра недостаточно и нулевой.

Добавить окно хэмминга ### Наконец -то окно Ханминг, которое поставляется напрямую с Numpy, это основная реализация ###:

FFT,Этот шаг более важен

Симметричный FFT, модель, нормализация, принимайте максимальное значение, получает индекс:

Связанное дополнение к знаниям:

Сравнение БПФ Numpy с RFFT

Это 256 значений, рассчитанных после numby.fft.fft.

Рассчитано с помощью numby.fft.rfft составляет 129 значений.

Частота отбора проб составляет fs, частота сигнала F, количество точек выборки N, а частота определенной точки N-fn = (n-1)*fs

Первым значением после расчета FFT является компонент DC, 0 Гц и весь расчет FFT после вектора.

Около 9.08298730E-01 +0,000000000000E +00J Зеркальная симметрия значения модели:

Типичный размер окна составляет 25 мс, а движение рамки составляет 15 мс. Функция окна Ghana Ming заключается в следующем. Как правило, α составляет 0,46.

W(n,α ) = (1 -α ) — α cos(2*PI*n/(N-1)),0≦n≦N-1

Поскольку частотные характеристики частоты окна Ханминга являются большим ослаблением боковых лепестков, пиковое значение основного лепестка и первая сторона бокового лоскута может достигать 40 дБ.

После расчета функции окон, умножьте на сигнал: y [n] = w [n]*s [n]

Ссылка на ссылку

Источник

Оцените статью