1 pièce(s) jointe(s)
Traitement de signal code morse
Bonjour à tous,
Alors voilà, pour un devoir, je me retrouve confrontée à un problème, dont je ne trouve pas la solution, ni même la démarche.
J'ai à ma disposition un signal bruité, avec un fort bruit blanc Gaussien.
Mon but est d'enlever le bruit pour réussir à retrouver le signal de base, qui est un signal de code Morse, que je devrais convertir en une phrase normale.
La chose est que je n'ai aucune idée de la manière dont je pourrais traiter mon signal pour en faire quelque chose.
si quelqu'un peut m'aider
Voici ce que j'ai fais sur MATLAB :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| format;
clear;
clc;
close all;
x=load ('signal1_bruite_BB1.mat'); % Vecteur
b=x.sig_bruit_BB1;
load signal1_bruite_BB1.mat
N=length(b)% Nombre de points de la séquence
Fe = 10; % Fréquence d'échantillonnage
t = (0:N-1)/Fe; %axe_temps
n=0:1:N-1;
plot(b)
title('Allure temporelle du signal');
figure()
plot(n/Fe,b)%représentation temporelle de x (fréquence normalisée)
title('Allure temporelle du signal'); xlabel('temps (sec)')
figure()
f=(0:N-1)/N*Fe; %fréquence du signal
plot(f,abs(fft(b)))
title('Representation frequentielle'); xlabel('Frequence (Hz)')
figure()
%CONSTRUCTION FILTRE PASSE BANDE
[Num,Den]= butter(5,[.19,.21]);%filtre de butterworth
filt=filter(Num,Den,b);
t=(0:N-1)/Fe;
P=length(filt);%renvoie la taille du signal filtré;
NFFT = 2^nextpow2(3600);%définition du nombre d'échantillon nécessaire pour la FFT
y = fft(filt,NFFT)/P;
f = Fe/2*linspace(0,1,NFFT/2+1); %construction de l'axe des abscisses
plot(f,2*abs(y(1:NFFT/2+1)))
figure
plot(t,filt)
title('signal filtré');grid |
Après je ne sais plus quoi faire.