Chinaunix首页 | 论坛 | 博客
  • 博客访问: 671045
  • 博文数量: 90
  • 博客积分: 1631
  • 博客等级: 上尉
  • 技术积分: 1413
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-15 22:43
文章分类
文章存档

2017年(8)

2016年(9)

2015年(11)

2014年(10)

2013年(9)

2012年(9)

2010年(2)

2009年(10)

2008年(22)

我的朋友

分类: C#/.net

2013-11-06 17:03:01

      电力系统在带非线性负载时,电压会产生很大的谐波和畸变,为了便于对电压包络线进行理论分析,需要对数据进行滤波处理。当然简单的平滑函数也可以简单处理,如使用smooth函数。下面展示一种数字信号处理的常见滤波方法:切比雪夫滤波器。

     下面是带很大谐波的电压包络线:

       应用如下的切比雪夫滤波程序:

点击(此处)折叠或打开

  1. %使用注意事项:通带或阻带的截止频率的选取范围是不能超过采样率的一半
  2. %即,f1,f3的值都要小于 Fs/2
  3. %x:需要带通滤波的序列
  4. f1=1;%通带截止频率
  5. f3=2;%阻带截止频率
  6. %rp:边带区衰减DB数设置
  7. %rs:截止区衰减DB数设置
  8. %FS:序列x的采样频率
  9. rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值
  10. Fs=2000;%采样率
  11. wp=2*pi*f1/Fs; ws=2*pi*f3/Fs; % 设计切比雪夫滤波器;
  12. [n,wn]=cheb1ord(wp,ws,rp,rs,'s');%计算切比雪夫滤波器的阶数和通带边界频率
  13. n
  14. wn
  15. [z,p,k]=cheb1ap(n,rp)
  16. [B,A]=zp2tf(z,p,k);
  17. [b,a]=lp2lp(B,A,wn);%模拟低通原型转模拟低通滤波器
  18. [bz,az]=impinvar(b,a,Fs);%模拟转数字滤波器
  19. [bz1,az1]=cheby1(n,rp,wp); %查看设计滤波器的曲线
  20. [h,w]=freqz(bz1,az1,256,Fs);
  21. h=20*log10(abs(h));
  22. figure;plot(w,h);title('所设计滤波器的通带曲线');
  23. grid on;
  24. % y=filter(bz1,az1,x);%对序列x滤波后得到的序列y end
  25. %低通滤波器使用例子的代码
  26. fs=2000;
  27. %t=(1:fs)/fs;ff1=100;ff2=400;
  28. %x=sin(2*pi*ff1*t)+sin(2*pi*ff2*t);
  29. x=v.signals.values;
  30. % figure;
  31. % subplot(211);plot(x);
  32. % subplot(212);
  33. %hua_fft(x,fs,1); %低通测试
  34. %y=filter(bz1,az1,x);
  35. %y=lowp(x,300,350,0.1,20,fs);figure;
  36. y=filtfilt(bz1,az1,x);
  37. plot(y)
       滤波效果如下所示:

阅读(11614) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~