Comb filtering when sampling frequency is not multiplicative of the interference fundamental frequency

Illustration
Lincoln - 2021-01-27T09:49:27+00:00
Question: Comb filtering when sampling frequency is not multiplicative of the interference fundamental frequency

Hi all,   I would like to apply a notch comb filter (e.g. by using the iircomb function), but my sampling frequency is 976 Hz and the fundamental frequency of the noise signal is 50 Hz.   Any ideas of how I could achieve that would be greatly appreciated. An alternative would be to use multiple notch filters (e.g. iirnotch) but this would increase dramatically the associated computational costs.

Expert Answer

Profile picture of John Michell John Michell answered . 2025-11-20

When the sampling frequency is not a multiple of the interference fundamental frequency, comb filtering can be challenging. Here are some strategies to address this issue:

Strategies for Comb Filtering

1. Resampling: Adjust the sampling frequency so that it becomes a multiple of the interference frequency. This can be done by either downsampling or upsampling the signal. For example, if your sampling frequency is 976 Hz and the interference frequency is 50 Hz, you can downsample to a frequency that is a multiple of 50 Hz.

2. Multiple Notch Filters: Use multiple notch filters to target different harmonics of the interference frequency. While this increases computational cost, it can effectively reduce the interference.

3. Advanced Filtering Techniques: Implement advanced filtering techniques such as recursive or non-recursive comb filters. These filters can handle non-multiplicative sampling frequencies more effectively.

Example MATLAB Code

Here's an example of how you might implement a recursive comb filter in MATLAB:


% Example parameters
fs = 976; % Sampling frequency
f0 = 50; % Interference frequency
% Resampling to make fs a multiple of f0
newFs = 1000; % New sampling frequency
signal = resample(originalSignal, newFs, fs);
% Recursive comb filter
[b, a] = iircomb(newFs, f0);
filteredSignal = filter(b, a, signal);

 Explanation:

- Resampling: Adjust the sampling frequency to a multiple of the interference frequency.
- Recursive Comb Filter: Use the `iircomb` function to create a comb filter with the new sampling frequency.

By following these strategies, you can effectively apply comb filtering even when the sampling frequency is not a multiple of the interference fundamental frequency.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!