Prière de laisser ce message jusqu'à demain 12H, c'est pour un exam
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)
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
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))
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)
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')
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...
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!! ^^
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.
C'est bon, un 20 en perspective.
Encore désolé et merci. Vous pouvez tout raser.
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
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);
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');
%**********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');
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
%**********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);
Le batard
Ca sert à quoi ce truc ?
Une anti seche
ça sent le cheat ici