资源简介
对信号进行傅里叶变换,然后选择宽度为10,30,50的滤波器对信号进行滤波,对滤波效果进行比较
代码片段和文件信息
clc;
clear;
close all;
%读入原始数据
x=load(‘E:\实验\实验数据\张永江初测\v5.txt‘);
a=x‘; %转为行向量
d=a(1001:2024);
fs=1000;%采样频率
y=fft(d1024);
f=1000*(0:511)/1024;
% f=0:0.977:500%(0:512)/1024;
figure(1);
subplot(411)
plot(fabs(y(1:512)));grid;
title(‘原始信号的频谱图‘);
xlabel(‘频率/Hz‘);
ylabel(‘‘);
%%%%%%%%%%%%%%%5因为心电信号的能量主要集中在30HZ以下,在25HZ后迅速衰减到050HZ以后就几乎没有能量了。这样可以做一个简单的低通滤波,如下所示
%使用不同宽度的滤波器对频谱进行滤波,抑制频谱直接令其为0.
y1=y; y1(10:1014)=0
y2=y; y2(30:1004)=0
y3=y; y3(45:994)=0;y3(1:2)=0;
% pyy1=y1.*conj(y1) %求y的模平方
% pyy2=y2.*conj(y2)
% pyy3=y3.*conj(y3)
f=1000*(0:511)/1024;
% f=0:0.977:500%(0:512)/1024;
subplot(412)
plot(fabs(y1(1:512)));grid;
title(‘宽度为10的低通滤波器滤波后信号的频谱图‘);
xlabel(‘频率/Hz‘);
ylabel(‘‘);
subplot(413)
plot(fabs(y2(1:512)));grid;
title(‘宽度为30的低通滤波器滤波后信号的频谱图‘);
xlabel(‘频率/Hz‘);
ylabel(‘‘);
axis tight;
subplot(414)
plot(abs(y3(1:512)));grid;
title(‘宽度为50的低通滤波器滤波后信号的频谱图‘);
xlabel(‘频率/Hz‘);
ylabel(‘‘);
axis tight;
%对经过滤波的频谱做傅里叶逆变换,得到相应的降噪信号
xd1=real(ifft(y11024))
xd2=real(ifft(y21024))
xd3=real(ifft(y31024))
%画出降噪以后的波形
figure(2)
subplot(411);plot(d);
xlabel(‘时间/ms‘);ylabel(‘幅值/mv‘);title(‘原始信号‘);
subplot(412);plot(xd1);
xlabel(‘时间/ms‘);ylabel(‘幅值/mv‘);title(‘宽度为10的低通滤波器滤波后的信号‘);
subplot(413);plot(xd2);
xlabel(‘时间/ms‘);ylabel(‘幅值/mv‘);title(‘宽度为30的低通滤波器滤波后的信号‘);
subplot(414);plot(xd3);
xlabel(‘
- 上一篇:自动控制系统校正课程设计
- 下一篇:TDOA常见算法的MATLAB源代码
相关资源
- 学会用MATLAB实现傅里叶变换的时移,
- 使用matlab对采样数据文本进行fft变换
- 静态小波变换matlab程序
- 基于傅里叶变换中kreisDemod函数里面所
- 分数阶傅里叶变换程序(matlab)
- nfft2.二维非等间距快速傅里叶变换
- 一维信号小波降噪matlab程序
- InSAR相位降噪旋滤波程序
- 小波降噪软硬阈值改进阈值matlab代码
- FRFT程序,分数阶傅里叶变换的matlab源
- 7种图像降噪matlab实现
- 高斯窗的短时傅里叶变换变换程序
- matlab二维快速傅里叶变换原创.rar
- 常见傅里叶变换matlab代码
- 分布傅里叶变换解非线性薛定谔方程
- 傅立叶变换五大性质的matlab实现
- 分数阶傅里叶变换MATLAB
- T2F函数,在matlab中做傅里叶变换时调
- 短时傅里叶变换的MATLAB代码
- MATLAB中fft函数用法、性质、特性、缺
- matlab快速傅里叶变换进行数字图像处
- kalman滤波的语音降噪matlab程序
- MATLAB小波降噪程序
- Matlab实现快速傅里叶变换FFT
- matlab PROPACK函数库 包含短时傅里叶变
- 短时傅里叶变换STFT
- 傅里叶变换轮廓术的MATLAB实现
- LMS音频降噪matlab程序
- 快速傅里叶变换算法matlab实现
- matlab傅里叶变换与反变换
评论
共有 条评论