Matlab 滤波后波形图不正确
我有一个电流信号,我的任务是提取前5次谐波并显示对应于这些谐波的波形 这是当前信号的fft,因此您可以可视化波形的位置及其相对高度: (忽略y刻度——它还没有被修正) 这就是我为解决这个问题所做的: 我制作了五个四阶butter带通滤波器来提取每个谐波:Matlab 滤波后波形图不正确,matlab,plot,filtering,signal-processing,fft,Matlab,Plot,Filtering,Signal Processing,Fft,我有一个电流信号,我的任务是提取前5次谐波并显示对应于这些谐波的波形 这是当前信号的fft,因此您可以可视化波形的位置及其相对高度: (忽略y刻度——它还没有被修正) 这就是我为解决这个问题所做的: 我制作了五个四阶butter带通滤波器来提取每个谐波: orderN = 4; % Fundamental frequency passband1 = [40 60]/(samplingRate/2); [b,a] = butter(orderN, passband1, 'bandpass')
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');
出于某种奇怪的原因,这就是我得到的情节:
我无法解释情节中的那些起伏为什么这些波形振幅会这样增减?
下面是它的外观:
(请忽略刻度)
如何使我的过滤器输出看起来像第二张图片
请帮忙我想有两件事: 如果我没记错的话,对于通带和阻带,MATLAB为您设计了2*n阶滤波器。类型:帮助黄油和验证 第二件事: 应用过滤器时,会发生两种情况: 第一个是瞬态响应,类似于负指数 第二个是稳态响应,即瞬态结束后的稳态响应 如果你观察你的信号,它们从0开始的次数越多,它们变得越“稳定”。这就像在你的波的顶部有一个指数衰减的正弦波 还有一件事: FFT将x轴显示为“Hz”。如果这是正确的,请小心过滤器的设计 我相信你通过的是w,不是f。你通过了2*pi*f。同样,帮助黄油应该指定这一点
所以你的过滤器关闭了,“尖峰”波被过滤了,只是它们需要时间才能消失。好了,伙计们,我让它工作了。我绘制了每个滤波信号(I1、I2、I3、I4、I5)的FFT图,并看到: 这幅图向我展示了滤波已经起作用,每个谐波都被过滤掉了 现在每个谐波都是一个正弦波。所以我所做的就是从fft图中找出每个谐波的振幅,以及它出现的频率,然后把它变成正弦波
现在我得到了正确的图这可能是由于FFT加窗 这个问题真的属于dsp.stackexhcange.com你确定这不是原始信号的一部分吗?你可以试着用这些组件创建一个人工频率,看看你得到了什么。