2016-03-01 3 views
0

Я пытаюсь сгенерировать через matlab тон DTMF, используя функцию по умолчанию, для кнопки 5, скажем, вообще не повезло. Код:matlab - Генератор тональности

button5= sin(0.5906*n)+sin(1.0247*n); This line of code is obligated. 

n=linspace (-1, 1, 1000); 
Fs = 8192; 
button5 = sin(0.5906*n)+sin(1.0247*n); 
sound(button5, Fs); 

Не могли бы вы посоветовать относительно?

Для того, чтобы объяснить лучше:

  1. Это матрица таблицы для кнопки и общего кода для кнопки 5 является: d5 [п] = Sin (0.5906n) + Sin (1.0247n)

enter image description here

+0

Почему вы говорите, что строка неправильная? – dubafek

+0

К чему вы стремитесь? Кажется, он создает тон, значительно ниже человеческого диапазона. – Daniel

+0

@ Daniel Частота в норме, в этом случае желаемая составляет 770 Гц и 1336 Гц. Я также тестирую его в Matlab, и это звучит. – dubafek

ответ

1

Попытка некоторых комбинаций чисел, я понял, Ω является предварительно вычисленным 2*pi*f/FS где F является частотой.

Вот версия просто переписав ответ от dubafek заменяя некоторые переменные:

f=[770 1336]; 
Fs = 8192; 
n = [0:10000]; 
omega=2.*pi.*f./Fs; 
button5 = sin(omega(1)*n)+sin(omega(2)*n); 
button5=button5/max(button5(:)); 
sound(button5, Fs); 

Который, заменив омега с константами приводит к:

Fs = 8192; 
n = [0:10000]; 
button5 = sin(0.5906*n)+sin(1.0247*n); 
button5=button5/max(button5(:)); 
sound(button5, Fs); 

Небольшие отличия в результате являются потому, постоянная омега во втором случае округляется до четырех цифр. Теперь, имея решение, я понимаю, что в вашем вопросе отсутствовала простая информация, n - это вектор, содержащий натуральные числа.

2

Я немного запутался о вашей коде причине я предпочитаю изложить это по-другому. Как говорит @Daniel, проблема заключается в использовании 1000 образцов для нормализации частоты.

Этот код должен работать:

Fs = 8192; 
n = [0:10000]; 
t = n/Fs; 
button5 = sin(2*pi*770*t)+sin(2*pi*1336*t); 
sound(button5/max(button5) ,Fs) 
+1

Вы забыли нормализовать. Использование 'звук (button5/макс (button5), Fs)' Я не могу заметить разницу к опорному сигналу [] (http://www.matthis.thorade.de/mfv/index.php?nummer=5) (выберите номер и нажмите «Wählen») – Daniel

+0

Вам нужно добавить первую строку моего сообщения об инициализации. Это обязательно. Этот код работает, но нормальный у меня нет frequncies. У меня есть Ω. –

+0

Ему ничего не нужно для вас. Вы можете спросить, но ничего не требуйте! Он сделал хорошую работу, как-то поняв ваш непонятный и неполный вопрос и дал хороший ответ. Объясните математику за этими магическими числами и объясните, что такое омега, и вы можете получить улучшенный ответ. – Daniel

Смежные вопросы