Menu
Black Belt
  • Tout support
  • Wii
  • MS
Forum
  • Accueil
  • Actus
  • Tests
  • Vidéos
  • Images
  • Soluces
  • Forum
EtoileAbonnementRSS
jeuxvideo.com  /  Black Belt  /  Tous les forums  /  Forum Black Belt  / 

Topic Script TP Matlab

Sujet : Script TP Matlab

12
Page suivanteFin
Kriegor
Kriegor
MP
09 décembre 2008 à 17:51:08

Prière de laisser ce message jusqu'à demain 12H, c'est pour un exam :cool:

TP3

load speech.mat

whos

plot(speech)

xlabel('time(seconds)')

taille_bloc=512;

jolitaille=size(speech)-rem(size(speech),taille_bl
oc);

new_speech=speech(1:jolitaille);

figure

plot(new_speech)

nbre_bloc=jolitaille(1)/512;

twodinew_speech=reshape(new_speech,taille_bloc,nbr
e_bloc);

dt=1/22050;

energy=sum(twodinew_speech.*twodinew_speech*dt);

puissance=(1/sum(nbre_bloc))*sum(twodinew_speech.*
twodinew_speech);

RMS=mean(twodinew_speech);

whos

figure(2)

x=1:taille_bloc:jolitaille(1);

plot(x,energy,'r+')

hold on

plot(new_speech)

eseuil=0.0002;

energy_out=(energy>eseuil);

figure

plot(x,energy_out,'r')

hold on

plot(new_speech)

Kriegor
Kriegor
MP
09 décembre 2008 à 17:52:28

TP4

Fonction APC
function [A,phi]=APC(s,t,fo)

r=exp(2*pi*j*fo.*t);

dur=max(t)-min(t)

Te=(dur)./(size(t,2)-1)

PS=sum(s.*conj(r).*Te);

A=(2/dur).*abs(PS);

phi=angle(PS);

Fonction APFC
function [A,phi,fo]=APFC(s,t)

N=size(t,2);

dur=max(t)-min(t);

Te=(dur)./(N-1);

for k=1 : floor(N/2);

fk=k/dur;

r=exp(2*pi*j*fk*t);

PS(k)=(1/N)*sum(s.*conj(r));

end

[PS_max,kmax]=max(PS);

A=2*abs(PS_max)

phi=angle(PS_max)

fo=kmax/dur

Kriegor
Kriegor
MP
09 décembre 2008 à 17:54:51

TP4

type de script

%exercice IV-2

%a)

t=0:0.02:0.998;

A=1.3;

fo=5;

phi=2.8;

s=A*cos(2*pi*fo.*t+phi);

%On a défini le vecteur signal, le vecteur support temporel et

%la fréquence fo pour les introduire dans notre fonction APC.

[Aest,phiest]=APC(s,t,fo)

plot(t,s)

hold on

sest=Aest*cos(2*pi*fo.*t+phiest);

plot(t,sest,'rx--')

%tracé de s en fonction de t superposé à notre fonction sinusoïdale

%reconstituée

%erreur relative :

%sur l'amplitude

errampli=abs((A-Aest4)/A)*100

%vitesse de l'objet

v=1450

fe=1000

fr=fest6

vO=v*(1-(fe/fr))

Kriegor
Kriegor
MP
09 décembre 2008 à 17:56:03

TP5

function [y]=sciencef(t,k,To)

fo=1/To;

phi=0;

x=cos(2*pi*fo*t-phi)+2*sin(2*pi*fo*t-phi).*sin(2*p
i*fo*t-phi);

y=x.*exp(-j*2*pi*(k/To)*t);

script

To=1/fo;

k=-2:2;

Xk=(1/To)*quad8('sciencef',-To/2,To/2,[],[],k(5),T
o)

Kriegor
Kriegor
MP
09 décembre 2008 à 17:57:03

TP7

f1=1;

N=64; %On prend N égale à une puissance de 2 ce qui donne de meilleurs résultats

T1=1/f1;

To=1*T1;

m=To/T1;

fech=N/To;

tech=1/fech;

t=0:tech:(N-1)*tech;

s1=cos(2*pi*f1*t);

subplot(3,2,1)

plot(t,s1,'black')

TFS1=fft(s1)/N; %vecteur de N valeur indicé de 1 à N

% Les coefficients positifs se trouvent avant N/2 et les négatifs après

B=FFTshift(TFS1); % Pour réorganiser ce vecteur, on utilise la fonction FFTshift

% qui va "déplier" la deuxième partie du vecteur pour la mettre avant la première.

% Mais FFTshift renvoit encore un vecteur dont les valeurs des indices vont toujours de 1 à N.

support=-N/2:1:(N/2-1); % Pour tracer finalement nos coefficients, il faut se servir d'un support k

% variant de -N/2 à N/2-1 par pas de 1

% Puis on trace les différents graphes :

