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.