clear;clc;%输入信号
A=1;                                                      %信号的幅值
f=1000;                                                 %信号的频率
fs=10^5;                                                %采样频率
t=(0:999);                                              %采样点
Mlag=100;                                             %相关函数长度变量
x=A*cos(2*pi*f*t/fs);                                %输入正弦波信号
xmean=mean(x);                                    %正弦波信号均值
xvar=var(x,1);                                         %正弦波信号方差
noise=wgn(1,1000,2);%产生1行1000列的矩阵,强度为2dbw
xn=x+noise;                                         %给正弦波信号加入信噪比为20dB的高斯白噪声xlabel('x轴单位:t/s','color','b')
ylabel('y轴单位:f/HZ','color','b')
xnmean=mean(xn)                                  %计算加噪信号均值
xnms=mean(xn.^2)                                  %计算加噪信号均方值
xnvar=var(xn,1)                                       %计算输入信号方差
Rxn=xcorr(xn,Mlag,'biased');                   %计算加噪信号自相关函数
figure(2)
subplot(221)
plot((-Mlag:Mlag),Rxn)                             %绘制自相关函数图像
title('加噪信号自相关函数图像')
[f,xi]=ksdensity(xn);                                  %计算加噪信号的概率密度,f为样本点xi处的概率密度
subplot(222)
plot(xi,f)                                                   %绘制概率密度图像
title('加噪信号概率密度图像')
X=fft(xn);                                                  %计算加噪信号序列的快速离散傅里叶变换
Px=X.*conj(X)/600;                                   %计算信号频谱
subplot(223)
semilogy(t,Px)                                          %绘制在半对数坐标系下频谱图像
title('输入信号在半对数坐标系下频谱图像')
xlabel('x轴单位:w/rad','color','b')
ylabel('y轴单位:w/HZ','color','b')
pxx=periodogram(xn);                               %计算加噪信号的功率谱密度
subplot(224)
semilogy(pxx)                                           %绘制在半对数坐标系下功率谱密度图像
title('加噪信号在半对数坐标系下功率谱密度图像')xlabel('x轴单位:w/rad','color','b')
ylabel('y轴单位:w/HZ','color','b')%维纳滤波
N=100;                                                        %维纳滤波器长度
Rxnx=xcorr(xn,x,Mlag,'biased');                   %产生加噪信号与原始信号的互相关函数
rxnx=zeros(N,1);
rxnx(:)=Rxnx(101:101+N-1);
Rxx=zeros(N,N);                                          %产生加噪信号自相关矩阵
Rxx=diag(Rxn(101)*ones(1,N));
for i=2:Nc=Rxn(101+i)*ones(1,N+1-i);Rxx=Rxx+diag(c,i-1)+diag(c,-i+1);
end
Rxx;
h=zeros(N,1);
h=inv(Rxx)*rxnx;                                          %计算维纳滤波器的h(n)
yn=filter(h,1,xn);                                         %将加噪信号通过维纳滤波器
figure(5)
plot(yn)                                                      %绘制经过维纳滤波器后信号图像
title('经过维纳滤波器后信号信号图像')
xlabel('x轴单位:f/HZ','color','b')
ylabel('y轴单位:A/V','color','b')
ynmean=mean(yn)                                     %计算经过维纳滤波器后信号均值
ynms=mean(yn.^2)                                     %计算经过维纳滤波器后信号均方值
ynvar=var(yn,1)                                         %计算经过维纳滤波器后信号方差
Ryn=xcorr(yn,Mlag,'biased');                     %计算经过维纳滤波器后信号自相关函数
figure(6)
subplot(221)
plot((-Mlag:Mlag),Ryn)                               %绘制自相关函数图像
title('经过维纳滤波器后信号自相关函数图像')
[f,yi]=ksdensity(yn);                                    %计算经过维纳滤波器后信号的概率密度,f为样本点xi处的概率密度
subplot(222)
plot(yi,f)                                                     %绘制概率密度图像
title('经过维纳滤波器后信号概率密度图像')
Y=fft(yn);                                                   %计算经过维纳滤波器后信号序列的快速离散傅里叶变换
Py=Y.*conj(Y)/600;                                    %计算信号频谱
subplot(223)
semilogy(t,Py)                                           %绘制在半对数坐标系下频谱图像
title('经过维纳滤波器后信号在半对数坐标系下频谱图像')
xlabel('x轴单位:w/rad','color','b')
ylabel('y轴单位:w/HZ','color','b')
pyn=periodogram(yn);                               %计算经过维纳滤波器后信号的功率谱密度
subplot(224)
semilogy(pyn)                                            %绘制在半对数坐标系下功率谱密度图像
title('经过维纳滤波器后信号在半对数坐标系下功率谱密度图像')
xlabel('x轴单位:w/rad','color','b')
ylabel('y轴单位:w/HZ','color','b')
subplot(4,1,1),plot(noise); title('噪声信号')subplot(4,1,2),plot(x); title('正弦信号')subplot(4,1,3),plot(xn); title('加噪信号')
subplot(4,1,4),plot(yn); title('维纳信号')

