Вы находитесь на странице: 1из 14

Cada una de las notas musicales tiene una frecuencia determinada y es posible generar tonos

musicales a partir de ellas, para poder reproducir esos tonos musicales en Matlab es necesario
generar la onda a partir de las muestras de la seal seno como se muestra a continuacin:
fm=22050 ; frecuencia de muestreo
t=0:1/fm:1; vector con instantes de muestreos a 1 segundo
x=sin(2*pi*f*t); f es la frecuencia de la seal o tono a generar
plot(t,X);
wavplay(x,fm); reproduce el tono definido
1. Experimentalmente genere tonos para construir una seal audible armoniosa.
Tabla de frecuencias de las notas
musicales
Nota
Frecuencia
Do
261
Re
294
Mi
330
Fa
349
Sol
392
La
440
a. Generar 2 tonos en octavas diferentes (consultar las frecuencias de cada nota
fm=22050 ;
t=0:1/fm:1;
f=261,626;
do=sin(2*pi*f*t);
plot(t,do,'y');
%legend('do');
axis([0 0.01 -1.2 1.2])
hold on;
%wavplay(do,fm);
f1=293,665;
re=sin(2*pi*f1*t);
plot(t,re,'m');
%legend('re')
%wavplay(re,fm);
f2= 329,628;
mi=sin(2*pi*f2*t);
plot(t,mi,'c');
%legend('re')
%wavplay(mi,fm);
f3= 349,228;
fa=sin(2*pi*f3*t);
plot(t,fa,'r');

%legend('re')
%wavplay(fa,fm);
f4= 391,995;
sol=sin(2*pi*f4*t);
plot(t,sol,'g');
%legend('re')
%wavplay(sol,fm);
f5= 440;
la=sin(2*pi*f5*t);
plot(t,la,'b');
%legend('re')
%wavplay(sol,fm);

b. Reproducir esos tonos generados una enseguida de otro, de forma tal que tenga un sonido
armnico.
wavplay(do,fm);
wavplay(re,fm);
wavplay(mi,fm);
wavplay(fa,fm);
wavplay(sol,fm);
wavplay(la,fm);
wavplay(do,fm);
wavplay(la,fm);
wavplay(sol,fm);
wavplay(fa,fm);
wavplay(fa,fm);
wavplay(mi,fm);
wavplay(mi,fm);
wavplay(re,fm);
wavplay(fa,fm);
wavplay(re,fm);
wavplay(do,fm);

c. Restar las seales y reproducir el resultado de ella. En cada caso anterior graficar musical,
utilizar slo 5 octava) con tiempos de duracin diferentes. Sonido armnico. Las seales
obtenidas.
z=-do+re+mi+fa+sol+la+do
plot(t,z)
axis([0 0.05 -5 5])
wavplay(z,fm);

z=do-re+mi+fa+sol+la+do
plot(t,z)
axis([0 0.05 -5 5])
wavplay(z,fm);

z=do+re-mi+fa+sol+la+do
plot(t,z)
axis([0 0.05 -5 5])
wavplay(z,fm);

z=do+re+mi-fa+sol+la+do
plot(t,z)
axis([0 0.05 -5 5])
wavplay(z,fm);

z=do+re+mi+fa-sol+la+do
plot(t,z)
axis([0 0.05 -5 5])
wavplay(z,fm);

z=do+re+mi+fa+sol-la+do
plot(t,z)
axis([0 0.05 -5 5])
wavplay(z,fm);

z=do+re+mi+fa+sol+la-do
plot(t,z)
axis([0 0.05 -5 5])
wavplay(z,fm);

2. Representar las siguientes seales discretas x1(n)=sin (pi*n) y x2(n)=cos (2*pi*100*n) si se


muestrean a una frecuencia de 185 Hz.
n=0:185;
x1=sin(pi*n);
x2=cos(2*pi*100*n);
stem(n,x1);

n=0:185;
x1=sin(pi*n);
x2=cos(2*pi*100*n);
stem(n,x2);

3. Tome el nmero celular de uno de los integrantes del grupo, a partir de el genere una matriz
cuadrada (a), cada digito se almacena en una celda de la matriz; emplee los dgitos que requiera
para formar la matriz de un orden superior a 2x2, si los dgitos no son suficientes, repita los que
necesite hasta completar el orden de la matriz a trabajar. Con la matriz obtenida realice:
a. b=3*a
b. c=a-b
c. d=a+c
>> Matriz22

A=

12

0 27

15

6 21

C=

B=

-6 -4
-8

0 -18

-10 -4 -14

D=

12

16

0 36

20

8 28

ans =

-6 -8 -10
-4

0 -4

0 -18 -14

ans =

0.9000 0.7000 -0.9000


-0.8500 -1.0500 1.3500
-0.4000 -0.2000 0.4000
4. Realice un programa que capture los datos a almacenar en dos vectores V1 y V2 y los compare
elemento a elemento, de forma tal que genere un tercer vector V3 que almacene: el mismo
nmero si en la comparacin resultan ser iguales, el mayor de ellos si resultan ser diferentes y es
par el mayor, si son diferentes pero el mayor es impar debe almacenar el menor
Ejemplo:
V1 = [ 1 2 3 4 5 6 7]
V2 = [ 3 4 5 6 5 8 7 9 10]
V3 = [1 4 3 6 5 8 7]
clc
close all
clear all

v1= input('Digite la cantidad de elementos que contendra el primer


vector: ');
for i=1:1:v1
vector1(i) = input('Digite numero : ');
end
v2= input('Digite la cantidad de elementos que contendra el segundovector
: ');
for i=1:1:v2
vector2(i) = input('Digite numero : ');
end
for i=1:length(vector1);
if vector1(i) == vector2(i);
vector3(i) = vector1(i);
else
if vector1(i) > vector2(i);
if mod(vector1(i),2) == 0;
vector3(i)=vector1(i);
else vector3(i)=vector2(i);
end
else
if vector2(i) > vector1(i);
if mod(vector2(i),2) == 0;
vector3(i)=vector2(i);
else vector3(i)=vector1(i);
end
end
end
end
end
vector3

Digite la cantidad de elementos que contendra el primer vector: 3


Digite numero : 1
Digite numero : 2
Digite numero : 3
Digite la cantidad de elementos que contendra el segundovector : 4
Digite numero : 3
Digite numero : 4
Digite numero : 5
Digite numero : 6

vector3 =

Вам также может понравиться