我有一个电流信号,我的任务是提取前5个谐波并显示与这些谐波相对应的波形。
这是固有信号的fft,因此您可以看到波形的位置及其相对高度:
(忽视y量表 - 它还没有被纠正)
所以这就是我为解决这个问题所做的:
我制作了五个四阶黄油带通滤波器来提取每个谐波:
orderN = 4;
% Fundamental frequency
passband1 = [40 60]/(samplingRate/2);
[b,a] = butter(orderN, passband1, 'bandpass');
I1 = filter(b,a,I);
subplot 511
plot(I1,'r');
% Second harmonic
passband2 = [98 102]/(samplingRate/2);
[b2,a2] = butter(orderN, passband2, 'bandpass');
I2 = filter(b2,a2,I);
subplot 512
plot(I2,'b');
% Third Harmonic
passband3 = [146 154]/(samplingRate/2);
[b3,a3] = butter(orderN, passband3, 'bandpass');
I3 = filter(b3,a3,I);
subplot 513
plot(I3,'g');
% Fourth Harmonic
passband4 = [190 210]/(samplingRate/2);
[b4,a4] = butter(orderN, passband4, 'bandpass');
I4 = filter(b4,a4,I);
subplot 514
plot(I4,'m');
% Fifth Harmonic
passband5 = [240 260]/(samplingRate/2);
[b5,a5] = butter(orderN, passband5, 'bandpass');
I5 = filter(b5,a5,I);
subplot 515
plot(I5,'k');
出于某种奇怪的原因,这是我得到的情节:
我无法解释情节中的那些颠簸。 为什么那些波形幅度会增加和减少?
以下是它应该是什么样子:
(请忽略尺度)
如何让我的滤镜输出看起来像第二张图片?
请帮忙
答案 0 :(得分:0)
我认为有两件事:
如果我没记错的话,对于通带和阻带,MATLAB为您设计2 * n阶滤波器。输入:帮助黄油并验证。
第二件事:
当你应用过滤器时,会发生两件事:
第一个是瞬态响应,就像负指数一样 第二个是稳态响应,即瞬态死亡之后。
如果你观察你的信号,他们从0开始越多,他们变得越“稳定”。就好像你的波浪上有一个指数垂死的正弦波。
还有一件事: 您的FFT将x轴显示为“Hz”。如果这是正确的,请小心您的滤镜设计。
我相信你过去了,而不是f。你正在通过2 * pi * f。再一次,帮助黄油应该指定。
所以你的过滤器已关闭,“尖峰”波浪正在被过滤,只是需要时间让它们死亡。
答案 1 :(得分:0)
好的伙计,我得到了它的工作。我绘制了每个滤波信号(I1,I2,I3,I4,I5)的FFT,并看到了这一点:
http://i.imgur.com/WNx8ZoS.jpg
此图表显示滤波已经过滤,并且每个谐波都已滤除。
现在每个谐波都是一个正弦波。所以我所做的就是从fft图中找出每个谐波的幅度以及它存在的频率并使其成为一个sin波
现在我得到了正确的情节
答案 2 :(得分:0)
这可能是由于FFT窗口化造成的。 http://en.wikipedia.org/wiki/Window_function