如何用matlab消除谐波,如何在含有整次谐波和非整次谐波的信号中去除整次谐波?...
陷波器程序如下,麻煩幫忙看看
clc;
clear all;
close all;
x = 0 : 0.05 : 10;
s= 210 * exp(-0.25 * x) .* cos(2 * pi * 1.5 * x + pi) + 110 * exp(0.25 * x) .* cos(2 * pi * 1.0 * x + pi/2 );
%load data;
%s=cc;
N=length(s);? ?? ?? ?? ?? ?? ?? ?? ?? ? % 信號長度
fs=1000;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???% 采樣頻率
n=1:N;
n2=1:N/2;
tt=(n-1)/fs;? ?? ?? ?? ?? ?? ?? ?? ?? ? % 時間刻度
ff=(n2-1)*fs/N;? ?? ?? ?? ?? ?? ?? ?? ? % 頻率刻度
X=fft(s);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? % 譜分析
figure(1)
subplot 311;
plot(tt,s,'k');
title('原始數據'); xlabel('時間/s'); ylabel('幅值');
X=X/max(abs(X));
subplot 312;
plot(ff,abs(X(n2)),'k');
axis tight; title('譜分析');
xlabel('頻率/Hz'); ylabel('幅值');
subplot 313;
plot(tt,abs(X(n)));
% for k=1:5? ?? ?? ?? ?? ?? ?? ?? ?? ???% 自適應陷波器
%? ???j=(k-1)*2+1;? ?? ?? ?? ?? ?? ?? ?? ?% 設置50Hz和它的奇次諧波頻率
%? ???f0=116.73*j;
%? ???j=(k-1)*2+1;? ?? ?? ?? ?? ?? ?? ?? ?% 設置50Hz和它的奇次諧波頻率
f0=116.73;
x1=cos(2*pi*tt*f0);? ?? ?? ?? ?? ???% 設置x1和x2
x2=sin(2*pi*tt*f0);
w1=0;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? % %初始化w1和w2
w2=100;
e=zeros(1,N);? ?? ?? ?? ?? ?? ?? ???% %初始化e和y
y=zeros(1,N);
mu=0.0000001;? ?? ?? ?? ?? ?? ?? ?? ?? ???% 設置迭代步長
for i=1:N? ?? ?? ?? ?? ?? ?? ?? ?? ?% 自適應陷波器
y(i)=w1*x1(i)+w2*x2(i);? ?? ?? ?% 計算y
e(i)=s(i)-y(i);? ?? ?? ?? ?? ???% 計算e
w1=w1+mu*e(i)*x1(i);? ?? ?? ?? ?% 調整w
w2=w2+mu*e(i)*x2(i);
end
x=e;
% end
output1=e;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? % 陷波器輸出
總結
以上是生活随笔為你收集整理的如何用matlab消除谐波,如何在含有整次谐波和非整次谐波的信号中去除整次谐波?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java编写算术平均数,[求助]基础-怎
- 下一篇: ubuntu 没有php.ini,lin