Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 滤波后波形图不正确_Matlab_Plot_Filtering_Signal Processing_Fft - Fatal编程技术网

Matlab 滤波后波形图不正确

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')

我有一个电流信号,我的任务是提取前5次谐波并显示对应于这些谐波的波形

这是当前信号的fft,因此您可以可视化波形的位置及其相对高度:

(忽略y刻度——它还没有被修正)

这就是我为解决这个问题所做的:

我制作了五个四阶butter带通滤波器来提取每个谐波

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你确定这不是原始信号的一部分吗?你可以试着用这些组件创建一个人工频率,看看你得到了什么。