Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Compare el contenido de frecuencia de dos señales

La coherencia espectral ayuda a identificar la similitud entre las señales en el dominio de frecuencia. Los valores grandes indican los componentes de frecuencia comunes a las señales.

Cargue dos señales de sonido en el espacio de trabajo. Se muestrean a 1 kHz. Calcule sus espectros de potencia utilizando y trace los unos junto a los otros.periodograma

load relatedsig  Fs = FsSig;  [P1,f1] = periodogram(sig1,[],[],Fs,'power'); [P2,f2] = periodogram(sig2,[],[],Fs,'power');  subplot(2,1,1) plot(f1,P1,'k') grid ylabel('P_1') title('Power Spectrum')  subplot(2,1,2) plot(f2,P2,'r') grid ylabel('P_2') xlabel('Frequency (Hz)')

Cada señal tiene tres componentes de frecuencia con energía significativa. Dos de esos componentes parecen compartirse. Encuentra las frecuencias correspondientes usando.findpeaks

[pk1,lc1] = findpeaks(P1,'SortStr','descend','NPeaks',3); P1peakFreqs = f1(lc1)
P1peakFreqs = 3×1

  165.0391
   35.1562
   94.7266

 [pk2,lc2] = findpeaks(P2,'SortStr','descend','NPeaks',3); P2peakFreqs = f2(lc2)
P2peakFreqs = 3×1

  165.0391
   35.1562
  134.7656

Los componentes comunes se encuentran alrededor de 165 y 35 Hz. Puede utilizar para encontrar las frecuencias coincidentes directamente.mscohere Trazar la estimación de coherencia. Encuentra los picos por encima de un umbral de 0,75.

[Cxy,f] = mscohere(sig1,sig2,[],[],[],Fs);  thresh = 0.75; [pks,locs] = findpeaks(Cxy,'MinPeakHeight',thresh); MatchingFreqs = f(locs)
MatchingFreqs = 2×1

   35.1562
  164.0625

 figure plot(f,Cxy) ax = gca; grid xlabel('Frequency (Hz)') title('Coherence Estimate') ax.XTick = MatchingFreqs; ax.YTick = thresh; axis([0 200 0 1])

Obtienes los mismos valores que antes. Puede encontrar el contenido de frecuencia común a dos señales sin estudiar las dos señales por separado.

Consulte también

| |

Temas relacionados