filtering data by removing a specified frequency (noise)

Hi, I have Pressure-crank angle degree data for an Internal Combustion Engine, before combustion starts, the curve is realistic and smooth, after the combustion starts, a pressure wave, of known frequency, travelling through the combustion chamber resulting in disturbing the original pressure increase curve, how can I remove this known frequency from my data ? I tried with fft, butter, and filter but I couldn't done, any kind of help will be greatly appreciated, thanks in advance,

2 件のコメント

Image Analyst
Image Analyst 2014 年 2 月 7 日
Some screenshots would help. Like, what does your data look like normally, and with the pressure wave rippling though it? And what do the spectra look like for those two cases?
Mamdouh
Mamdouh 2014 年 2 月 7 日
編集済み: Mamdouh 2014 年 2 月 7 日
thanks a lot for your concern and reply, I attached my case, the horizontal axis is the crank angle degrees (theta), while the vertical is the pressure in (bar), the engine rotates with 5000 revolutions per min., the disturbance frequency is 252 kHz, starts with the ignition, causing the saw teeth shape, and I wanna remove it, the regular shape is almost similar but without this oscillation,

サインインしてコメントする。

 採用された回答

Image Analyst
Image Analyst 2014 年 2 月 7 日
編集済み: Image Analyst 2014 年 2 月 28 日

1 投票

Take the Fourier Transform. Look for the spike at that frequency (252 kHz) and set it to zero. Then inverse transform.
Or, alternatively, you could try a Savitkzy-Golay filter (sgolayfilt in the Signal Processing Toolbox) for a one-liner solution. The SG filter is a sliding polynomial filter - it replaces the element at the center of the sliding window by the polynomial fit, at that location, of the data inside the window. (Demo available upon request.)

6 件のコメント

Mamdouh
Mamdouh 2014 年 2 月 7 日
thanks again, Image Analyst, really, I appreciate your fast and informative replies, regards
Marlene Berke
Marlene Berke 2016 年 3 月 11 日
Could you explain how to set the spike at a particular frequency to zero?
Image Analyst
Image Analyst 2016 年 3 月 11 日
You need to find out what indexes of your signal encompass the spike, then do this:
yourSignal(index1:index2) = 0;
Martian
Martian 2017 年 1 月 11 日
Hello Image analyst , Its really useful topic for me . Can you give demo of how to use Savitkzy-Golay filter for this particular case and also how to determine disturbance frequency. Thank you in advance.
Image Analyst
Image Analyst 2017 年 1 月 11 日
No, but I can attach some pre-existing demos I've made using the function.
Martian
Martian 2017 年 1 月 11 日
Thank you so much for your reply.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

質問済み:

2014 年 2 月 6 日

コメント済み:

2017 年 1 月 11 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by