Ecco il mio codice per un segnale a due tonalità, dove uso una banda di arresto per rimuovere il tono più alto e quindi tracciato il prima (in blu) e dopo (in rosso) nel dominio della frequenza dopo aver contorto il mio segnale con i coefficienti di filtro .
Se inserisci questo codice in Matlab puoi vedere chiaramente che la frequenza più alta è stata rimossa con successo dal filtro, ma per qualche ragione l'ampiezza della frequenza più bassa è stata dimezzata e più aumento il numero di coefficienti del filtro, più appiattisce la mia intera curva, perché succede? E come posso impedirlo in modo che la banda di arresto non si propaghi verso l'esterno? Ecco l'immagine e il codice:
fSampling = 8000; tSampling = 1 / fSampling; t = 0: t Campionamento: 0,005; F0 = 1000; F1 = 3000; xt = sin (2 * pi * F0 * t) + sin (2 * pi * F1 * t); ht = fir1 (40, .25, 'stop'); yt = conv (xt, ht); fAxis = -4000: 125: 4000-125; xF = fft (xt, 64); MagXF = fftshift (abs (xF)); plot (fAxis, MagXF); resisti yF = fft (yt, 64); MagYF = fftshift (abs (yF)); plot (fAxis, MagYF, 'r')