El processament de senyals és una àrea fonamental en moltes aplicacions d'enginyeria i ciència, incloent telecomunicacions, àudio, vídeo, i sistemes de control. MATLAB és una eina poderosa per al processament de senyals gràcies a les seves capacitats de càlcul numèric i les seves funcions especialitzades.
Objectius del Tema
- Introduir els conceptes bàsics del processament de senyals.
- Aprendre a carregar, visualitzar i analitzar senyals en MATLAB.
- Aplicar tècniques bàsiques de filtratge i transformació de senyals.
- Realitzar anàlisi en el domini de la freqüència utilitzant la Transformada de Fourier.
Contingut
- Introducció al Processament de Senyals
El processament de senyals implica la manipulació de senyals per extreure informació útil, millorar la qualitat del senyal, o preparar-lo per a una anàlisi posterior. Els senyals poden ser de diferents tipus, com ara senyals d'àudio, senyals de vídeo, senyals biomèdics, etc.
- Carregant i Visualitzant Senyals
MATLAB proporciona diverses funcions per carregar i visualitzar senyals. A continuació es mostra com carregar un senyal d'àudio i visualitzar-lo.
Exemple: Carregar i Visualitzar un Senyal d'Àudio
% Carregar un fitxer d'àudio
[senyal, fs] = audioread('exemple_audio.wav');
% Visualitzar el senyal en el domini del temps
t = (0:length(senyal)-1)/fs;
plot(t, senyal);
xlabel('Temps (s)');
ylabel('Amplitud');
title('Senyal d''Àudio');Explicació:
audioreadcarrega un fitxer d'àudio i retorna el senyal i la seva freqüència de mostreig (fs).plotes fa servir per visualitzar el senyal en el domini del temps.
- Filtratge de Senyals
El filtratge és una tècnica essencial en el processament de senyals per eliminar soroll o extreure components específics del senyal.
Exemple: Filtratge Pas-Baix
% Dissenyar un filtre pas-baix
fc = 1000; % Freqüència de tall en Hz
[b, a] = butter(6, fc/(fs/2)); % Filtre Butterworth de 6è ordre
% Aplicar el filtre al senyal
senyal_filtrat = filter(b, a, senyal);
% Visualitzar el senyal filtrat
plot(t, senyal_filtrat);
xlabel('Temps (s)');
ylabel('Amplitud');
title('Senyal Filtrat (Pas-Baix)');Explicació:
butterdissenya un filtre Butterworth de 6è ordre amb una freqüència de tall de 1000 Hz.filteraplica el filtre al senyal.
- Transformada de Fourier
La Transformada de Fourier (FFT) és una eina poderosa per analitzar senyals en el domini de la freqüència.
Exemple: Anàlisi de Freqüència amb FFT
% Calcular la FFT del senyal
N = length(senyal);
Y = fft(senyal);
f = (0:N-1)*(fs/N); % Vector de freqüències
% Visualitzar l'espectre de freqüència
plot(f, abs(Y));
xlabel('Freqüència (Hz)');
ylabel('Magnitud');
title('Espectre de Freqüència del Senyal');Explicació:
fftcalcula la Transformada de Fourier del senyal.abses fa servir per obtenir la magnitud de la FFT.plotvisualitza l'espectre de freqüència.
- Exercicis Pràctics
Exercici 1: Carregar i Visualitzar un Senyal
Carrega un fitxer d'àudio diferent i visualitza el senyal en el domini del temps.
Exercici 2: Aplicar un Filtre Pas-Alt
Dissenya i aplica un filtre pas-alt a un senyal d'àudio. Visualitza el senyal filtrat.
Exercici 3: Anàlisi de Freqüència
Calcula i visualitza l'espectre de freqüència d'un senyal d'àudio diferent utilitzant la FFT.
Solucions dels Exercicis
Solució 1: Carregar i Visualitzar un Senyal
[senyal, fs] = audioread('altre_audio.wav');
t = (0:length(senyal)-1)/fs;
plot(t, senyal);
xlabel('Temps (s)');
ylabel('Amplitud');
title('Senyal d''Àudio');Solució 2: Aplicar un Filtre Pas-Alt
fc = 1000; % Freqüència de tall en Hz
[b, a] = butter(6, fc/(fs/2), 'high'); % Filtre Butterworth de 6è ordre, pas-alt
senyal_filtrat = filter(b, a, senyal);
plot(t, senyal_filtrat);
xlabel('Temps (s)');
ylabel('Amplitud');
title('Senyal Filtrat (Pas-Alt)');Solució 3: Anàlisi de Freqüència
N = length(senyal);
Y = fft(senyal);
f = (0:N-1)*(fs/N);
plot(f, abs(Y));
xlabel('Freqüència (Hz)');
ylabel('Magnitud');
title('Espectre de Freqüència del Senyal');Conclusió
En aquesta secció, hem après els conceptes bàsics del processament de senyals en MATLAB, incloent la càrrega i visualització de senyals, el filtratge, i l'anàlisi de freqüència amb la Transformada de Fourier. Aquestes tècniques són fonamentals per a moltes aplicacions pràctiques en enginyeria i ciència. En el següent tema, explorarem el processament d'imatges en MATLAB.
Curs de Programació en MATLAB
Mòdul 1: Introducció a MATLAB
- Començant amb MATLAB
- Interfície i Entorn de MATLAB
- Comandes i Sintaxi Bàsiques
- Variables i Tipus de Dades
- Operacions i Funcions Bàsiques
Mòdul 2: Vectors i Matrius
- Creació de Vectors i Matrius
- Operacions amb Matrius
- Indexació i Segmentació
- Funcions de Matrius
- Àlgebra Lineal en MATLAB
Mòdul 3: Estructures de Programació
- Flux de Control: if, else, switch
- Bucles: for, while
- Funcions: Definició i Abast
- Scripts vs. Funcions
- Depuració i Gestió d'Errors
Mòdul 4: Visualització de Dades
- Conceptes Bàsics de Gràfics
- Gràfics 2D
- Gràfics 3D
- Personalització de Gràfics
- Tècniques Avançades de Gràfics
Mòdul 5: Anàlisi de Dades i Estadística
- Importació i Exportació de Dades
- Estadístiques Descriptives
- Preprocessament de Dades
- Anàlisi de Regressió
- Proves Estadístiques
Mòdul 6: Temes Avançats
- Entrada/Sortida de Fitxers
- Gestió de Grans Conjunts de Dades
- Tècniques d'Optimització
- Conceptes Bàsics de Simulink
- Computació Paral·lela