完整的维纳滤波器Matlab源程序相关推荐

  1. 改进粒子群优化算法(IWAPSO)的MATLAB源程序

    改进粒子群优化算法(IWAPSO)的MATLAB源程序 作者:aaron8967    主页:http://aaron8967.blog.51cto.com 说明:粒子群优化算法(Particle S ...

  2. 图片缩放 算法 matlab,图像放大算法总结及MATLAB源程序.doc

    图像放大算法总结及MATLAB源程序 1,插值算法(3种): (1)最邻近插值(近邻取样法): 最近插值的的思想很简单就是把这个非整数坐标作一个四舍五入,取最近的整数点坐标处的点的颜色.可见,最邻近插 ...

  3. 泊位调度问题 matlab,流水线车间调度问题matlab源程序.doc

    流水线车间调度问题matlab源程序 流水线车间调度问题matlab源程序 流水线型车间作业调度问题遗传算法Matlab源码 流水线型车间作业调度问题可以描述如下:n个任务在流水线上进行m个阶段的加工 ...

  4. 改进粒子群优化算法(PURPSO)的MATLAB源程序

    改进粒子群优化算法(PURPSO)的MATLAB源程序 作者:aaron8967    主页:http://aaron8967.blog.51cto.com 说明:粒子群优化算法(Particle S ...

  5. 单因素模糊评价matlab,模糊综合评判matlab源程序

    <模糊综合评判matlab源程序>由会员分享,可在线阅读,更多相关<模糊综合评判matlab源程序(6页珍藏版)>请在人人文库网上搜索. 1.模糊综合评判matlab源程序20 ...

  6. matlab模糊解耦,模糊神经网络解耦MATLAB源程序

    模糊神经网络解耦MATLAB源程序,有详细的注释和剖析,运行结果等. 模糊神经网络解耦MATLAB程序 例用隶属函数型神经网与模糊控制融合的解耦程序 具有耦合的两个相邻子系统的差分方程为 matlab ...

  7. 物料分拣系统matlab仿真,自动物料分拣机器人控制系统设计+Matlab源程序+图纸

    自动物料分拣机器人控制系统设计+Matlab源程序+图纸 时间:2019-07-12 22:29来源:毕业论文 在设计中各个极限位置都会设置有传感器来作为边界的报警信号.以此来防止将会因为智能控制的错 ...

  8. 将示波器信号完整数据导入Matlab进行分析

    学习如何将麦科信示波器信号的完整数据导入matlab进行分析,我们先要学习如何完整导出示波器的信号数据.示波器可将模拟通道或数学通道波形保存到本地或者U盘,文件类型可选择WAV.CSV或BIN. WA ...

  9. matlab目标跟踪物流应用,目标跟踪系统的MATLAB 源程序包

    [实例简介] 目标跟踪系统的MATLAB 源程序包目标跟踪系统的MATLAB 源程序包 [实例截图] [核心代码] 目标跟踪系统的MATLAB源程序包 ├── auc.m ├── auction_2D ...

最新文章

  1. Last_Error: Relay log read failure: Could not parse relay log event entry.
  2. 举例详解PHP归并排序的实现
  3. redis desktop manager 连接外网redis服务器
  4. 常见的设计模式--单例模式
  5. 顶级程序员的心得 Coders at Work (I)
  6. Win7系统主题路径
  7. PMP考试备考个人体会
  8. GT-suite v2016的下载和安装
  9. ElasticSearch学习总结(基础篇,可学习,可复习)
  10. 医疗研讨会直播怎么做
  11. 【obs-studio开源项目从入门到放弃】obs aac opus 音频编码器的使用
  12. 如何在CSS中解决长英文单词的页面显示问题?CSS3
  13. 作用域和作用域链的理解
  14. 解决安装宝塔面板“ERROR: Failed to download, please try install again”错误
  15. 以太网采集欧姆龙PLC DM数据并存入ACCESS 使用C#编写上位机程序
  16. springStudy
  17. Pandas Dataframe 每隔n行取1行
  18. spring boot +mybatis plus +html 最佳实践项目
  19. Ipopt开发环境安装
  20. win8计算机还原,让win8/8.1系统盘立减20G的方法:关闭系统还原和删除系统还原点-系统操作与应用 -亦是美网络...

热门文章

  1. 详解python中的round()函数
  2. pythondjango项目集成_[Python]将Wagtail整合到Django2项目中
  3. 9.匿名函数:lambda表达式/filter()/map()
  4. 2.变量/字符串/if/while/数据类型
  5. Java数据结构和算法(八)——递归
  6. [Google Guava] 2.1-不可变集合
  7. Vue.js Class 与 Style 绑定
  8. YARN/MRv2 Resource Manager深入剖析—RM总体架构
  9. 程序员面试题精选100题(33)-在O(1)时间删除链表结点[数据结构]
  10. Day 12: OpenCV —— Java开发者的人脸检测