维纳滤波法matlab代码,完整的维纳滤波器Matlab源程序

本文展示了如何在Matlab中使用维纳滤波器进行信号处理。首先定义了一个1kHz信号,并加入20dB高斯白噪声。然后,通过计算信号的自相关函数和概率密度,进一步进行了快速傅里叶变换。最后,应用维纳滤波器以减小噪声影响。
摘要由CSDN通过智能技术生成

维纳滤波器 fir滤波器程序

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); %差

xn=awgn(x,5); %入信噪比为20dB的高斯白噪声 figure(1)

plot(t,xn) %信号图像

title('输入信号图像')

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) %输入正弦波信号 正弦波信号均值 正弦波信号方给正弦波信号加绘制输入计算输入信号均值 计算输入信号均方值 计算输入信号方计算输入信号自相关函绘制自相关函数图计算输入信号绘制概计算输入计算信号频谱 绘制在半对数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值