资源简介
对一段信号的滤波程序,MATLAB实现的,不仅仅一种滤波啊
代码片段和文件信息
% 这是时域积分的程序,原始信号为速度信号y1
% x_velocity 速度信号
% D 数据长度
% time_series 分析时间序列
% total_time 采样时间
%mean_velocity 速度均值
% spec_area 速度频谱
%freq_area 分析频率序列
%有效值 Xrms
close all
clear all
clc;
%=========================================================================%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 信号产生 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%=========================================================================%
N=1024;
fs=250;
fc=40;
fb=80;
t=(0:1/fs:(N-1)/fs);
y0=10*sin(2*pi*fc*t+200*pi/180)+20*cos(2*pi*fb*t+150*pi/180)+6*sin(2*pi*0.5*t+150*pi/180)+0.15; %模拟信号作为加速度信号
%加白噪声,a=0;b=0.5; %均值为a,方差为b^2
%y2=a+b*randn(1length(y1)) 高斯白噪声 title(‘N(0,0.25)的高斯白噪声‘);
n=length(y0);
y1=wgn(1n4); %产生高斯白噪声
y=y0+y1; %加入噪声之后的信号
x_accr=y;
D=length(x_accr); %数据长度
time_series=(1/fs:1/fs:D/fs); %分析时间序列也可time_series=(0:D-1)/fs; %分析时间序列的另一种表示
time_series=time_series‘;
total_time=D/fs; %采样时间,作为横坐标的范围
N=2^nextpow2(D); %确定分析频率范围的点数:取最接近D的较大2次幂
spec_y0=fft(y0N);
spec_y=fft(yN);
freq_series=fs*(0:N/2-1)/N;
figure(4)
subplot(311);plot(ty1‘r‘);
axis([0 1.1 -5 5]);
ylabel(‘y(um)‘);xlabel(‘t(s)‘);
title(‘强度为4dwb的高斯白噪声‘);
grid on;
figure(1)
subplot(421);plot(ty0);
ylabel(‘y0(um)‘);xlabel(‘t(s)‘);
title(‘理想信号‘);
grid on;
subplot(422);plot(freq_seriesabs(spec_y0(1:N/2))*2/N);
xlabel(‘频率(Hz)‘);
ylabel(‘幅值(mm/g)‘);
title(‘理想加速度幅频谱‘);
grid on;
subplot(423);plot(ty1);
ylabel(‘y(um)‘);xlabel(‘t(s)‘);
title(‘原始信号(含噪)‘);
grid on;
subplot(424);plot(freq_seriesabs(spec_y(1:N/2))*2/N);
xlabel(‘频率(Hz)‘);
ylabel(‘幅值(mm/g)‘);
title(‘原始加速度幅频谱‘);
grid on;
%=========================================================================%
%%%%%%%%%%%%%%%%%%%%%%%%% 加速度信号滤波处理 %%%%%%%%%%%%%%%%%%%%%%%%%%%
%=========================================================================%
mean_accr=mean(x_accr); %去直流
disp(‘实际的直流量‘);
disp(mean_accr);
x_accr=x_accr-mean_accr;
spec_accr=fft(x_accrN);
freq_series=fs*(0:N/2-1)/N; %建立分析频率序列
% 输出加速度时域波形和频谱图
subplot(425);
plot(time_seriesx_accr‘r‘);
ax=max(abs(x_accr));
ra=ax+1;
axis([0 total_time -ra ra]);
xlabel(‘采样时间(s)‘);
ylabel(‘幅值(mm/g)‘);
title(‘振动加速度,已去直流‘);
grid on;
subplot(426);
plot(freq_seriesabs(spec_accr(1:N/2))*2/N‘r‘);
xlabel(‘频率(Hz)‘);
ylabel(‘幅值(mm/g)‘);
title(‘去直流的加速度幅频谱‘);
grid on;
%设计高通滤波器
相关资源
- 数字滤波器的MATLAB与FPGA实现 第2版
- Kalman filtering-theory and practice using MAT
- kalman滤波器
- 产生LFM信号分析其频谱运用频域匹配
- 基于MATLAB的FIR数字低通滤波器分析和
- 阿贝成像及空间滤波的matlab实现
- 应用matlab对信号进行频谱分析和滤波
- 单模型机动目标跟踪算法的仿真研究
- 语音信号添加噪声后滤波
- 基于DSP的卡尔曼滤波器的算法研究
- 基于IIR对信号进行频谱分析及滤波处
- IIR数字滤波器设计及软件实现 Matlab
- 利用matlab仿真实现FDMA
- Matlab图像的巴特沃斯低通滤波
- MATLAB二维码识别
- 逆滤波和维纳滤波 matlab
- 语音信号的采集和处理 matlab
- 自适应对消滤波MATLAB实现
- matlab信号分析滤波求包络
- DSP设计FIR带通滤波器报告&源代码
- 自适应中值滤波加小波全局阈值去噪
- 自适应滤波算法研究及其Matlab实现
- 匹配滤波器设计实验报告
- 导航解算 卡尔曼滤波
- 基于MATLAB的LMS和RLS算法滤波完整程序
- 噪声音乐信号的巴特沃斯带通滤波器
- 数字信号处理课程设计+FIR数字滤波器
- FRANGI二维滤波器
- UKF滤波算法及均方根误差分析
- 采用LCL滤波器的并网逆变器双闭环控
评论
共有 条评论