subplot(3,2,3)

plot(support,real(B))

subplot(3,2,4)

plot(support,imag(B),'rx--')

subplot(3,2,5)

plot(support,abs(B),'g')

subplot(3,2,6)

plot(support,angle(B),'y')

Kriegor
Kriegor
MP
09 décembre 2008 à 17:59:27

TP8

function [r]=core(x,y)

buf=y>99999999999999999999999;

%autre possibilité : buf=zeros(1,length(y))

x2=[x,buf];

buf_index=2:length(y);

for i=1:length(x2)

buf=[buf(buf_index),x2(i)];

r(i)=sum(buf.*y);

end

script

n=60;

b=15;

a=10;

y1=zeros(1,n);

for i=1:n;

if ((i>(b-a/2))&&(i<(b+a/2)));

y1(i)=1;

end

end
nrj1=sum(y1.*y1)

subplot(3,2,2)

stem(core(y1,y1))

max1=max(core(y1,y1))

%On remarque que les maximums de l'autocorrélation correspondent aux valeurs

%calculées des énergies

avec signal quelconque :
eseuil=nrj/2;

signal2=(core(radar_pulse,radar_received)>eseuil);

figure(6)

plot(signal2,'r')

hold on

plot(core(radar_pulse,radar_received))

val=sum(core(radar_pulse,radar_noise)>eseuil)
etc...

Kriegor
Kriegor
MP
09 décembre 2008 à 18:02:18

Voilà merci. Désolé de polluer ce forum, même s'il n'est plus trop fréquenté. Je ne savais pas trop quoi choisir d'autre et je sais que je ne l'oublierai pas demain matin quand je me connecterai pour récupérer ces informations au combien précieuse durant mon exam. Enfin bref, vous me comprenez! ^^
J'aime assez à l'idée que ce jeu va m'aider à récupérer une bonne note!! ^^

Kriegor
Kriegor
MP
09 décembre 2008 à 18:10:30

Un petit dernier pour la route :

TP2
boucle for :

i=1
for DT=0.25:0.25:10
intervalle(i)=DT
energy(i)=quad8('carre',-DT/2,DT/2,[],[],a)
i=i+1
end
plot(intervalle,energy)
energynum=(sum(carre(t,a).*0,1)

histo:
hist(clari,50)
[N,X]=hist(clari.*clari,50)
Puissance=1/sum(N).*sum(X.*N)

Voilà merci encore.

Kriegor
Kriegor
MP
10 décembre 2008 à 11:21:33

C'est bon, un 20 en perspective.
Encore désolé et merci. Vous pouvez tout raser.

arnaud13330
arnaud13330
MP
15 décembre 2010 à 22:01:14

function [A,phi]=apc(fo,s,t)
r=exp(j*2*pi*fo*t);
Te=(max(t)-min(t))/(length(t)-1);
comp=sum(s.*conj(r)*Te);
mod=abs(comp);
A=2/(max(t)-min(t))*mod;
phi=angle(comp);
end

function [Aest,Phiest,fest]=apfc(s,t)
L=length(t); % L= Longeur de t
D=(t(1,L)-t(1,1));
N=L-1;
Te=D/N;
k=1;
for k=1:N/2
fk=k/D;
r=exp(2*pi*j*fk*t);
SR(k)=(1/N)*sum(s.*conj(r));
k=k+1;
end
[SRkmax,kmax]=max(SR);
Aest=2*abs(SRkmax);
Phiest=angle(SRkmax);
fest=kmax/(N*Te);
subplot(2,1,2)
k=1:N/2;
fk=k/D;
stem(fk,SR(k))
xlabel('fk')
ylabel('SR(k)')
title('SR(k) en fonction de fk','color','red')
end

arnaud13330
arnaud13330
MP
15 décembre 2010 à 22:06:04

function [fr,vo]=frvoc(fe,v,s_sonar,t_sonar);
L=length(t); % L= Longeur de t
D=(t(1,L)-t(1,1));
N=L-1;
Te=D/N;
k=1;
for k=1:N/2
fk=k/D;
r=exp(2*pi*j*fk*t);
SR(k)=(1/N)*sum(s.*conj(r));
k=k+1;
end
[SRkmax,kmax]=max(SR);
fr=kmax/(N*Te)
vo=v*(1-(fe/fr))

load(lab_data)
fe=1000;
v=1450;
s_sonar;
t_sonar;
plot(t_sonar, s_sonar)
[fr,vo]=frvoc(fe,v,s_sonar,t_sonar);

arnaud13330
arnaud13330
MP
15 décembre 2010 à 22:10:58

N=512;
speech(length(speech):N*143)=0;
LG=size(speech);
X=reshape(speech,N,143);
E=(sum(X.^2)./N);
Z(find(E>0.0002))=1;
Z(find(E<0.0002))=0;
Subplot(2,1,2);
support=(1:512:LG);
plot(speech);
hold on;
stairs(support,Z,'r');

arnaud13330
arnaud13330
MP
15 décembre 2010 à 22:12:08

%**********V-1)***********

