High pass filter problem
12 次查看(过去 30 天)
显示 更早的评论
Hello,
So I am having a hard time figuring this one out. I am trying to apply a high pass filter to a voltage signal with a small AM modulation
Every time I filter it with the high pass filter, it does remove the mean but it adds this weird AM modulation distortion which is larger than the AM signal I am trying to recover.
Seen below, the mean is correctly removed

However, a modulation distortion is added. You can see it if I zoom in on the top or bottom envelope. The top plot is the small AM signal I am trying to recover, but the HP filter destoys this (lower plot). The small AM modulation is no longer visable in bottom plot because of this added noise.

Its odd because the magnitude response looks fine.

And the code is simple, just two lines.
[bhp,ahp] = butter(1,32/(sParam.Fs/2),'high');
HPOut = filter(bhp,ahp,sParam.TIA_Out);%Apply HP filter
I have tried a few other ways too
(with a different filtering function)
[bhp,ahp] = butter(1,32/(sParam.Fs/2),'high');
HPOut = filtfilt(bhp,ahp,sParam.TIA_Out);%Apply HP filter
(with a different filter)
[bhp,ahp] = rc_filter(49.9*kOhm, 0.1*uF, sParam.Fs, 'high');
HPOut = filtfilt(bhp,ahp,sParam.TIA_Out);%Apply HP filter
It always results in the same thing.
The only thing that works is to do a subtraction of the mean. Which isn’t the same as a true RC filter
HPOut = sParam.TIA_Out-mean(sParam.TIA_Out);
it seems like it may be some sort of quantization issue to me but I am unsure. Thanks in advance for any help
0 个评论
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Analog Filters 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!