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 señal seno como se muestra a continuación: 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 señal o tono a ge nerar plot(t,X); wavplay(x,fm); reproduce el tono definido 1. Experimentalmente genere tonos para construir una se ñal audible armoniosa. Tabla de frecuencias de las notas musicales Nota
Do Re Mi Fa Sol La
Frecuencia
261 294 330 349 392 440
a. Generar 2 tonos e n 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' plot(t,do,'y'); ); %legend('do'); axis([0 0.01 -1.2 1.2]) hold on on; ; %wavplay(do,fm); f1=293,665; re=sin(2*pi*f1*t); plot(t,re,'m' plot(t,re,'m'); ); %legend('re') %wavplay(re,fm); f2= 329,628; mi=sin(2*pi*f2*t); plot(t,mi,'c' plot(t,mi,'c'); ); %legend('re') %wavplay(mi,fm); f3= 349,228; fa=sin(2*pi*f3*t); plot(t,fa,'r' 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 armónico. 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 señales y reproducir e l resultado de ella. En cada caso anterior gr aficar musical, utilizar sólo 5 octava) con tiempos de duración diferentes. Sonido armónico. Las señales 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 señales 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 número 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 dígitos que requiera para formar la matriz de un orden superior a 2x2, si los dígitos 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=
3
2
0
4
0
9
5
2
7
9
6
0
12
0
27
15
6
21
-6
-4
0
-8
0 -18
C=
B=
-10 -4 -14
D=
12
8
0
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 número si en la comparación 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 e l 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 =
1
4
3