SAMPLING RATE SELECTION FOR FM NOISE DESIGN
Contents
Created by Juan-Pablo Caceres 21-Jul-2006. Last Revision: Under Subversion Control System
clear all close all
Motivation
This document shows that with a sampling rate of 4000 Hz one can easily desing FM masking noises that have center frequencies going from 100 Hz to around 800 Hz. The advantages of using smaller sampling rates are that one can have a more accurate bandpass filter design for low frequencies (100 Hz in this case) and that the cuttoff frrecuency of the hilbert transformer filter are smaller (also usefull for designs with samlls center frequencies).
Filter design check
In this section we check that the filter design for the boundaries needed are correctly design We will check this for frecuencies going from 100 to 800 Hz.
fs = 4000; %Hz
Hilbert trasformer
[hr, hrzp] = hilbertfir(fs); %Parks-McClellan design Hr = fft(hrzp); % Freq. response of optimal SSB filter Hrp = fftshift(Hr); %Plot figure N = length(hrzp); f = fs*((0:N-1)/N - 0.5); plot(f,20*log10(abs(Hrp))); grid; % Don't normalize (see below) s = sprintf(['Length %d Optimal Chebyshev FIR',... ' Single-Sideband-Filter Freq. Response'],257); title(s); xlabel('Frequency (Hz)'); ylabel('Gain (dB)')
Bandpass filter design
fc1 = 100; delf = erb(fc1); [b,a] = bpdiir(fc1,delf,fs); %design IIR filter design [H1,W] = freqz(b,a); figure plot(W/pi*fs/2,20*log10(abs(H1))); grid; xlabel('Frequency (Hz)'); ylabel('Amplitude (dB)'); title({'Bandpass Filter Design for Noise at different center frequencies','Sampling Rate fs = 4000 Hz'}) hold on fc2 = 800; delf = erb(fc2); [b,a] = bpdiir(fc2,delf,fs); %design IIR filter design [H2,W] = freqz(b,a); plot(W/pi*fs/2,20*log10(abs(H2)),'r'); legend('fc = 100Hz','fc = 800Hz') V = axis; axis([V(1:2) -80 V(4)]);
Conclusions
For fs = 4000Hz, one can easily design the fm method for center frequencies from 100 Hz to 800 Hz.