N= 2^7;
f1=3;
T1=1;
T0=0;
ts=(T1-T0)/(N-1);
t=T0:ts:T1;
s1=1+2*sin(2*pi*f1*t);
subplot(5,1,1);
plot(t,s1);
title('signal d"origine');

S1=fft(s1)/N;
S1=fftshift(S1);
df=1/(T1-T0); % <-> fo=1/T0 intervalle en fréquence
k=-N/2:((N/2)-1);
fmax=(N/2)*df;
f=k*df;
subplot(5,1,2);
stem(f,real(S1));
title('réel');
subplot(5,1,3);
stem(f,imag(S1));
title('imaginaire');
subplot(5,1,4);
stem(f,abs(S1));
title('Module');
subplot(5,1,5);
stem(f,angle(S1).*(abs(S1)>1E-01));
title('Phase');

arnaud13330
arnaud13330
MP
15 décembre 2010 à 22:24:05

6.1
close all;
clear all;
%a)
y1=[zeros(1,10) ones(1,10) zeros(1,40)];
subplot(3,1,1);
stem(y1);
E1=sum(y1.^2)
subplot(3,1,2);
n2=1:1:10;
y2=[2*n2 zeros(1,50)];
stem(y2);
E2=sum(y2.^2)
subplot(3,1,3);
y3=[zeros(1,49) ones(1,1) zeros(1,10)];
stem(y3);
E3=sum(y3.^2)

%b)
figure;
subplot(3,1,1);
correl1=corr(y1,y1);
plot(correl1);
subplot(3,1,2);
correl2=corr(y2,y2);
plot(correl2);
subplot(3,1,3);
correl3=corr(y3,y3);
plot(correl3);
Maximum1=max(correl1)
Maximum2=max(correl2)
Maximum3=max(correl3)

%On remarque que la valeur de chaque énergie est égale à la valeur max de
%chaque autocorrélation

%c)
figure;
subplot(3,1,1);
intercor1=corr(y1,y2);
plot(intercor1);
subplot(3,1,2);
intercor2=corr(y1,y3);
plot(intercor2);
subplot(3,1,3);
intercor3=corr(y2,y3);
plot(intercor3);

6.2
close all;
clear all;

load correl_data.mat

%a)
subplot(3,1,1);
plot(dsss);
title('Signal dsss');
subplot(3,1,2);
plot(cs1, '-r');
title('Signal cs1');
subplot(3,1,3);
plot(cs2);
title('Signal cs2');
Ecs1=sum(cs1.^2)
Ecs2=sum(cs2.^2)

%b)
figure;
cor1=corr(dsss,cs1); %intercorrélation entre le signal mutltiplexé et le code le plus long cs1
plot(cor1);

function r=corr(x,y)
b=length(y); % longueur de y
x=[x zeros(1,b)]; % x = x suivit d'autant de zéros que b
a=length(x); % longueur de x
buff=zeros(1,b); % initialisation du buffer
z=[];
for k=1:a % k allant de 1 à longueur de x
buff=[buff(2:end) x(k)]; % buff = buff suivit de x
r(k)=sum(y.*buff); % corrélation de y avec buff
end

arnaud13330
arnaud13330
MP
15 décembre 2010 à 22:25:07

%**********V-2)***********
close all;
clear all;
%a)
T0=1;
T1=0.1;
N=2^9;
dt=T0/(N-1);
ti=-(T0/2);
tf=T0/2;
t=linspace(ti,(tf-dt),N);
s1= 2*(abs(t)<T1/2);
subplot(3,1,1);
stem(t,s1);

S1=fft(s1)/N;
S1=fftshift(S1);

df=1/T0; % <-> fo=1/T0 intervalle en fréquence
k=-N/2:((N/2)-1);

f=k*df;
subplot(3,1,2);
plot(f,abs(S1));

subplot(3,1,3);
argS1=angle(S1);
stem(f,argS1);

1986_inside
1986_inside
MP
24 novembre 2012 à 23:35:32

:-)

Oscar5597
Oscar5597
MP
07 décembre 2012 à 14:24:41

Le batard :rire:

Mario-slaceII
Mario-slaceII
MP
07 décembre 2012 à 14:25:20

Ca sert à quoi ce truc ? :noel:

Oscar5597
Oscar5597
MP
07 décembre 2012 à 14:26:13

Une anti seche :rire:

3615-18
3615-18
MP
07 décembre 2012 à 14:26:38

ça sent le cheat ici :fier:

12
Page suivanteFin
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : Evilash08, Vortex646, Tomy-Fett, Leirok, TARDYL1973, MamYume, Galactico, ]Faustine[, Latios[JV]
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

  • Aucun sujet à ne pas manquer